Skip to main content
The Income Insights report analyzes transaction data across a user’s connected bank accounts to detect income sources, calculate averages, and forecast future income.

Attributes

Values, data types, and descriptions for the report-level metadata in the response.
AttributeTypeDescription
report_idstringUnique identifier of the report
created_atdate-timeTimestamp when report was created
completed_atdate-timeTimestamp when report was completed
days_requestedintegerNumber of days for requested transactions history
linksarray of objectsList of financial institutions connected, see Link object
bank_income_summaryobjectSummary of income over all accounts, see Bank Income Summary object

Link object

The information in this table is for values in the Links object.
AttributeTypeDescription
link_idstringUnique identifier of the link
created_atdate-timeTimestamp when the link was first created
updated_atdate-timeTimestamp of the most recent update made to the link
providerstringID of the financial institution
provider_namestringName of the financial institution
tracking_infostringAdditional (optional) identifier passed by the user
accountsarray of objectsList of demand-deposit accounts connected, see Account object
bank_income_sourcesarray of objectsList of income sources, see Bank Income Source object

Account object

The information in this table is for values in the Accounts object.
AttributeTypeDescription
idstringUnique identifier of the account
maskstringThe masked banking account number associated with the account
nicknamestringAn alternate name for the account
typeenumThe type of account, see Account Type enum
subtypestringThe sub-type of the account
days_availableintegerDays of transaction history available at report generation time, from earliest transaction to report date (inclusive)
ownersarray of objectsList of owners on the account, see Owner object

Owner object

The information in this table is for values in the Owner object.
AttributeTypeDescription
idstringUnique identifier of the owner
full_namestringAccount owner’s full name
emailstringAccount owner’s email address
phonestringAccount owner’s phone number
addressobjectAccount owner’s physical address
relation_typestringThe relationship this person has to the account

Income source qualification

Truv groups a user’s deposits into candidate sources and then decides which to surface as bank_income_source entries. Patterns that don’t qualify still appear in the underlying transactions; they’re just not surfaced as an income source. Two checks gate the decision:
CheckRule
RecurringA pay frequency is detected — weekly, bi-weekly, semi-monthly, or monthly
CurrentThe most recent deposit is no more than 3 pay periods old
In practice a qualifying source needs at least 3 deposits. The “≥3” floor isn’t a separate gate — it’s enforced upstream by the employer-grouping step and by the pay-frequency model, both of which require at least 3 transactions before they’ll emit a result. When the source-level total and per-period average are computed, major outlier deposits are trimmed (IQR filter). This shapes the published averages but is not a qualification check — a noisy source is still surfaced.
These rules describe regular income. Irregular categories — GIG_ECONOMY, RENTAL, EWA_PAYROLL, P2P_TRANSFER, TAX_CREDITS, CASH_OR_CHECK — skip the Recurring check and use a relaxed Current tolerance (2 months). See the Income category enum for the full list.

Bank income source object

The information in this table is for values in the Bank Income Source object.
AttributeTypeDescription
start_datedateEarliest transaction date for this source
end_datedateLatest transaction date for this source
account_idstringUnique identifier of the associated account
income_descriptionstringA human-readable shorthand for the underlying transaction descriptions
income_categorystringThe category of the income source, see Income Category enum
pay_frequencyenumThe rate at which income is deposited, see Pay Frequency enum
next_payment_datedateThe next payment date for the income source
total_amountstringThe sum of earnings for this income source, observed over the transaction history
iso_currency_codestringThe ISO 4217 currency code for amounts in this source
transaction_countintegerNumber of income transactions for this source
historical_summaryarray of objectsList of monthly summaries, see Historical Summary object
historical_average_monthly_incomestringHistorical average income deposited into the account, per calendar month, typically net of taxes and deductions.
historical_average_monthly_gross_incomestringHistorical average gross payment amount, per calendar month, predicted based on the transaction data.
forecasted_average_monthly_incomestringForecasted income deposited into the account, per calendar month.
avg_deposit_amountstringThe average amount received per deposit, typically net of taxes and deductions
avg_gross_deposit_amountstringThe average gross payment per deposit. Gross pay is predicted based on the transaction data
employerobjectThe normalized employer for the income source, see Employer object

