Skip to main content

QlarifiReportV2 Field Reference

This document provides a comprehensive reference for all fields present in the LenderQlarifiReportV2 data structure as they appear in JSON format.

Overview

The LenderQlarifiReportV2 is a consumer financial report generated by Qlarifi for a specific lender, containing analytical data points about a consumer's BNPL (Buy Now, Pay Later) transaction history and patterns. The report is provided in JSON format with specific serialization formats for complex data types.

Top-Level Fields

Core Report Fields

FieldJSON TypeFormat/ExampleDescription
QlarifiIdstring"12345678-1234-1234-1234-123456789012"Unique ID set up by Qlarifi for a specific correlation of ConsumerIds
SchemaVersionstring"2.1.0"Version of the report schema following semantic versioning (MAJOR.MINOR.PATCH). Pertains only to features included in the report
ExecutableVersionstring"1.0.4"The version of the application that generated the report
EffectiveTimestampstring"2024-03-31T23:00:00+00:00"ISO 8601 timestamp for which the report was generated. All context is relative to this timestamp
Metadataobject{"key1": "value1", "key2": "value2"}A set of key-value pairs that provide additional information about the generated report
BnplReportFeaturesobjectSee BNPL section belowData features for the consumer's BNPL transaction history across accounts/lenders

BNPL Report Features

The BnplReportFeatures contains analytical data points about a consumer's BNPL transaction history and patterns.

BnplReportFeatures Structure

FieldJSON TypeFormat/ExampleDescription
SnapshotFeaturesobjectSee snapshot fields belowFeatures that describe the current status of the consumer's BNPL transactions
VelocityFeaturesobject{"30Days": {...}, "90Days": {...}}Features about the consumer's BNPL transaction history over several time periods

BnplSnapshotFeatures Fields

Current status features for BNPL transactions:

FieldJSON TypeFormat/ExampleDescription
TotalTransactedLendersnumber5Number of total lenders that the consumer has a transaction with
CurrentActiveTransactionsnumber3Number of transactions that are awaiting repayment (not paid off, refunded, cancelled or written off)
CurrentOutstandingInstallmentsnumber8Number of installments that are awaiting repayment
CurrentExposureobject{"amount": 250.50, "currency": "USD"}Total amount of money that the consumer currently owes across all active transactions
AverageExposureProportionsobject{"30Days": 0.75, "90Days": 0.85}Proportion of current exposure compared to average exposure over various time periods
MaxExposureProportionsobject{"30Days": 0.60, "90Days": 0.70}Proportion of current exposure compared to max exposure over various time periods
DaysSinceLastPaymentnumber|null15 or nullNumber of days since the consumer last made a payment on any active transactions (null if no payments made)
CurrentLateTransactionsobject{"5DaysPastDue": 2, "30DaysPastDue": 1}Number of transactions currently late, categorized by days late (cumulative categories)
CurrentLateInstallmentsobject{"5DaysPastDue": 3, "30DaysPastDue": 1}Number of installments currently late, categorized by days late (cumulative categories)
CurrentLateExposuresobject{"5DaysPastDue": {"amount": 150.00, "currency": "USD"}}Amount of money currently owed for late transactions, categorized by days late
CurrentLateTransactionProportionsobject{"5DaysPastDue": 0.67, "30DaysPastDue": 0.33}Proportion of current late transactions compared to total active transactions
CurrentLateInstallmentProportionsobject{"5DaysPastDue": 0.375, "30DaysPastDue": 0.125}Proportion of current late installments compared to total open installments
CurrentPostponedTransactionsnumber1Number of active transactions that have been postponed by the consumer
CurrentPostponedInstallmentsnumber2Number of installments that were postponed by the consumer
FirstTransactionDatestring|null"2023-01-15T10:30:00+00:00" or nullISO 8601 date of the first transaction that the consumer has made with any lender
LastTransactionDatestring|null"2024-03-28T14:22:00+00:00" or nullISO 8601 date of the last transaction that the consumer has made with any lender

BnplVelocityPeriodFeatures Fields

Historical features over specific time periods:

