Data Exports: Lending

Modified on Tue, Mar 17 at 2:31 PM

This document aims to help users at partner Credit Unions to better understand our data exports, their available columns and how to use them to generate metrics.

Guidelines

What is a Data Export?

Data export is a daily batch of data, sent in .csv format via SFTP or File Transfer API. It contains one table in a fixed predetermined format.

Data included: fixed predetermined format that scales across 100+ credit unions.

What is included in this Data Export?

Two different files:

  • Loan applications for the past 1 day:
    • A list of all loan applications (submitted and dropped) in the previous 1 day
    • File name (for SFTP only): lending-1-day_YYYYMMDDThhmmssZ_part-00000.csv
  • Loan applications for the past 30 days:
    • A list of all loan applications (submitted and dropped) in the previous 30 days
    • File name (for SFTP only): lending-30-days_YYYYMMDDThhmmssZ_part-00000.csv

Both will have the same fields (columns), but they will differ in use-cases (when to use each) and total volume of data, since one of them will include data for the past 30 days.

How to use the exports?

  • Data warehouse ingestion: append the 1 day file into your warehouse, taking care to check if the record already exists there. In case an application started yesterday but finished today, it will be repeated and we have the column record_last_updated_at to ensure you capture the latest data on that record.
  • Analysis: if you are going to analyze the data in a spreadsheet, use the 30 day file so you don't need to append anything.

How NOT to use the exports?

  • Avoid duplicates:
    • If you require a funnel metric (e.g. conversion) of over 30 days, you shouldn't append multiple 30 day files, because if you do you will get duplicates of the same applications.

The best way to proceed in this case would be to iterate through multiple files, getting the most recent status of each application.

Terminology:

  • An application refers to any user who started the application process, even if they have dropped-off before submitting it to the LOS.
  • If one user made multiple applications in the same session, the export will have multiple rows for that same session, one for each application.
  • If a user applied multiple times for the same loan, we'll show multiple applications (one in each row).

Ingesting Exports into your Data Warehouse (DW):

  1. Update: if an application already exists in your DW as a row in a table, update the entire row; if it doesn't, create a new one.
  2. Append: always add new rows to the existing table.


Data Dictionary

