Daily Interest Accrual Engine

Dated balance and rate to daily accrual, accrued-but-unbilled ledger, billing-cutoff capitalization, and replay-safe ledger journals

Daily Interest Accrual Engine Dated balance and rate to daily accrual, accrued-but-unbilled ledger, billing-cutoff capitalization, and replay-safe ledger journals 01 / Sources 02 / Compute 03 / Accrue 04 / Cutoff 05 / Post Balance Snapshot · per day · 01 / Sources · as-of Balance Snapshot per day as-of Rate Timeline · effective-from · 01 / Sources · as-of Rate Timeline effective-from as-of Accrual Calc · day-count N · 02 / Compute · daily Accrual Calc day-count N daily Replay Guard · per acct/day · 02 / Compute · idempotent Replay Guard per acct/day idempotent Accrued Ledger · unbilled · 03 / Accrue · sub-ledger Accrued Ledger unbilled sub-ledger Capitalize · billing cutoff · 04 / Cutoff Capitalize billing cutoff GL Journal · Dr / Cr · 05 / Post · posted GL Journal Dr / Cr posted daily balance dated as-of rate dated day accrual minor units dedupe key idempotency accumulated swept capitalized balanced Legend primary data policy / PII async batch data store

Primary Accrual Path

  • • One accrual per account per day, not one per cycle
  • • Balance and rate are read as-of the accrual date
  • • Accrued interest accumulates in a dedicated sub-ledger

Replay Safety

  • • Idempotency key is account plus date
  • • A crashed or re-run job cannot double-book
  • • History rebuilds deterministically from dated inputs