AMORTANCE — SELF-CHECK One contract, one credit, two readings of the date it takes effect. Synthetic data · every date is in the past · currency USD WHY THIS FILE Run this contract through your own module and compare eight figures. Whichever column you land in is the policy your system applies today. It takes one contract keyed in by hand — not an export — and nothing here has to be sent to anybody. The inputs and both sets of results are in self-check.json beside this file, and verify.py, a second implementation, re-derives them from it. THE CONTRACT Signed 2025-01-15. Amount financed $6,000.00. APR 18.00%, simple interest on the outstanding principal, 30/360, no compounding. 12 monthly payments of $550.08 on the 15th, from 2025-02-15 through 2026-01-15. A payment settles accrued interest first, then principal. THE EVENT A credit of $1,200.00 is agreed: a canceled service contract on a vehicle, an insurer paying above estimate on a treatment plan — the arithmetic is the same either way. It takes effect on 2025-06-01 under the paper, and the money arrives on 2025-07-10. Two payments are collected in between — 2025-06-15 and 2025-07-15 — and neither of them is reversed. The amount is not in dispute. The date it is credited as of is. THE TWO ANSWERS A — credited 2025-06-01, the date the contract names. B — credited 2025-07-10, the day the money arrived. Check A B Scheduled payment $550.08 $550.08 Interest in the payment of 2025-06-15 $53.36 $61.77 Principal in that payment $496.72 $488.31 Balance after it $2,421.13 $3,629.54 Interest in the payment of 2025-07-15 $36.32 $51.44 Balance after that one $1,907.37 $1,930.90 Final payment, 2025-11-15 $324.17 $349.14 Interest over the life of the loan $474.89 $499.86 Same in both: the scheduled payment, the number of payments (10), and the last one falling on 2025-11-15 — the refund pulls the contract in by two payments either way, from 2026-01-15. What differs is the split of the payments collected in the gap, and what the loan costs. HOW TO READ YOUR OWN RESULT Column A — your system credits an event on the date the paper gives it, and re-splits the payments already collected after that date. Column B — your system credits money on the day it arrives. That is the common answer and a defensible policy rather than a bug, but it should be the policy your contracts state rather than a side effect of when the check cleared. Neither — check the day count first (30/360: every month exactly 30 days) and the scheduled payment. If those two agree and the rest still does not, write to hello@amortance.com with your figures and I will say where the difference comes from. LIMITS A synthetic contract, one event, eight figures. This says which policy your system applies on this contract. It does not say how often the case arises on your book, what it costs you, or that anything you produce is an error — that is what a review of your own plans is for. Specification and both sets of results: https://amortance.com/self-check.json Independent verifier: https://amortance.com/verify.py The same figures as rows: https://amortance.com/self-check.csv