Lesson 53Lending depthAdvanced

Revolving credit and the statement cycle

Credit cards don't have one balance. They have current, statement, and minimum.

By Solomon Ajayi · Free to read, no signup

A credit card is a loan with a moving target. The user spends throughout the month; on statement day the running balance is FROZEN as a 'statement balance.' They have until the payment due date (typically 21 days after statement) to pay any portion, minimum (interest-bearing), partial (mixed), or full (no interest). What they pay determines what interest you accrue against them next cycle. Your books need three views of the same debt: current balance (live), statement balance (frozen at cycle close), and unpaid statement balance (what interest accrues against after due date). This lesson walks one cycle from purchase to interest accrual.

A wallet has one balance. A credit card has three, and conflating them is where revolving-credit ledgers go wrong. There is the current balance, which moves live as the user spends; the statement balance, frozen at cycle close; and the unpaid statement balance, the portion the user did not pay by the due date. Each one answers a different question, and only one of them accrues interest.

The reason for the split is the interest-accrual job. Purchases made this cycle land in the Current bucket. On statement day, whatever is in Current is promoted into Statemented, a pure reclassification between two asset buckets with no money moving, and Current resets to zero for the next cycle. After the due date, the part of the statement balance the user left unpaid starts accruing daily interest, which posts to interest income while increasing the same receivable. The debt finances itself.

Grace-period logic sits on top of this: if the user paid last month's statement in full, this month's new purchases earn no interest until the next statement, so the accrual job has to know the payment history, not just the balance. The two-bucket split plus a single promote-at-close job gives you all of that cleanly. Without it you are forced to bolt ad-hoc flags onto individual transactions to remember which ones are billed and which are accruing.

Worked example, step by step

Day 5: user purchases ₦20,000 on card

User swipes for ₦20,000. You (the issuer) pay the merchant later via interchange. From the user's perspective, they now owe you ₦20,000. From your books, it lands as a Current Receivable.

Card purchase ₦20,000 (current cycle)
AccountDebitCredit
Credit Card Receivable (Current) (1560)₦20,000.00
Bank Account (1200)₦20,000.00

Credit Card Receivable (Current) UP ₦20,000 (debit). Bank Account DOWN ₦20,000 (credit, you pay the merchant net of interchange, simplified here). The 'Current' bucket holds anything posted since the last statement.

Day 28: cycle close, promote Current to Statemented

Statement day. Whatever's in the Current bucket gets frozen into Statemented. The user gets a statement showing ₦20,000 owed, with a payment due date 21 days out. The Current bucket starts the next cycle at zero.

Statement close: promote Current → Statemented
AccountDebitCredit
Credit Card Receivable (Statemented) (1565)₦20,000.00
Credit Card Receivable (Current) (1560)₦20,000.00

Credit Card Receivable (Statemented) UP ₦20,000 (debit). Credit Card Receivable (Current) DOWN ₦20,000 (credit). Pure reclassification between two asset buckets, no money in or out. The split lets your interest-accrual job know which balance carries forward.

Day 49: user pays minimum (₦4,000), balance carries forward

Due date. User pays ₦4,000 (the minimum required, typically 5-20% of statement). The unpaid portion (₦16,000) will accrue interest from day 50 onwards at, say, 3% per month.

Minimum payment ₦4,000
AccountDebitCredit
Bank Account (1200)₦4,000.00
Credit Card Receivable (Statemented) (1565)₦4,000.00

Bank Account UP ₦4,000 (debit). Credit Card Receivable (Statemented) DOWN ₦4,000 (credit). The ₦16,000 still sitting in Statemented will get hit with daily interest accrual starting tomorrow. That interest posts to Credit Card Interest Income against an increase to the same receivable, a self-extending loan.

Takeaway

Credit cards are accounting-rich. Three balances (current, statemented, unpaid-and-accruing) plus daily interest accrual plus grace-period logic (if the user paid in full last month, no interest charged on this month's purchases until next statement). The split between 'Current' and 'Statemented' buckets is what makes the rest work, without it, your interest job can't tell which portion of the receivable to charge. Most ledger schemas miss this and end up with ad-hoc booleans on each transaction. Two buckets, one promote-at-close job, clean accounting.

Practice this on a real ledger

Reading is half of it. Open this lesson in the lab to post the entries yourself against a real Postgres-backed double-entry ledger, with the validation on. Free, your sandbox is yours.

More in this section

Search lessons

Type to find any of the 85 lessons. Press Enter to open.