Field nameDescriptionExample
session_idString: an id that represents an unique user session. A session is a period of up to 4 hours in which users are in our application. It will end if the user spends 15 minutes inactive.123456789
application_idString: an id that represents an unique application sent to the LOS.0030dbe4-ead5-4543-afa1-61d24688b4ef
user_idString: a uuid that represents an unique user (main applicant)0030dbe4-ead5-4543-afa1-61d24688b4ef
applicant_nameString: the main applicant's full nameJane Doe
applicant_emailString: the main applicant's e-mailjane.doe@withclutch.com
user_phoneNumber: the main applicant's phone number1234567891
user_fico_score_rangeString: the range in which the main applicant's f is located450-500
user_income_rangeString: the range in which the main applicant's self-declared annual income is located100,000-150,000
applicant_addressString: the main applicant's address123 Main St
applicant_cityString: the main applicant's citySan Francisco
applicant_stateString: the main applicant's stateCA
applicant_zip_codeString: the main applicant's zip code12345
applicant_employerString: the main applicant's employer nameWithClutch Inc.
applicant_job_titleString: the main applicant's job titleCustomer Success Manager
application_categoryString: the loan type the user applied to (NULL if application was dropped before selection)VEHICLE ; PERSONAL ; CREDIT CARD
credit_structureString: a flag that determines if the application is for a loan or line of creditLOAN ; LINE OF CREDIT
application_modeString: a flag that determines if the application is new or to refinance an existing dealNEW ; REFINANCE
collateral_typeString: a flag that determines what kind of collateral is being used (NULL if none)NULL ; AUTO ; MOTORCYCLE ; CHECKING ACCOUNT
application_nrNumber: loan number in the LOS1234
application_amntNumber: amount the user applied for$10,000.00
experience_started_atTimestamp: date and time when the application started2024-03-07 18:08:32.765
user_authenticated_atTimestamp: date and time when the user authenticated in our portal (NULL if they didn't)2024-03-07 18:08:32.765
application_started_atTimestamp: date and time when user selected an application category (NULL if they didn't)2024-03-07 18:08:32.765
application_submitted_atTimestamp: date and time when user submitted the application (NULL if they didn't)2024-03-07 18:08:32.765
application_confirmed_atTimestamp: date and time when LOS received the application (NULL if it didn't)2024-03-07 18:08:32.765
record_last_updated_atTimestamp: date and time when we last updated this record.2024-03-07 18:08:32.765
utm_sourceString: part of the URL used for tracking (must be in the Clutch URL).facebook
utm_mediumString: part of the URL used for tracking (must be in the Clutch URL).ads
utm_campaignString: part of the URL used for tracking (must be in the Clutch URL).auto_refi_june_2024
utm_contentString: part of the URL used for tracking (must be in the Clutch URL).group_a
utm_termString: part of the URL used for tracking (must be in the Clutch URL).loans
accepted_tcpa_atTimestamp: date and time when applicant accepted TCPA disclaimers.2024-03-07 18:08:32.765
zest_scoreNumber: the main applicant's zest score for that application80
chance_of_approval_badgeString:the badge shown to the applicant while browsing for that particular offer. Possible values:
  • HIGH
  • LOW
  • MEDIUM
  • NOT_ENOUGH_INFORMATION
MEDIUM 


gap_offered
 Boolean: true or false in case the user was presented the opportunity to manifest interest in GAP (protection product).
TRUE
gap_selected
Boolean: true or false in case the user manifested interest in GAP (protection product).
TRUE
mp_offered
 Boolean: true or false in case the user was presented the opportunity to manifest interest in mechanical breakdown protection.TRUE 
mp_selected
Boolean: true or false in case the user manifested interest in mechanical breakdown protection.
TRUE 
pp_offered
Boolean: true or false in case the user was presented the opportunity to manifest interest in payment protection.TRUE
pp_selected
Boolean: true or false in case the user manifested interest in payment protection.
TRUE
member_nr
Number: the main applicant's member number
1234
citizenship
String: applicant's citizenship
US citizen
referral_source
String: referral source defined in the application's URL. Matches with what goes into the LOS
lead-provider-name
origin_module

String: origin of the application. May have two values:

  • LENDING
  • ACCOUNT OPENING This will enable partners to calculate cross-sell from account opening to lending

LENDING
fraud_check_application_id 
String: an identifier of the token (can be Null)

JA-DwyIHO5cTHu9uqquWDy9 
fraud_check_entity_token
String: an identifier of the token (can be Null)
J-KASoidfjs09SNGFKJ123
gclid
String: Google click identifier, used in the URL for tracking purposes (can be Null)
123xyz
disclosure_acknowledged_at 
Timestamp: date and time when applicant accepted product specific disclaimers (credit cards and home equity).
2024-03-07 18:08:32.765
automobile_estimated_list_price
Number: in case it's a vehicle loan, the estimated list price for it.
37545.72
events_funnel_id
String: a uuid that represents an unique record in the export. This is the primary key for the table.
0030dbe4-ead5-4543-afa1-61d24688b4ef
application_origin
String: it brings the application's origin.
Possible values:
• original
• loan_cross_sell
• deposit_cross_sell
• remarketing
original



How to calculate metrics from the export

a) Total numbers / amount of applications

Sum the application_amnt, because this file only shows apps that have already been submitted.

To count the total number of leads (not necessarily submitted), then you have to define what a lead is first, such as:

  1. A user who started the application experience
  2. Any application session that has been started
  3. Any application form that has been started
A: session_idB: user_idC: experience_started_atD: application_started_atE: application_confirmed_atF: application_category
0030dbe4-ead5-4543-afa1-61d24688b4ef550e8400-e29b-41d4-a716-4466554400003/7/2024 18:16:003/7/2024 18:17:003/7/2024 18:20:00CREDIT CARD
00b49222-93db-4664-ba1d-1161ae9960af550e8400-e29b-41d4-a716-4466554400001/23/2024 21:01:581/23/2024 21:02:58VEHICLE
0130be4e-79b5-42d8-b45c-398987e6f3de40ebb32e-6b7e-48f0-ab4b-8d6f090f74b21/12/2024 15:26:121/12/2024 15:27:121/12/2024 15:28:12PERSONAL
0130be4e-79b5-42d8-b45c-398987e6f3de40ebb32e-6b7e-48f0-ab4b-8d6f090f74b21/12/2024 15:26:121/12/2024 15:30:25CREDIT CARD
99a8b36f-2734-49a2-92f6-cd04ffcc7d7640ebb32e-6b7e-48f0-ab4b-8d6f090f74b21/13/2024 20:13:151/13/2024 20:14:151/13/2024 20:16:27CREDIT CARD
469381d8-3f60-48ed-a94d-37423e8d3221cfbbac43-51f1-477d-a9b2-931dd11fa5841/10/2024 10:11:57


As you can see, we have three users:

  • One of them with two applications to different loan types (each application in a different session)
  • Another with three applications, but one of them repeated (same loan type, but in a different session)
  • A third one who dropped off before choosing a loan type

This means that, depending on the definition of lead, you may have a different count of leads:

  1. You have 3 users, therefore 3 leads
  2. You have 3 users, two with 2 sessions, one with 1 session, therefore 5 leads
  3. You have 3 users, one that didn't start the form and the others started it 5 times, therefore 5 leads


The way you should calculate it is:

A: Leads based on # usersB: Leads based on # sessionsC: Leads based on # forms started
=COUNTUNIQUE(column: user_id)=COUNTUNIQUE(column: session_id)=COUNTIFS(column: application_started_at, "<>")
i.e. is not null


b) Conversion

This is a metric to measure the % of applications that ended up submitted to the LOS among all applications that were initiated.


To better calculate conversion rates, we propose counting applications where application_confirmed_at is not null.

After that, divide by the total number of leads (based on your definition of a lead). You can break it down by any other fields to have your conversion metric associated with something else, such as by loan type or by income range. Example:


We want to measure conversion by loan type, using the same example as above, looking at two lead definitions: by user and by session. The first thing is to get a list of all possible loan types, then count the number of leads and the number of apps submitted:

A: Loan typeB: Leads based on # usersC: Leads based on # sessionsD: Applications submitted to the LOS
=COUNTUNIQUEIFS(column: user_id, column: application_category, A1)=COUNTUNIQUEIFS(column: session_id, column: application_category, A1)=COUNTIFS(column: application_confirmed_at, "<>", column: application_category, A1)
CREDIT CARD232
PERSONAL111
VEHICLE110


After that, just divide the two numbers:

A: Loan typeB: Leads based on # usersC: Leads based on # sessionsD: Applications submitted to the LOSE: Conversion based on usersF: Conversion based on sessions
110=D1 / B1= D1 / C1
CREDIT CARD232100%67%
PERSONAL111100%100%
VEHICLE1100%0%


c) Avg. time-to-apply

This is the time it takes, on average, for the user to apply for a loan.


To calculate it, add a new column to your table, let's call it time_to_apply, which will contain the time to apply for the loan in minutes. The values in this column should be the difference between fields experience_started_at and application_submitted_at.


The results will be in multiples of days, so to convert to hours, multiply by 24, and multiply by 60 to get minutes. See the example below:

A: application_nrB: experience_started_atC: application_submitted_atD: time_to_apply
123453/7/2024 18:08:333/7/2024 18:16:00=(C1 - B1)2460
123461/23/2024 20:57:051/23/2024 21:01:584.88
123471/12/2024 15:23:051/12/2024 15:26:123.12
123482/12/2024 22:36:452/12/2024 22:36:460.01


Now, take the average out of column D, and you have your average time to apply. You can also split the average times by account type (or any other field) using the formula AVERAGEIFS.

Please notice: we're not using application_confirmed_at because it doesn't represent anything the user has done, only the confirmation from the LOS that the application was received.


d) Cross-sell

