[ { "name": "GBP 10,000 High Court judgment, paid 364 days later: 797.81 at 2.19 a day", "args": [ { "minor": 1000000, "currency": "GBP" }, "2025-01-01", "2025-12-31", "judgment-high-court" ], "expect": { "days": 364, "rateBasisPoints": 800, "dailyInterest": { "minor": 219, "currency": "GBP" }, "interest": { "minor": 79781, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 79781, "currency": "GBP" } } }, { "name": "a whole non-leap year is exactly 8%", "args": [ { "minor": 1000000, "currency": "GBP" }, "2025-01-01", "2026-01-01", "judgment-high-court" ], "expect": { "days": 365, "rateBasisPoints": 800, "dailyInterest": { "minor": 219, "currency": "GBP" }, "interest": { "minor": 80000, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 80000, "currency": "GBP" } } }, { "name": "a year spanning 29 February is 366 days at 1/365: 802.19, not 800.00", "args": [ { "minor": 1000000, "currency": "GBP" }, "2024-01-01", "2025-01-01", "judgment-high-court" ], "expect": { "days": 366, "rateBasisPoints": 800, "dailyInterest": { "minor": 219, "currency": "GBP" }, "interest": { "minor": 80219, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 80219, "currency": "GBP" } } }, { "name": "paid on the day of judgment: no interest, but the daily rate is still quoted", "args": [ { "minor": 1234567, "currency": "GBP" }, "2026-03-01", "2026-03-01", "judgment-high-court" ], "expect": { "days": 0, "rateBasisPoints": 800, "dailyInterest": { "minor": 271, "currency": "GBP" }, "interest": { "minor": 0, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 0, "currency": "GBP" } } }, { "name": "GBP 1 for one day rounds to nothing", "args": [ { "minor": 100, "currency": "GBP" }, "2026-03-01", "2026-03-02", "judgment-high-court" ], "expect": { "days": 1, "rateBasisPoints": 800, "dailyInterest": { "minor": 0, "currency": "GBP" }, "interest": { "minor": 0, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 0, "currency": "GBP" } } }, { "name": "30 days on GBP 25,000: 164.38", "args": [ { "minor": 2500000, "currency": "GBP" }, "2026-03-01", "2026-03-31", "judgment-high-court" ], "expect": { "days": 30, "rateBasisPoints": 800, "dailyInterest": { "minor": 548, "currency": "GBP" }, "interest": { "minor": 16438, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 16438, "currency": "GBP" } } }, { "name": "rounded once over the period, not per day: 100 days of 1.10 a day on GBP 5,000.00 is 109.59", "args": [ { "minor": 500000, "currency": "GBP" }, "2026-01-01", "2026-04-11", "judgment-county-court" ], "expect": { "days": 100, "rateBasisPoints": 800, "dailyInterest": { "minor": 110, "currency": "GBP" }, "interest": { "minor": 10959, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 10959, "currency": "GBP" } } }, { "name": "a County Court judgment of GBP 4,999.99 carries no statutory interest", "args": [ { "minor": 499999, "currency": "GBP" }, "2026-01-01", "2026-12-31", "judgment-county-court" ], "expect": { "days": 364, "rateBasisPoints": 0, "dailyInterest": { "minor": 0, "currency": "GBP" }, "interest": { "minor": 0, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 0, "currency": "GBP" } } }, { "name": "a County Court judgment of exactly GBP 5,000 does", "args": [ { "minor": 500000, "currency": "GBP" }, "2026-01-01", "2027-01-01", "judgment-county-court" ], "expect": { "days": 365, "rateBasisPoints": 800, "dailyInterest": { "minor": 110, "currency": "GBP" }, "interest": { "minor": 40000, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 40000, "currency": "GBP" } } }, { "name": "the first day of the 8% rate", "args": [ { "minor": 3650000, "currency": "GBP" }, "1993-03-31", "1993-04-01", "judgment-high-court" ], "expect": { "days": 1, "rateBasisPoints": 800, "dailyInterest": { "minor": 800, "currency": "GBP" }, "interest": { "minor": 800, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 800, "currency": "GBP" } } }, { "name": "late payment passes through finance.late-payment-interest: 11.75% and the GBP 70 fixed sum", "args": [ { "minor": 100000, "currency": "GBP" }, "2026-01-31", "2026-03-22", "late-payment" ], "expect": { "days": 50, "rateBasisPoints": 1175, "dailyInterest": { "minor": 32, "currency": "GBP" }, "interest": { "minor": 1610, "currency": "GBP" }, "compensation": { "minor": 7000, "currency": "GBP" }, "total": { "minor": 8610, "currency": "GBP" } } }, { "name": "late payment paid on time: nothing, rate 0", "args": [ { "minor": 100000, "currency": "GBP" }, "2026-01-31", "2026-01-31", "late-payment" ], "expect": { "days": 0, "rateBasisPoints": 0, "dailyInterest": { "minor": 0, "currency": "GBP" }, "interest": { "minor": 0, "currency": "GBP" }, "compensation": { "minor": 0, "currency": "GBP" }, "total": { "minor": 0, "currency": "GBP" } } }, { "name": "a judgment before the 8% rate began (1 April 1993) is not carried", "args": [ { "minor": 100000, "currency": "GBP" }, "1993-03-01", "1993-06-01", "judgment-high-court" ], "expectError": "judgment interest rate" }, { "name": "a County Court judgment before 1 July 1991 is not carried", "args": [ { "minor": 1000000, "currency": "GBP" }, "1991-06-30", "1993-06-01", "judgment-county-court" ], "expectError": "County Court judgment interest rule" }, { "name": "paying before judgment is an error", "args": [ { "minor": 100000, "currency": "GBP" }, "2026-03-02", "2026-03-01", "judgment-high-court" ], "expectError": "is before fromDate" }, { "name": "a judgment in euros is an error", "args": [ { "minor": 100000, "currency": "EUR" }, "2026-03-01", "2026-03-31", "judgment-high-court" ], "expectError": "statutory interest is defined for GBP debts" }, { "name": "a zero judgment is an error", "args": [ { "minor": 0, "currency": "GBP" }, "2026-03-01", "2026-03-31", "judgment-high-court" ], "expectError": "amount must be greater than zero" }, { "name": "an unknown basis is an error", "args": [ { "minor": 100000, "currency": "GBP" }, "2026-03-01", "2026-03-31", "contract" ], "expectError": "unknown interest basis" }, { "name": "an impossible date is an error", "args": [ { "minor": 100000, "currency": "GBP" }, "2026-02-30", "2026-03-31", "judgment-high-court" ], "expectError": "2026-02-30" } ]