Transactions File
All transaction IDs in this file are unique and have never been seen in a Transactions file before.
Balances File
Deposit Balance
See Balance Reconciliation and Examples for specific examples.
| Validation | Description |
|---|---|
balance on t = balance on t-1 + daily_activity on t | daily_activity on t = sum(transactions.amount) where transactions.type not in (interest_accrued,dispute_won) |
rewards_balance on t = rewards_balance on t-1 + daily_rewards_activity on t | daily_rewards_activity on t = sum(transactions.rewards_amount) where transactions.type in (rewards_earned, rewards_spent, rewards_redeemed,debit, refund,credit) |
interest_accrued_balance on t = interest_accrued_balance on t-1 + daily_interest_activity on t | daily_interest_activity on t = transactions.amount where transactions.type=interest_accrued - transactions.amount where transactions.type= interest_paid |
dispute_balance on t = dispute_balance on t-1 + daily_dispute_activity on t | daily_dispute_activity on t = sum (amount) where transactions.type in (dispute_provisional, dispute_won, dispute_lost) |
charge_off_balance on t = charge_off_balance on t-1 + daily_charge_off_activity on t | daily_charge_off_activity on t = sum (transactions.amount) where transactions.typein (charge_off, charge_off_recovery) |
Credit Balance
See Balance Reconciliation and Examples for specific examples.
| Validation | Description |
|---|---|
balance on t = balance on t-1 + daily_activity on t | daily_activity on t = sum(transactions.amount) where transactions.type not in (charge_off_recovery,dispute_won) |
any balance across balance, dispute_balance, past_due_balance, charge_off_balance will have the following validations: | *balance = *principal + *interest + *fees |
outstanding_principal on t = outstanding_principalon t-1 + daily_principal_activity on t | daily_principal_activity on t = sum (transactions.principal_amount) where transactions.type not in (fee,interest_accrued,charge_off_recovery,dispute_won) |
outstanding_fees on t = outstanding_feeson t-1 + daily_fees_activity on t | daily_fees_activity on t = sum(transactions.fee_amount) where transactions.type not in (disbursement,interest_accrued,charge_off_recovery,dispute_won) |
outstanding_interest on t = outstanding_interest on t-1 + daily_interest_activity on t | daily_interest_activity on t = sum(transactions.interest_amount) where transactions.type not in (disbursement,fee,charge_off_recovery,dispute_won) |
rewards_balance on t = rewards_balance on t-1 + daily_rewards_activity on t | daily_rewards_activity on t = sum(transactions.rewards_amount) where transactions.type in (rewards_earned, rewards_spent, rewards_redeemed,disbursement, refund,client_credit) |
dispute_balance on t = dispute_balance on t-1 + daily_dispute_activity on t | daily_dispute_activity on t = -transactions.amount where transactions.type = dispute_provisional+ transactions.amount where transactions.type = dispute_won - transactions.amount where transactions.type = dispute_lost (the same logic applies for dispute_principal, dispute_fees ,dispute_interest) |
charge_off_balance on t = charge_off_balance on t-1 + daily_charge_off_activity on t | daily_charge_off_activity on t = - transactions.amount where transactions.type = charge_off + transactions.amount where transactions.type = charge_off_recovery (the same logic applies for charge_off_principal , charge_off_fees ,charge_off_interest) |
past_due_balance <= balance | past_due_principal <= outstanding_principal;past_due_fees <= outstanding_fees ;past_due_interest <= outstanding_interestIf a credit balance is both past due and charged off, the amount should only be included in charge_off_balance and not in past_due_balance. |