This metric measures the ability of selling an additional loan to an user who has submitted an application in the same period.

We have three definitions of cross-sell:

  • Simple: the most generous metric, we look at total loan applications over total applicants, so an applicant who applied for two equal loans (e.g. two auto loans) would count.
  • Distinct purpose: in this case, we don't count applications with the same application_category, collateral_type, funds_access_structure and application_mode. e.g. Two vehicle loans, both for motorcycles and both are new loans do not count as cross-sell.
  • Basic: more pessimistic, we only count applications with entirely different application_category.


Look at the following example:

A: application_nrB: application_confirmed_atC: user_idD: application_categoryE: collateral_typeF: funds_access_structureG: application_mode
123523/7/2024 18:08:33b3acb1bd-6398-4b52-abf4-92f934200a2aCREDIT CARDLINE OF CREDITNEW
123453/7/2024 11:08:33550e8400-e29b-41d4-a716-446655440000VEHICLEAUTOLOANREFINANCE
123463/7/2024 12:08:33550e8400-e29b-41d4-a716-446655440000VEHICLEAUTOLOANNEW
123473/7/2024 13:08:3340ebb32e-6b7e-48f0-ab4b-8d6f090f74b2PERSONALLOANNEW
123483/7/2024 14:08:3340ebb32e-6b7e-48f0-ab4b-8d6f090f74b2VEHICLEAUTOLOANNEW
123493/7/2024 15:08:3340ebb32e-6b7e-48f0-ab4b-8d6f090f74b2VEHICLEAUTOLOANREFINANCE
123503/7/2024 16:08:33bbb14fe5-0f7a-45be-9664-97e79631f645PERSONALLOANNEW
123513/7/2024 17:08:339a20bb47-067b-4cb5-81ff-cf6c2c738518CREDIT CARDLINE OF CREDITNEW


