Fraud Knowledge Graph
Overview
Capture rates drop by up to 50% when credit approval requires an income verification. The more friction lenders add to the originations process, the less likely dealers are to present their deal to the consumer. Even if the dealer presents a conditional approval with an income verification, the deal gets messy. The applicant may have to leave the dealership to find the documents, drastically decreasing the odds of the deal closing.
Fraud Knowledge Graph is a non-FCRA compliant, non-documentary validation product that allows the lender to quickly assess how an applicant's stated income compares to that of similarly employed workers based on occupation, employer and geographic area according to the Bureau of Labor Statistics' Occupational Employment and Wage Statistics (BLS OEWS). Fraud Knowledge Graph also takes into consideration data about the dealer, the vehicle being financed and the overall application data.
Additionally, Informed's Fraud Knowledge Graph provides lenders with comprehensive historical data on applicants. It checks for previously encountered applicants, offering details on past applications, reported information and verified information such as identity, income, employment, residence, etc., using official documents. This feature enables lenders to quickly identify discrepancies or patterns that may indicate fraudulent activity.
The lender can more confidently make the decision as to whether they should skip the income verification or not. When lenders reduce verifications required at underwriting and give dealers compliant tools, they increase both capture rates and dealer satisfaction.
Fraud Knowledge Graph enables lenders to stip more intelligently so that they can mitigate losses resulting from misrepresentations, fraud and other attributes that Informed tracks as part of its data consortium.
Process Flow
You must register the application first in order to be able to make the Fraud Knowledge Graph call. The process is fully described in the link, but the table below highlights a few of the important pieces to be aware of when registering your application in order to optimize your Fraud Knowledge Graph response.
Request Component | Note |
---|---|
employment_info > occupation | The occupation must be provided for each registered applicant. |
verifications | The verifications object can be left empty if the only service being registered is skip-the-stip . |
vehicle_info | Providing the necessary vehicle info is required when registering an application with the skip-the-stip service in order to be able to provide the most accurate and precise response data. |
dealer_info | Providing the necessary dealer info is required when registering an application with the skip-the-stip service in order to be able to provide the most accurate and precise response data. |
services | If you register strictly the skip-the-stip service and include no verifications , then all of the points in this table are relevant. However, if you register other services up front, like extract and/or verify and include verifications , then the registration request must also follow all the normal guidelines presented in the register application page for the services and verifications that you are requesting. Please note that you can always make another call at a later time to update the application and add other services and verifications as desired. |
webhook | A webhook is not required for the skip-the-stip service, as it is a synchronous response. However, if you are planning ahead to do other credit or funding verifications against the registered application, you will want to supply a webhook URL. Please note that you can always make another call at a later time to update the application and add a webhook URL value. |
Please reference the sequence diagram for the full process flow.
Base URL
The table below shows the Base URL to be used with the endpoints mentioned in this guide.
Environment | Base URL |
---|---|
Staging: | https://api.staging.informediq-infra.com |
Production: | https://api.informediq.com |
Request Components
Endpoint
You will append the following endpoint to the base URL to make the Stip-the-Stip call:
/v1/auto/applications/<unique-Informed-app-id>/skip-the-stip
The <unique-Informed-app-id>
needs to be the application_id
described in the synchronous response section of the app registration guide.
Request
So to put it all together, you will make a POST
call to the following URL:
https://api.staging.informediq-infra.com/v1/auto/applications/<unique-Informed-app-id>/skip-the-stip
Synchronous Response
- 2xx responses
- Non-2xx responses
An example output payload is shown below:
{
"application_id": "unique-Informed-app-id",
"applicants": {
"applicant1": {
"bls-oews": {
"mean_income": 101600.0,
"median_income": 100960.0,
"10pct_income": 62400.0,
"25pct_income": 79260.0,
"75pct_income": 125500.0,
"90pct_income": 140670.0,
"standard_occupational_classification": "Software Developers",
"data_source_version": 2022,
"area_code": "19380",
"human_readable_area": "Dayton, OH",
"status": "MATCH_FOUND"
},
"predicted": {
"annual_income_score": 380
},
"occupation": {
"income_overstatement_rate": 20.305,
"fraud_paystub_rate": 1.2039,
"bs_risk_rate": 11.3162,
"applicant_misrep_rate": 4.2536
},
"historical_data": [
{
"application_date": "2023-07-08 15:23:12",
"application_type": "auto",
"verified_information": {
"income": {
"poi_income_from_employer": {
"question": "What is the income from the employer?",
"answer": "$34,250.00",
"expected": "",
"status": "pass"
},
"poi_documents_used": {
"question": "Which document was used to calculate income?",
"answer": "Current Paystub",
"expected": "",
"status": "pass"
},
"poi_income_within_threshold": {
"question": "Is the applicant's income in-line with that what s/he stated?",
"answer": "$34,250.00",
"expected": "$33,600.00",
"status": "pass"
},
"is_similar_to_fraudulent_paystub": {
"question": "Similar to a paystub known to be fraudulent?",
"answer": "FALSE",
"expected": "FALSE",
"status": "pass"
}
}
},
"reported_information": {
"vehicle_info": {
"selling_price": "18999",
"equipments": "<NA>",
"condition": "Used",
"trim": "sport sedan 4d",
"year": "2022",
"vin": "1HGCV1F37NA065226",
"model": "accord",
"make": "honda"
},
"dealer_info": {
"finance_risk": "Low",
"user_ratings_total": "95",
"overall_risk": "Low",
"paperwork_risk": "Medium",
"fraud_risk": "High",
"auto_risk": "Low",
"reputational_risk": "Low",
"google_rating": "4.7",
"master_dealer_address": "400 Riverside Ave, Roseville, CA 95678, United States",
"master_dealer_name": "USA Car Planet LLC"
},
"applicants": {
"applicant": {
"address_info": [
{
"monthly_housing_cost": "1100.00",
"address": {
"zip": "45459",
"street_address": "456 Maple Avenue",
"state": "OH",
"city": "Centerville"
},
"residence_type": "Rent"
}
],
"additional_incomes": [
{
"income": {
"period": "Yearly",
"amount": "<NA>"
}
}
],
"phone": "555-987-6544",
"date_of_birth": "1992-08-23",
"last_name": "Boren",
"employment_info": [
{
"income": {
"period": "Yearly",
"amount": "33600.00"
},
"employment_type": "<NA>",
"employer_name": "Royal Carrier Llc",
"occupation": "Truck Driver",
"is_current": true,
"start_date": "<NA>"
}
],
"middle_name": "Rose",
"suffix": "<NA>",
"first_name": "Jo",
"email": "jo.boren@example_test.com",
"ssn": "987654322"
}
}
}
},
{
"application_date": "2023-07-01 09:10:44",
"application_type": "auto",
"verified_information": {
...
},
"reported_information": {
...
}
}
]
}
},
"dealer": {
"income_overstatement_rate": 21.3358,
"fraud_paystub_rate": 1.1132,
"bs_risk_rate": 17.9963,
"applicant_misrep_rate": 6.1224
},
"vehicle": {
"income_overstatement_rate": 21.0232,
"fraud_paystub_rate": 0.6929,
"bs_risk_rate": 15.473,
"applicant_misrep_rate": 8.1028
}
}
Status | Error Message |
---|---|
500 | Something went wrong :( Indicates some internal failure occurred. You should contact your support representative. |
Response Components
A successful API request will return a synchronous response with the Fraud Knowledge Graph results like the example shown above.
Application ID
The unique Informed application_id
will be returned in the response.
Applicant scoring
Each applicant will be "scored" separately. If you register an applicant1
and applicant2
, then both applicants will have their own section within the applicants
object.
Applicant scoring
{
...
"applicants": {
"applicant1": {
"bls-oews": {
"mean_income": 69580.0,
"median_income": 64430.0,
"10pct_income": 39500.0,
"25pct_income": 50080.0,
"75pct_income": 80660.0,
"90pct_income": 100920.0,
"standard_occupational_classification": "Elementary School Teachers, Except Special Education",
"data_source_version": 2021,
"area_code": "19820",
"human_readable_area": "Detroit-Warren-Dearborn, MI",
"status": "MATCH_FOUND"
},
"predicted": {
"annual_income_score": 40
},
"occupation": {
"income_overstatement_rate": 18.1818,
"fraud_paystub_rate": 0.0,
"bs_risk_rate": 4.5455,
"applicant_misrep_rate": 9.0909
},
"historical_data": [
{
"application_date": "2023-07-08 15:23:12",
"application_type": "auto",
"verified_information": {
"income": {
"poi_income_from_employer": {
"question": "What is the income from the employer?",
"answer": "$34,250.00",
"expected": "",
"status": "pass"
},
"poi_documents_used": {
"question": "Which document was used to calculate income?",
"answer": "Current Paystub",
"expected": "",
"status": "pass"
},
"poi_income_within_threshold": {
"question": "Is the applicant's income in-line with that what s/he stated?",
"answer": "$34,250.00",
"expected": "$33,600.00",
"status": "pass"
},
"is_similar_to_fraudulent_paystub": {
"question": "Similar to a paystub known to be fraudulent?",
"answer": "FALSE",
"expected": "FALSE",
"status": "pass"
}
}
},
"reported_information": {
"vehicle_info": {
"selling_price": "18999",
"equipments": "<NA>",
"condition": "Used",
"trim": "sport sedan 4d",
"year": "2022",
"vin": "1HGCV1F37NA065226",
"model": "accord",
"make": "honda"
},
"dealer_info": {
"finance_risk": "Low",
"user_ratings_total": "95",
"overall_risk": "Low",
"paperwork_risk": "Medium",
"fraud_risk": "High",
"auto_risk": "Low",
"reputational_risk": "Low",
"google_rating": "4.7",
"master_dealer_address": "400 Riverside Ave, Roseville, CA 95678, United States",
"master_dealer_name": "USA Car Planet LLC"
},
"applicants": {
"applicant": {
"address_info": [
{
"monthly_housing_cost": "1100.00",
"address": {
"zip": "45459",
"street_address": "456 Maple Avenue",
"state": "OH",
"city": "Centerville"
},
"residence_type": "Rent"
}
],
"additional_incomes": [
{
"income": {
"period": "Yearly",
"amount": "<NA>"
}
}
],
"phone": "555-987-6544",
"date_of_birth": "1992-08-23",
"last_name": "Boren",
"employment_info": [
{
"income": {
"period": "Yearly",
"amount": "33600.00"
},
"employment_type": "<NA>",
"employer_name": "Royal Carrier Llc",
"occupation": "Truck Driver",
"is_current": true,
"start_date": "<NA>"
}
],
"middle_name": "Rose",
"suffix": "<NA>",
"first_name": "Jo",
"email": "jo.boren@example_test.com",
"ssn": "987654322"
}
}
}
}
]
}
},
...
}
Each applicant scoring section contains four sections as described in the table below.
Elements | Values | Description |
---|---|---|
bls-oews | object | This section assesses how an applicant's stated income compares to that of similarly employed workers based on occupation, employer and geographic area according to the Bureau of Labor Statistics' Occupational Employment and Wage Statistics (BLS OEWS). More details can be found here. |
predicted | object | This section contains the annual income score, which quantifies the potential level of income misrepresentation for the applicant. |
occupation | object | This section contains the occupation-based risk scoring for the applicant. |
historical_data | list of objects | This section contains historical data regarding other credit applications by the applicant. |
BLS - OEWS
For the U.S. Bureau of Labor Statistics (OEWS) data source, the key is bls-oews
and the elements contained within are detailed below. More information regarding the BLS OEWS is available at here.
{
...
"applicants": {
"applicant1": {
"bls-oews": {
"mean_income": 69580.0,
"median_income": 64430.0,
"10pct_income": 39500.0,
"25pct_income": 50080.0,
"75pct_income": 80660.0,
"90pct_income": 100920.0,
"standard_occupational_classification": "Elementary School Teachers, Except Special Education",
"data_source_version": 2021,
"area_code": "19820",
"human_readable_area": "Detroit-Warren-Dearborn, MI",
"status": "MATCH_FOUND"
},
...
}
}
}
Element | Value | Description |
---|---|---|
mean_income | numeric | Mean yearly income based on the occupation and the area of the applicant as reported in BLS data Or it can be null if there is insufficient data, an unsupported occupation, invalid input or no match found. |
median_income | numeric | Median yearly income based on the occupation and the area of the applicant as reported in BLS data Or it can be null if there is insufficient data, an unsupported occupation, invalid input or no match found. |
10pct_income | numeric | Tenth percentile yearly income based on the occupation and the area of the applicant as reported in BLS data Or it can be null if there is insufficient data, an unsupported occupation, invalid input or no match found. |
25pct_income | numeric | Twenty-fifth percentile yearly income based on the occupation and the area of the applicant as reported in BLS data Or it can be null if there is insufficient data, an unsupported occupation, invalid input or no match found. |
75pct_income | numeric | Seventy-fifth percentile yearly income based on the occupation and the area of the applicant as reported in BLS data Or it can be null if there is insufficient data, an unsupported occupation, invalid input or no match found. |
90pct_income | numeric | Ninetieth percentile yearly income based on the occupation and the area of the applicant as reported in BLS data Or it can be null if there is insufficient data, an unsupported occupation, invalid input or no match found. |
standard_occupational_classification | string | Standardized Occupation of the applicant as per BLS definition. The list of occupations can be found here. Or it can be null if there is an unsupported occupation, invalid input or no match found. |
data_source_version | numeric | Informed will use the latest version of the BLS data based on the date of the request, for example: 2022 Or it can be null if there is invalid input. |
area_code | string | The area code is a string containing 2-7 numeric digits that represents a geographic area per the BLS data. It is returned as a string because there can be leading zeros. More information can be found below. Or it can be null if there is invalid input. |
human_readable_area | string | A string containing a human readable description of the geographic area specified by the area_code above. More information can be found below.Or it can be null if there is invalid input. |
status | string | Status of the BLS lookup. The five possible values are explained in the table below. |
Applicant predicted score
The applicant's predicted score section contains an annual income score which quantifies the potential level of income misrepresentation for the applicant.
The annual income score is an integer between 0 and 1000, where every 40 points in the score means that the income misrepresented rate increased by 5% on average, with low scores meaning low misrepresentation and high scores meaning high misrepresentation.
For example, an annual income score of 0 means the stated income is grossly understated and less than 50% of verified income, while a score of 1000 means the stated income is grossly overstated and greater than 165% of verified income.
The annual income score is based on four primary inputs:
- Applicant's stated income
- Occupational income comparisons (based on BLS OEWS)
- Make and model of the vehicle involved, which is why it is highly encouraged to include vehicle information in the registered application
- Dealer information
{
...
"predicted": {
"annual_income_score": 40
},
...
}
Elements | Values | Description |
---|---|---|
annual_income_score | numeric | An integer between 0 and 1000 that describes the degree of understatement or overstatement. |
Applicant occupation risk details
The applicant occupation risk details section provides insights into how often applicants with similar occupations overstate or misrepresent their income or submit fraudulent documentation.
Please note that all rates are percentage values.
{
...
"occupation": {
"income_overstatement_rate": 18.1818,
"fraud_paystub_rate": 0.0,
"bs_risk_rate": 4.5455,
"applicant_misrep_rate": 9.0909
}
...
}
Elements | Values | Description |
---|---|---|
income_overstatement_rate | numeric | Decimal number between 0-100. The rate at which applicants overstated their income for the relevant occupation. |
fraud_paystub_rate | numeric | Decimal number between 0-100. The rate at which applicants provided fraudulent paystubs for the relevant occupation. |
bs_risk_rate | numeric | Decimal number between 0-100. The rate at which applicants provided risky bank statements for the relevant occupation. |
applicant_misrep_rate | numeric | Decimal number between 0-100. The rate at which applicants applied to multiple lenders with highly varying stated income levels for the relevant occupation. |
Historical data
The historical data section contains a list of objects, where the objects represent past transactions associated with this applicant from our data consortium. Each object contains relevant data for that transaction showing both reported as well as verified information from that time.
Historical data
{
...
"applicants": {
"applicant1": {
...
"historical_data": [
{
"application_date": "2023-07-08 15:23:12",
"application_type": "auto",
"verified_information": {
"income": {
"poi_income_from_employer": {
"question": "What is the income from the employer?",
"answer": "$34,250.00",
"expected": "",
"status": "pass"
},
"poi_documents_used": {
"question": "Which document was used to calculate income?",
"answer": "Current Paystub",
"expected": "",
"status": "pass"
},
"poi_income_within_threshold": {
"question": "Is the applicant's income in-line with that what s/he stated?",
"answer": "$34,250.00",
"expected": "$33,600.00",
"status": "pass"
},
"is_similar_to_fraudulent_paystub": {
"question": "Similar to a paystub known to be fraudulent?",
"answer": "FALSE",
"expected": "FALSE",
"status": "pass"
}
}
},
"reported_information": {
"vehicle_info": {
"selling_price": "18999",
"equipments": "<NA>",
"condition": "Used",
"trim": "sport sedan 4d",
"year": "2022",
"vin": "1HGCV1F37NA065226",
"model": "accord",
"make": "honda"
},
"dealer_info": {
"finance_risk": "Low",
"user_ratings_total": "95",
"overall_risk": "Low",
"paperwork_risk": "Medium",
"fraud_risk": "High",
"auto_risk": "Low",
"reputational_risk": "Low",
"google_rating": "4.7",
"master_dealer_address": "400 Riverside Ave, Roseville, CA 95678, United States",
"master_dealer_name": "USA Car Planet LLC"
},
"applicants": {
"applicant": {
"address_info": [
{
"monthly_housing_cost": "1100.00",
"address": {
"zip": "45459",
"street_address": "456 Maple Avenue",
"state": "OH",
"city": "Centerville"
},
"residence_type": "Rent"
}
],
"additional_incomes": [
{
"income": {
"period": "Yearly",
"amount": "<NA>"
}
}
],
"phone": "555-987-6544",
"date_of_birth": "1992-08-23",
"last_name": "Boren",
"employment_info": [
{
"income": {
"period": "Yearly",
"amount": "33600.00"
},
"employment_type": "<NA>",
"employer_name": "Royal Carrier Llc",
"occupation": "Truck Driver",
"is_current": true,
"start_date": "<NA>"
}
],
"middle_name": "Rose",
"suffix": "<NA>",
"first_name": "Jo",
"email": "jo.boren@example_test.com",
"ssn": "987654322"
}
}
}
}
]
}
},
...
}
Elements | Values | Description |
---|---|---|
application_date | string | A string representing the date of the original application using the following format:YYYY-MM-DDThh:mm:ss |
application_type | string | A string representing the type of credit application, such as auto |
verified_information | object | This section contains details on any verifications that were completed at the time of the previous transaction. These will center around verifications of income, residence, identity, ssn and insurance. For example, if income was verified, then it will show things like the calculated income, the documents used to calculate income and whether any of those documents indicated misrepresentation. |
reported_information | object | This section contains the information reported for the transaction, including details on the applicant, their address and employment information. If the transaction was an auto loan, it will also include relevant details on the vehicle and dealer involved. |
Please contact your account representative if they want historical data enabled for your paid use of the Fraud Knowledge Graph product.
Dealer risk details
The dealer risk details section provides insights into how often applicants at this dealership overstate or misrepresent their income or submit fraudulent documentation.
Please note that all rates are percentage values.
{
...
"dealer": {
"income_overstatement_rate": 15.625,
"fraud_paystub_rate": 0.0,
"bs_risk_rate": 20.3125,
"applicant_misrep_rate": 5.0
},
...
}
Elements | Values | Description |
---|---|---|
income_overstatement_rate | numeric | Decimal number between 0-100. The rate at which applicants overstated their income for the relevant dealer. |
fraud_paystub_rate | numeric | Decimal number between 0-100. The rate at which applicants provided fraudulent paystubs for the relevant dealer. |
bs_risk_rate | numeric | Decimal number between 0-100. The rate at which applicants provided risky bank statements for the relevant dealer. |
applicant_misrep_rate | numeric | Decimal number between 0-100. The rate at which applicants applied to multiple lenders with highly varying stated income levels for the relevant dealer. |
Vehicle risk details
The vehicle risk details section provides insights into how often purchasers of this type of automobile overstate or misrepresent their income or submit fraudulent documentation.
Please note that all rates are percentage values.
Note that the vehicle risk details will only be present and accurate if the vehicle_info section is included at application registration, which is why it is so highly encouraged to provide the vehicle information in the application registration.
{
...
"vehicle": {
"income_overstatement_rate": 14.9175,
"fraud_paystub_rate": 1.0561,
"bs_risk_rate": 28.9769,
"applicant_misrep_rate": 10.231
}
...
}
Elements | Values | Description |
---|---|---|
income_overstatement_rate | numeric | Decimal number between 0-100. The rate at which applicants overstated their income for the relevant vehicle make and model. |
fraud_paystub_rate | numeric | Decimal number between 0-100. The rate at which applicants provided fraudulent paystubs for the relevant vehicle make and model. |
bs_risk_rate | numeric | Decimal number between 0-100. The rate at which applicants provided risky bank statements for the relevant vehicle make and model. |
applicant_misrep_rate | numeric | Decimal number between 0-100. The rate at which applicants applied to multiple lenders with highly varying stated income levels for the relevant vehicle make and model. |
Supporting information
Status values
There are five possible values for the status property of the response. The status value helps explain the outcome of the BLS lookup for a given applicant's information.
Status | Description |
---|---|
MATCH_FOUND | A match was found in the BLS data and thus the income statistics will be supplied. |
NO_MATCH_FOUND | Occupation/Area is incorrect or incomplete and doesn’t have any match in BLS data. Therefore, the income statistics will be empty. |
INSUFFICIENT_DATA | The BLS data doesn't have enough entries for meaningful statistics. Therefore, the income statistics will be empty. |
UNSUPPORTED_OCCUPATION | There are some occupations that will never have a match, regardless of area, and we want to make sure to distinguish these from the normal situation of no match for a given occupation/area. Examples include "Retired", "Pension", "Social Security", "Self-Employed". No income statistics will be supplied for this status. |
INVALID_INPUT_FORMAT | This status will result if the request payload was not properly formed. Examples might include leaving out a required field or submitting a numeric value where a string was expected. No income statistics will be supplied for this status. |
Area codes and statistical areas
Metropolitan Statistical Areas (MSA) are represented by a unique five-digit code per MSA. Example: 41940
(San Jose-Sunnyvale-Santa Clara, CA)
Non-metropolitan areas are represented by a seven-digit code made up of the state code followed by a numerical ID for the specified non-metropolitan area in that state. Example: 5300006
(Western Washington nonmetropolitan area -- in this case, the sixth such non-metropolitan area in Washington state, which has state code 53)
State codes (sometimes referred to as FIPS codes) are two-digit codes between 1-98 (left padded with a zero as necessary to maintain two digits for codes with a numerical value less than 10). Example: 06
(CA)
If none of the previous area codes are able to be determined, we will use the generic code for the USA, which is 99
.
The detailed listing of all FIPS and MSA codes can be found here.
Lender Performance Data
In order for the Fraud Knowledge Graph algorithm to constantly improve for your benefit, the algorithm needs feedback. That feedback will come from completing the loop on the loan applications that were scored at time of decisioning to record the ultimate status of the applications.
How this would look in practice is a monthly CSV file containing the information shown in the table below. A secure method of transfer will be established between Informed and the lender for the monthly file transfer from the lender.
Note that none of the information requested contains personally identifiable information (PII) about the loan applicants.
Elements | Values | Description | Required? |
---|---|---|---|
application_id | string | The unique application ID designated by Informed at the time of application registration. | Yes |
application_reference_id | string | The unique application ID assigned by the lender at the time of application registration. | Yes |
application_status | string | The current status of the loan application. Acceptable values are approved , declined , funded | Yes |
is_fraud | boolean | Indicates whether the lender identified any fraudulent activity or material misrepresentation associated with the application. Acceptable values are true , false | No |
funded_date | string | Date the loan was funded (if applicable). Acceptable format: YYYYMMDD | No |
loan_status | string | Current status of the loan. Acceptable values are current , delinquent , paid_off , charged_off , repossessed | Yes |
status_date | string | Status as-of date. Acceptable format: YYYYMMDD | Yes |
last_payment_date | string | Date of last successful payment. Acceptable format: YYYYMMDD | No |
charged_off_amount | numeric | Decimal value of the loan charge off in dollars (if applicable). | No |
charged_off_date | string | Date of loan charge off (if applicable). Acceptable format: YYYYMMDD | No |
charged_off_reason | string | Reason for loan charge off (if applicable). Acceptable values are delinquency , fraud , bankruptcy , deceased , settlement | No |