Historical summary object

The information in this table is for values in the Historical summary object.
AttributeTypeDescription
start_datedateThe first date of this monthly period; will be the first day of the month unless the transaction history does not go back that far
end_datedateThe last date of this monthly period; will be the first day of the month unless such date is in the future
total_amountstringTotal amount of earnings for this monthly period
iso_currency_codestringThe ISO 4217 currency code for amounts in this period
transactionsarray of objectsList of transactions, see Transaction object

Transaction object

The information in this table is for values in the Transaction object.
AttributeTypeDescription
transaction_idstringUnique identifier for the transaction
amountstringDeposit amount
iso_currency_codestringThe ISO 4217 currency code for this transaction
datedateDate the amount was posted to the account
check_numberstringThe check number for the transaction
descriptionstringA human-readable description for the transaction
pendingbooleanTrue if the status of the transaction is pending or not set

Employer object

The information in this table is for values in the Employer object.
AttributeTypeDescription
idstringUnique identifier for the employer
namestringName of the employer
logo_urlstringURL for the employer’s logo image

Bank Income Summary object

The information in this table is for values in the Bank Income Summary object.
AttributeTypeDescription
start_datestringEarliest transaction date among all income sources
end_datestringLatest transaction date among all income sources
income_sources_countintegerNumber of income sources for this user
income_categories_countintegerNumber of income categories for this user
income_transactions_countintegerNumber of income transactions for this user
total_amountsarray of objectsTotal amount of income observed in the transaction history, over all sources. One per currency. See Total Amount object
historical_average_monthly_incomearray of objectsTotal monthly average income earned historically, over all sources. One per currency. See Total Amount object
historical_average_monthly_gross_incomearray of objectsTotal monthly average gross income earned historically, over all sources. One per currency. Gross amounts are estimated from transactions. See Total Amount object
forecasted_average_monthly_incomearray of objectsTotal forecasted monthly average income, over all sources. One per currency. See Total Amount object
historical_annual_gross_incomearray of objectsAnnualized gross income earned historically, over all sources. One per currency. See Total Amount object
historical_annual_incomearray of objectsAnnualized income earned historically, over all sources. One per currency. See Total Amount object
forecasted_annual_incomearray of objectsAnnualized forecasted income, over all sources. One per currency. See Total Amount object

Total amount object

The information in this table is for values in the Total Amount object.
AttributeTypeDescription
amountstringTotal amount
iso_currency_codestringThe ISO 4217 currency code for the amount

Enumerated Types

The following sets show the available values that an enum attribute could take. The income_category and pay_frequency fields are nullable and may return null.

Account type enum

AttributeType
CHECKINGstring
SAVINGSstring
PREPAIDstring

Income category enum

ValueDescriptionGrossed up
PAYCHECKRegular paycheck depositsYes
RETIREMENTRetirement incomeYes
GOVERNMENT_EMPLOYMENTGovernment employment incomeYes
EWA_PAYROLLEarned wage access payrollYes
GIG_ECONOMYGig economy incomeNo
GOVERNMENT_BENEFITSGovernment benefitsNo
RENTALRental incomeNo
UNEMPLOYMENTUnemployment benefitsNo
PRIVATE_BENEFITSPrivate benefitsNo
CASH_OR_CHECKCash or check depositsNo
TAX_CREDITSTax credit paymentsNo
P2P_TRANSFERPeer-to-peer transfersNo
INTERESTInterest incomeNo
INVESTMENTInvestment incomeNo
OTHEROther incomeNo

Pay frequency enum

ValuePay frequency
MMonthly
SMSemi-Monthly
WWeekly
BWBi-Weekly
AAnnually
SASemiannually
CCommission

Permissible purpose enum

