[
{
"name": "\u00a35,000 over 36 months at 9.9% APR: settlement 28 days after the notice",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-03-01",
null,
"none"
],
"expect": {
"settlementDate": "2026-03-29",
"settlementAmount": {
"minor": 321832,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 354200,
"currency": "GBP"
},
"rebate": {
"minor": 32368,
"currency": "GBP"
}
}
},
{
"name": "the creditor defers by one month under regulation 6",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-03-01",
null,
"one-month"
],
"expect": {
"settlementDate": "2026-04-29",
"settlementAmount": {
"minor": 308265,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 338100,
"currency": "GBP"
},
"rebate": {
"minor": 29835,
"currency": "GBP"
}
}
},
{
"name": "the creditor elects 30 days instead of a month",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-03-01",
null,
"thirty-days"
],
"expect": {
"settlementDate": "2026-04-28",
"settlementAmount": {
"minor": 308185,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 338100,
"currency": "GBP"
},
"rebate": {
"minor": 29915,
"currency": "GBP"
}
}
},
{
"name": "a later date named in the notice is used",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-03-01",
"2026-05-10",
"none"
],
"expect": {
"settlementDate": "2026-05-10",
"settlementAmount": {
"minor": 309143,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 338100,
"currency": "GBP"
},
"rebate": {
"minor": 28957,
"currency": "GBP"
}
}
},
{
"name": "an earlier date named in the notice cannot shorten the 28 days",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-03-01",
"2026-03-05",
"none"
],
"expect": {
"settlementDate": "2026-03-29",
"settlementAmount": {
"minor": 321832,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 354200,
"currency": "GBP"
},
"rebate": {
"minor": 32368,
"currency": "GBP"
}
}
},
{
"name": "a month's deferral from the 31st lands on the last day of February",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-01-03",
null,
"one-month"
],
"expect": {
"settlementDate": "2026-02-28",
"settlementAmount": {
"minor": 335465,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 370300,
"currency": "GBP"
},
"rebate": {
"minor": 34835,
"currency": "GBP"
}
}
},
{
"name": "interest-free credit: no rebate, the balance is owed",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 360000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 10000,
"currency": "GBP"
}
}
],
0,
"2026-03-01",
null,
"none"
],
"expect": {
"settlementDate": "2026-03-29",
"settlementAmount": {
"minor": 220000,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 220000,
"currency": "GBP"
},
"rebate": {
"minor": 0,
"currency": "GBP"
}
}
},
{
"name": "a high-cost loan: 12 months at 49.9%",
"args": [
[
{
"date": "2026-01-10",
"amount": {
"minor": 100000,
"currency": "GBP"
}
}
],
[
{
"date": "2026-02-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-03-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-04-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-05-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-06-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-07-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-08-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-09-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-10-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-11-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-12-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2027-01-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
}
],
4990,
"2026-05-20",
null,
"none"
],
"expect": {
"settlementDate": "2026-06-17",
"settlementAmount": {
"minor": 62488,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 73500,
"currency": "GBP"
},
"rebate": {
"minor": 11012,
"currency": "GBP"
}
}
},
{
"name": "notice straight after drawdown: nearly all the interest is rebated",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2025-01-16",
null,
"none"
],
"expect": {
"settlementDate": "2025-02-13",
"settlementAmount": {
"minor": 503764,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 579600,
"currency": "GBP"
},
"rebate": {
"minor": 75836,
"currency": "GBP"
}
}
},
{
"name": "settling after the last instalment is due: nothing left to pay",
"args": [
[
{
"date": "2026-01-10",
"amount": {
"minor": 100000,
"currency": "GBP"
}
}
],
[
{
"date": "2026-02-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-03-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-04-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-05-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-06-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-07-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-08-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-09-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-10-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-11-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-12-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2027-01-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
}
],
4990,
"2027-01-01",
null,
"none"
],
"expect": {
"settlementDate": "2027-01-29",
"settlementAmount": {
"minor": 0,
"currency": "GBP"
},
"remainingRepayments": {
"minor": 0,
"currency": "GBP"
},
"rebate": {
"minor": 0,
"currency": "GBP"
}
}
},
{
"name": "a deferral is refused on a one-year agreement",
"args": [
[
{
"date": "2026-01-10",
"amount": {
"minor": 100000,
"currency": "GBP"
}
}
],
[
{
"date": "2026-02-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-03-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-04-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-05-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-06-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-07-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-08-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-09-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-10-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-11-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2026-12-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
},
{
"date": "2027-01-10",
"amount": {
"minor": 10500,
"currency": "GBP"
}
}
],
4990,
"2026-05-20",
null,
"one-month"
],
"expectError": "deferral is only allowed when the credit is repaid over more than a year"
},
{
"name": "an unknown deferral",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-03-01",
null,
"two-months"
],
"expectError": "unknown deferral"
},
{
"name": "no advances",
"args": [
[],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-03-01",
null,
"none"
],
"expectError": "advances must not be empty"
},
{
"name": "no repayments",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[],
990,
"2026-03-01",
null,
"none"
],
"expectError": "repayments must not be empty"
},
{
"name": "a negative APR is refused",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
-1,
"2026-03-01",
null,
"none"
],
"expectError": "aprBasisPoints must be between 0 and 1000000"
},
{
"name": "mixed currencies are refused",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 100,
"currency": "EUR"
}
}
],
990,
"2026-03-01",
null,
"none"
],
"expectError": "currency mismatch"
},
{
"name": "a notice before any drawdown",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2024-11-01",
null,
"none"
],
"expectError": "no credit was advanced before the settlement date"
},
{
"name": "an impossible notice date",
"args": [
[
{
"date": "2025-01-15",
"amount": {
"minor": 500000,
"currency": "GBP"
}
}
],
[
{
"date": "2025-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2025-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2026-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-02-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-03-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-04-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-05-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-06-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-07-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-08-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-09-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-10-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-11-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2027-12-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
},
{
"date": "2028-01-15",
"amount": {
"minor": 16100,
"currency": "GBP"
}
}
],
990,
"2026-02-30",
null,
"none"
],
"expectError": "is not a real calendar date"
}
]