FieldJSON TypeFormat/ExampleDescription
TimeRangeDescriptionstring"Last 30 days"Textual description of the time range
TimeRangeStartstring"2024-03-01T00:00:00+00:00"ISO 8601 start timestamp of the time range
TimeRangeEndstring"2024-03-31T23:59:59+00:00"ISO 8601 end timestamp of the time range
TotalIssuedTransactionsnumber12Number of issued transactions in the period
TotalIssuedInstallmentsnumber48Number of issued installments in the period
TotalIssuedTransactionsAmountobject{"amount": 1250.75, "currency": "USD"}Total amount of issued transactions in the period
TotalActiveTransactionsnumber8Count of transactions that were active at some point in the period
TotalPaidEarlyInstallmentsobject{"5DaysEarly": 3, "10DaysEarly": 1}Number of early installment paid off, categorized by days early
TotalRefundsnumber2Number of refunds in the period
TotalRefundsAmountobject{"amount": 200.00, "currency": "USD"}Total amount of refunds in the period
TotalPostponedTransactionsnumber1Number of transactions postponed by the consumer in the period
TotalPostponedInstallmentsnumber3Number of installments postponed by the consumer in the period
TotalLateTransactionsobject{"5DaysPastDue": 4, "30DaysPastDue": 2}Number of transactions that were late at some point in the period, categorized by days late
TotalLateInstallmentsobject{"5DaysPastDue": 6, "30DaysPastDue": 2}Number of installments that were late in the period, categorized by days late
LateTransactionProportionsobject{"5DaysPastDue": 0.33, "30DaysPastDue": 0.17}Proportion of total issued transactions that were late, categorized by days late
LateInstallmentProportionsobject{"5DaysPastDue": 0.125, "30DaysPastDue": 0.04}Proportion of total issued installments that were late, categorized by days late
TotalPaidOffLateTransactionsobject{"5DaysPastDue": 3, "30DaysPastDue": 1}Number of transactions paid late at some point in the period, categorized by days late
TotalPaidLateInstallmentsobject{"5DaysPastDue": 4, "30DaysPastDue": 1}Number of installments paid late in the period, categorized by days late
PaidOffLateTransactionProportionsobject{"5DaysPastDue": 0.25, "30DaysPastDue": 0.08}Proportion of total issued transactions that were paid late, categorized by days late
PaidLateInstallmentProportionsobject{"5DaysPastDue": 0.08, "30DaysPastDue": 0.02}Proportion of total issued installments that were paid late, categorized by days late
TotalPaidOffTransactionsnumber10Number of transactions paid off in the period
TotalPaidOffInstallmentsnumber42Number of installments paid off in the period
WorstLateInstallmentInDaysnumber45Maximum days late for any due installment observed in the period
AverageDailyActiveTransactionsnumber3.5Daily number of active transactions averaged over the period
AverageDailyConsumerExposureobject{"amount": 325.50, "currency": "USD"}Daily exposure of the consumer averaged over the period
MaxDailyConsumerExposureobject{"amount": 450.75, "currency": "USD"}Maximum daily exposure of the consumer in the period

JSON Data Types and Formats

Money Object

The Money type is serialized as a JSON object with the following structure:

{
"amount": 123.45,
"currency": "USD"
}
  • amount: number - The monetary amount as a decimal number
  • currency: string - The ISO 4217 currency code (e.g., "USD", "CAD", "EUR")

DateTimeOffset

All date/time fields are serialized as ISO 8601 formatted strings in UTC:

"2024-03-31T23:00:00+00:00"

TimeSpan (Duration)

Time spans are serialized using ISO 8601 duration format:

"P2Y3M15DT10H30M45S"

Where:

  • P = Period designator
  • Y = Years
  • M = Months (after Y) or Minutes (after T)
  • D = Days
  • T = Time designator (separates date and time components)
  • H = Hours
  • S = Seconds

Dictionary Types

Dictionary fields are serialized as JSON objects with string keys:

{
"30Days": 0.75,
"90Days": 0.85,
"180Days": 0.92
}

Important Notes

Categorization Logic

For late payment categorizations (e.g., 5DaysPastDue, 30DaysPastDue), the system uses cumulative categorization:

  • A transaction that is 34 days late will be counted in both 5DaysPastDue and 30DaysPastDue categories
  • This approach maintains consistency if new categories are added in the future

Time Period Features

BNPL features include velocity period features that track metrics over different time ranges. The specific time periods are defined by the keys in the VelocityFeatures dictionary (e.g., "30Days", "90Days").

Nullable Fields

Several fields may be null in JSON, indicating they don't have values in certain scenarios:

  • DaysSinceLastPayment=null when no payments have been made
  • FirstTransactionDate/LastTransactionDate=null if no transactions exist

Sample JSON Structure

{
"QlarifiId": "12345678-1234-1234-1234-123456789012",
"SchemaVersion": "2.1.0",
"ExecutableVersion": "1.0.4",
"EffectiveTimestamp": "2024-03-31T23:00:00+00:00",
"Metadata": {
"requestId": "req-001",
"environment": "production"
},
"BnplReportFeatures": {
"SnapshotFeatures": {
"TotalTransactedLenders": 5,
"CurrentActiveTransactions": 3,
"CurrentExposure": {
"amount": 250.50,
"currency": "USD"
},
"DaysSinceLastPayment": 15,
"FirstTransactionDate": "2023-01-15T10:30:00+00:00"
},
"VelocityFeatures": {
"30Days": {
"TimeRangeDescription": "Last 30 days",
"TimeRangeStart": "2024-03-01T00:00:00+00:00",
"TimeRangeEnd": "2024-03-31T23:59:59+00:00",
"TotalIssuedTransactions": 12,
"TotalIssuedTransactionsAmount": {
"amount": 1250.75,
"currency": "USD"
}
}
}
}
}