The first thing to do here is to decide what is the period for cross-sell. Let's say it's 1 day, so we got all applications submitted on March 7th, 2024.


We have to define, per application, the keys to define if there is or there isn't cross-sell, and we do that by concatenating the values to be considered:

A: application_nrC: user_idH: key_1I: key_2
12352b3acb1bd-6398-4b52-abf4-92f934200a2a=CONCATENATE(C1,D1,E1,F1,G1)=CONCATENATE(C1,D1)
12345550e8400-e29b-41d4-a716-446655440000550e8400-e29b-41d4-a716-446655440000VEHICLEAUTOLOANREFINANCE550e8400-e29b-41d4-a716-446655440000VEHICLE
12346550e8400-e29b-41d4-a716-446655440000550e8400-e29b-41d4-a716-446655440000VEHICLEAUTOLOANNEW550e8400-e29b-41d4-a716-446655440000VEHICLE
1234740ebb32e-6b7e-48f0-ab4b-8d6f090f74b240ebb32e-6b7e-48f0-ab4b-8d6f090f74b2PERSONALLOANNEW40ebb32e-6b7e-48f0-ab4b-8d6f090f74b2PERSONAL
1234840ebb32e-6b7e-48f0-ab4b-8d6f090f74b240ebb32e-6b7e-48f0-ab4b-8d6f090f74b2VEHICLEAUTOLOANNEW40ebb32e-6b7e-48f0-ab4b-8d6f090f74b2VEHICLE
1234940ebb32e-6b7e-48f0-ab4b-8d6f090f74b240ebb32e-6b7e-48f0-ab4b-8d6f090f74b2VEHICLEAUTOLOANREFINANCE40ebb32e-6b7e-48f0-ab4b-8d6f090f74b2VEHICLE
12350bbb14fe5-0f7a-45be-9664-97e79631f645bbb14fe5-0f7a-45be-9664-97e79631f645PERSONALLOANNEWbbb14fe5-0f7a-45be-9664-97e79631f645PERSONAL
123519a20bb47-067b-4cb5-81ff-cf6c2c7385189a20bb47-067b-4cb5-81ff-cf6c2c738518CREDIT CARDLINE OF CREDITNEW9a20bb47-067b-4cb5-81ff-cf6c2c738518CREDIT CARD