A permissible purpose is required when creating an Income Insights report, passed in the consumer_report_permissible_purpose field. It identifies why you are requesting the consumer’s financial data.
ValueUse case
ACCOUNT_REVIEW_CREDITReviewing an existing credit account
ACCOUNT_REVIEW_NON_CREDITReviewing an existing non-credit account
EMPLOYMENTEmployment verification
EXTENSION_OF_CREDITEvaluating a credit application
LEGITIMATE_BUSINESS_NEED_TENANT_SCREENINGTenant screening
LEGITIMATE_BUSINESS_NEED_OTHEROther legitimate business need
WRITTEN_INSTRUCTION_PREQUALIFICATIONPrequalification with written consent
WRITTEN_INSTRUCTION_OTHEROther use with written consent

Endpoints

View more information about the available endpoints for Income Insights reports.

Example response

The JSON below is a sample response for the endpoint.
{
  "report_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "created_at": "2022-05-04T11:30:00Z",
  "completed_at": "2022-05-04T12:00:00Z",
  "days_requested": 61,
  "links": [
    {
      "link_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "created_at": "2022-05-04T11:30:00Z",
      "updated_at": "2022-05-04T12:00:00Z",
      "provider": "chase",
      "provider_name": "Chase Bank",
      "tracking_info": "string",
      "accounts": [
        {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "mask": "****1234",
          "nickname": "My account",
          "type": "CHECKING",
          "subtype": "MONEY_MARKET",
          "days_available": 365,
          "owners": [
            {
              "id": "2b623fa2fa9e49cea17d9692caa884c5",
              "full_name": "John Doe",
              "email": "john.doe@example.com",
              "phone": "14155554193",
              "address": {
                "street": "1 Morgan Ave",
                "city": "Los Angeles",
                "state": "CA",
                "zip": "90210",
                "country": "US"
              },
              "relation_type": "AUTHORIZED_USER"
            }
          ]
        }
      ],
      "bank_income_sources": [
        {
          "start_date": "2022-05-04",
          "end_date": "2022-05-04",
          "account_id": "24d7e80942ce4ad58a93f70ce4115f5c",
          "income_description": "Paycheck",
          "income_category": "PAYCHECK",
          "pay_frequency": "SM",
          "total_amount": "200.31",
          "iso_currency_code": "USD",
          "transaction_count": 1,
          "historical_summary": [
            {
              "start_date": "2022-05-04",
              "end_date": "2022-05-04",
              "total_amount": "200.31",
              "iso_currency_code": "USD",
              "transactions": [
                {
                  "amount": "200.31",
                  "iso_currency_code": "USD",
                  "date": "2022-05-04",
                  "check_number": "string",
                  "description": "string",
                  "pending": true,
                  "transaction_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                }
              ]
            }
          ],
          "historical_average_monthly_income": "10000.00",
          "historical_average_monthly_gross_income": "12000.00",
          "forecasted_average_monthly_income": "10000.00",
          "next_payment_date": "2022-06-01",
          "avg_deposit_amount": "5000.00",
          "avg_gross_deposit_amount": "6000.00",
          "employer": {
            "id": "meta",
            "name": "Meta",
            "logo_url": "string"
          }
        }
      ]
    }
  ],
  "bank_income_summary": {
    "start_date": "2022-05-04",
    "end_date": "2022-05-04",
    "income_sources_count": 1,
    "income_categories_count": 1,
    "income_transactions_count": 1,
    "total_amounts": [
      {
        "amount": "200.31",
        "iso_currency_code": "USD"
      }
    ],
    "historical_average_monthly_gross_income": [
      {
        "amount": "200.31",
        "iso_currency_code": "USD"
      }
    ],
    "historical_average_monthly_income": [
      {
        "amount": "200.31",
        "iso_currency_code": "USD"
      }
    ],
    "forecasted_average_monthly_income": [
      {
        "amount": "200.31",
        "iso_currency_code": "USD"
      }
    ],
    "historical_annual_gross_income": [
      {
        "amount": "200.31",
        "iso_currency_code": "USD"
      }
    ],
    "historical_annual_income": [
      {
        "amount": "200.31",
        "iso_currency_code": "USD"
      }
    ],
    "forecasted_annual_income": [
      {
        "amount": "200.31",
        "iso_currency_code": "USD"
      }
    ]
  }
}