Now we're going to count, per user, how many cross sales they had based on each definition:

A: user_idB: simple cross sellC: distinct purpose cross sellD: basic cross sell
b3acb1bd-6398-4b52-abf4-92f934200a2a=COUNTUNIQUE(column: user_id)=COUNTUNIQUE(column: key_1)=COUNTUNIQUE(column: key_2)
550e8400-e29b-41d4-a716-446655440000221
40ebb32e-6b7e-48f0-ab4b-8d6f090f74b2332
bbb14fe5-0f7a-45be-9664-97e79631f645111
9a20bb47-067b-4cb5-81ff-cf6c2c738518111

Now, we count how many applicants with over 1 cross sold applications we got, and divide by total number of applicants:

A: ApplicantsB: Applicants with simple cross-sellC: Applicants with distinct purpose cross-sellD: Applicants with basic cross-sell
=COUNTUNIQUE(column: user_id)=COUNTIFS(column: simple cross sell, >1)=COUNTIFS(column: distinct purpose cross sell, >1)=COUNTIFS(column: basic cross sell, >1)
5221


Now we just get the rates, dividing B, C and D by A:

  • Simple: 2 applicants out of 5 = 40%
  • Distinct purpose: 2 applicants out of 5 = 40%
  • Basic: 1 applicant out of 5 = 20%

FAQ

  1. How can I get started with data exports? A: Just ask your Customer Success manager to turn it on for you! We will need to set up a proper SFTP connection, so we might have to engage your IT team. We also require the server to be hosted by you. As an alternative to SFTP, you can download these reports through our File Transfer API.
  2. Why should I use Clutch's data exports? A: It's a way for your team to be informed about what's going on without having to ask for ad-hoc reports. It works for both operations and IT, because it allows you to manipulate the .csv file in Microsoft Excel or Google Sheets, and also empowers your IT team to ingest the data into your data warehouse. It's an extract of data you can build reports on top of.
  3. What's the cost? A: Clutch does not charge any additional fees. We just require you to have an SFTP server hosted by you for now. Alternatively, you can use our File Transfer API.
  4. How long are the exports available for download? A: When using SFTP, it is up to you. Since the server is hosted by you, once we push the .csv files you can decide what's the best approach on how to deal with them. For the File Transfer API, new exports are generated daily at 11:00AM UTC and will remain available until 23:59 UTC each day.
  5. What should I do if I didn't receive my daily file? A: Contact your Customer Success manager to inform them of the problem. We'll ensure you receive your data ASAP.
  6. I lost access to a file and I need to recover a copy. How can I get it? A: Talk to your Customer Success manager to arrange a recovery.
  7. I need a data export for sandbox data, how do I get it? A: Sandbox only has test users and can be misleading when interpreting data. We do not support sandbox data export.
  8. How can I request a new data export to answer new business questions? A: Help us understand what exactly you are trying to achieve. Your implementation engineer can guide you if there is a way to use existing exports. If not they will bubble up this feedback to the product team.
  9. What to do if I want to ask for additional fields in my data export? A: We currently only support limited fields as we build a scalable data infrastructure for 2024. However, do send us your feedback for future considerations.
  10. What to do if I want to report inconsistencies in the data? A: Inform your Customer Success manager, and we will assign an engineer to work on it immediately.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article