[
{
"name": "\u00a3600 a week: six weeks at \u00a3540, then 33 at the flat \u00a3194.32",
"args": [
{
"minor": 60000,
"currency": "GBP"
},
"2026-09-15",
"2026-08-30"
],
"expect": {
"eligible": true,
"qualifyingWeekStart": "2026-05-31",
"lowerEarningsLimit": {
"minor": 12900,
"currency": "GBP"
},
"weeks": [
{
"week": 1,
"start": "2026-08-30",
"end": "2026-09-05",
"amount": {
"minor": 54000,
"currency": "GBP"
}
},
{
"week": 2,
"start": "2026-09-06",
"end": "2026-09-12",
"amount": {
"minor": 54000,
"currency": "GBP"
}
},
{
"week": 3,
"start": "2026-09-13",
"end": "2026-09-19",
"amount": {
"minor": 54000,
"currency": "GBP"
}
},
{
"week": 4,
"start": "2026-09-20",
"end": "2026-09-26",
"amount": {
"minor": 54000,
"currency": "GBP"
}
},
{
"week": 5,
"start": "2026-09-27",
"end": "2026-10-03",
"amount": {
"minor": 54000,
"currency": "GBP"
}
},
{
"week": 6,
"start": "2026-10-04",
"end": "2026-10-10",
"amount": {
"minor": 54000,
"currency": "GBP"
}
},
{
"week": 7,
"start": "2026-10-11",
"end": "2026-10-17",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 8,
"start": "2026-10-18",
"end": "2026-10-24",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 9,
"start": "2026-10-25",
"end": "2026-10-31",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 10,
"start": "2026-11-01",
"end": "2026-11-07",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 11,
"start": "2026-11-08",
"end": "2026-11-14",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 12,
"start": "2026-11-15",
"end": "2026-11-21",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 13,
"start": "2026-11-22",
"end": "2026-11-28",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 14,
"start": "2026-11-29",
"end": "2026-12-05",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 15,
"start": "2026-12-06",
"end": "2026-12-12",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 16,
"start": "2026-12-13",
"end": "2026-12-19",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 17,
"start": "2026-12-20",
"end": "2026-12-26",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 18,
"start": "2026-12-27",
"end": "2027-01-02",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 19,
"start": "2027-01-03",
"end": "2027-01-09",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 20,
"start": "2027-01-10",
"end": "2027-01-16",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 21,
"start": "2027-01-17",
"end": "2027-01-23",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 22,
"start": "2027-01-24",
"end": "2027-01-30",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 23,
"start": "2027-01-31",
"end": "2027-02-06",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 24,
"start": "2027-02-07",
"end": "2027-02-13",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 25,
"start": "2027-02-14",
"end": "2027-02-20",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 26,
"start": "2027-02-21",
"end": "2027-02-27",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 27,
"start": "2027-02-28",
"end": "2027-03-06",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 28,
"start": "2027-03-07",
"end": "2027-03-13",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 29,
"start": "2027-03-14",
"end": "2027-03-20",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 30,
"start": "2027-03-21",
"end": "2027-03-27",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 31,
"start": "2027-03-28",
"end": "2027-04-03",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 32,
"start": "2027-04-04",
"end": "2027-04-10",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 33,
"start": "2027-04-11",
"end": "2027-04-17",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 34,
"start": "2027-04-18",
"end": "2027-04-24",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 35,
"start": "2027-04-25",
"end": "2027-05-01",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 36,
"start": "2027-05-02",
"end": "2027-05-08",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 37,
"start": "2027-05-09",
"end": "2027-05-15",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 38,
"start": "2027-05-16",
"end": "2027-05-22",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 39,
"start": "2027-05-23",
"end": "2027-05-29",
"amount": {
"minor": 19432,
"currency": "GBP"
}
}
],
"total": {
"minor": 965256,
"currency": "GBP"
}
}
},
{
"name": "leave across April 2026: the flat rate rises for weeks starting on or after 5 April",
"args": [
{
"minor": 30000,
"currency": "GBP"
},
"2026-01-20",
"2026-01-05"
],
"expect": {
"eligible": true,
"qualifyingWeekStart": "2025-10-05",
"lowerEarningsLimit": {
"minor": 12500,
"currency": "GBP"
},
"weeks": [
{
"week": 1,
"start": "2026-01-05",
"end": "2026-01-11",
"amount": {
"minor": 27000,
"currency": "GBP"
}
},
{
"week": 2,
"start": "2026-01-12",
"end": "2026-01-18",
"amount": {
"minor": 27000,
"currency": "GBP"
}
},
{
"week": 3,
"start": "2026-01-19",
"end": "2026-01-25",
"amount": {
"minor": 27000,
"currency": "GBP"
}
},
{
"week": 4,
"start": "2026-01-26",
"end": "2026-02-01",
"amount": {
"minor": 27000,
"currency": "GBP"
}
},
{
"week": 5,
"start": "2026-02-02",
"end": "2026-02-08",
"amount": {
"minor": 27000,
"currency": "GBP"
}
},
{
"week": 6,
"start": "2026-02-09",
"end": "2026-02-15",
"amount": {
"minor": 27000,
"currency": "GBP"
}
},
{
"week": 7,
"start": "2026-02-16",
"end": "2026-02-22",
"amount": {
"minor": 18718,
"currency": "GBP"
}
},
{
"week": 8,
"start": "2026-02-23",
"end": "2026-03-01",
"amount": {
"minor": 18718,
"currency": "GBP"
}
},
{
"week": 9,
"start": "2026-03-02",
"end": "2026-03-08",
"amount": {
"minor": 18718,
"currency": "GBP"
}
},
{
"week": 10,
"start": "2026-03-09",
"end": "2026-03-15",
"amount": {
"minor": 18718,
"currency": "GBP"
}
},
{
"week": 11,
"start": "2026-03-16",
"end": "2026-03-22",
"amount": {
"minor": 18718,
"currency": "GBP"
}
},
{
"week": 12,
"start": "2026-03-23",
"end": "2026-03-29",
"amount": {
"minor": 18718,
"currency": "GBP"
}
},
{
"week": 13,
"start": "2026-03-30",
"end": "2026-04-05",
"amount": {
"minor": 18718,
"currency": "GBP"
}
},
{
"week": 14,
"start": "2026-04-06",
"end": "2026-04-12",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 15,
"start": "2026-04-13",
"end": "2026-04-19",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 16,
"start": "2026-04-20",
"end": "2026-04-26",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 17,
"start": "2026-04-27",
"end": "2026-05-03",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 18,
"start": "2026-05-04",
"end": "2026-05-10",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 19,
"start": "2026-05-11",
"end": "2026-05-17",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 20,
"start": "2026-05-18",
"end": "2026-05-24",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 21,
"start": "2026-05-25",
"end": "2026-05-31",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 22,
"start": "2026-06-01",
"end": "2026-06-07",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 23,
"start": "2026-06-08",
"end": "2026-06-14",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 24,
"start": "2026-06-15",
"end": "2026-06-21",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 25,
"start": "2026-06-22",
"end": "2026-06-28",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 26,
"start": "2026-06-29",
"end": "2026-07-05",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 27,
"start": "2026-07-06",
"end": "2026-07-12",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 28,
"start": "2026-07-13",
"end": "2026-07-19",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 29,
"start": "2026-07-20",
"end": "2026-07-26",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 30,
"start": "2026-07-27",
"end": "2026-08-02",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 31,
"start": "2026-08-03",
"end": "2026-08-09",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 32,
"start": "2026-08-10",
"end": "2026-08-16",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 33,
"start": "2026-08-17",
"end": "2026-08-23",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 34,
"start": "2026-08-24",
"end": "2026-08-30",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 35,
"start": "2026-08-31",
"end": "2026-09-06",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 36,
"start": "2026-09-07",
"end": "2026-09-13",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 37,
"start": "2026-09-14",
"end": "2026-09-20",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 38,
"start": "2026-09-21",
"end": "2026-09-27",
"amount": {
"minor": 19432,
"currency": "GBP"
}
},
{
"week": 39,
"start": "2026-09-28",
"end": "2026-10-04",
"amount": {
"minor": 19432,
"currency": "GBP"
}
}
],
"total": {
"minor": 798258,
"currency": "GBP"
}
}
},
{
"name": "earnings under the flat rate: 90% for all 39 weeks",
"args": [
{
"minor": 15000,
"currency": "GBP"
},
"2025-11-12",
"2025-10-29"
],
"expect": {
"eligible": true,
"qualifyingWeekStart": "2025-07-27",
"lowerEarningsLimit": {
"minor": 12500,
"currency": "GBP"
},
"weeks": [
{
"week": 1,
"start": "2025-10-29",
"end": "2025-11-04",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 2,
"start": "2025-11-05",
"end": "2025-11-11",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 3,
"start": "2025-11-12",
"end": "2025-11-18",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 4,
"start": "2025-11-19",
"end": "2025-11-25",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 5,
"start": "2025-11-26",
"end": "2025-12-02",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 6,
"start": "2025-12-03",
"end": "2025-12-09",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 7,
"start": "2025-12-10",
"end": "2025-12-16",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 8,
"start": "2025-12-17",
"end": "2025-12-23",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 9,
"start": "2025-12-24",
"end": "2025-12-30",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 10,
"start": "2025-12-31",
"end": "2026-01-06",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 11,
"start": "2026-01-07",
"end": "2026-01-13",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 12,
"start": "2026-01-14",
"end": "2026-01-20",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 13,
"start": "2026-01-21",
"end": "2026-01-27",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 14,
"start": "2026-01-28",
"end": "2026-02-03",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 15,
"start": "2026-02-04",
"end": "2026-02-10",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 16,
"start": "2026-02-11",
"end": "2026-02-17",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 17,
"start": "2026-02-18",
"end": "2026-02-24",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 18,
"start": "2026-02-25",
"end": "2026-03-03",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 19,
"start": "2026-03-04",
"end": "2026-03-10",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 20,
"start": "2026-03-11",
"end": "2026-03-17",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 21,
"start": "2026-03-18",
"end": "2026-03-24",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 22,
"start": "2026-03-25",
"end": "2026-03-31",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 23,
"start": "2026-04-01",
"end": "2026-04-07",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 24,
"start": "2026-04-08",
"end": "2026-04-14",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 25,
"start": "2026-04-15",
"end": "2026-04-21",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 26,
"start": "2026-04-22",
"end": "2026-04-28",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 27,
"start": "2026-04-29",
"end": "2026-05-05",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 28,
"start": "2026-05-06",
"end": "2026-05-12",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 29,
"start": "2026-05-13",
"end": "2026-05-19",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 30,
"start": "2026-05-20",
"end": "2026-05-26",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 31,
"start": "2026-05-27",
"end": "2026-06-02",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 32,
"start": "2026-06-03",
"end": "2026-06-09",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 33,
"start": "2026-06-10",
"end": "2026-06-16",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 34,
"start": "2026-06-17",
"end": "2026-06-23",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 35,
"start": "2026-06-24",
"end": "2026-06-30",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 36,
"start": "2026-07-01",
"end": "2026-07-07",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 37,
"start": "2026-07-08",
"end": "2026-07-14",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 38,
"start": "2026-07-15",
"end": "2026-07-21",
"amount": {
"minor": 13500,
"currency": "GBP"
}
},
{
"week": 39,
"start": "2026-07-22",
"end": "2026-07-28",
"amount": {
"minor": 13500,
"currency": "GBP"
}
}
],
"total": {
"minor": 526500,
"currency": "GBP"
}
}
},
{
"name": "90% of \u00a3123.45 is \u00a3111.105, rounded up to \u00a3111.11",
"args": [
{
"minor": 12345,
"currency": "GBP"
},
"2023-12-01",
"2023-11-20"
],
"expect": {
"eligible": true,
"qualifyingWeekStart": "2023-08-13",
"lowerEarningsLimit": {
"minor": 12300,
"currency": "GBP"
},
"weeks": [
{
"week": 1,
"start": "2023-11-20",
"end": "2023-11-26",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 2,
"start": "2023-11-27",
"end": "2023-12-03",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 3,
"start": "2023-12-04",
"end": "2023-12-10",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 4,
"start": "2023-12-11",
"end": "2023-12-17",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 5,
"start": "2023-12-18",
"end": "2023-12-24",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 6,
"start": "2023-12-25",
"end": "2023-12-31",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 7,
"start": "2024-01-01",
"end": "2024-01-07",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 8,
"start": "2024-01-08",
"end": "2024-01-14",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 9,
"start": "2024-01-15",
"end": "2024-01-21",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 10,
"start": "2024-01-22",
"end": "2024-01-28",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 11,
"start": "2024-01-29",
"end": "2024-02-04",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 12,
"start": "2024-02-05",
"end": "2024-02-11",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 13,
"start": "2024-02-12",
"end": "2024-02-18",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 14,
"start": "2024-02-19",
"end": "2024-02-25",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 15,
"start": "2024-02-26",
"end": "2024-03-03",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 16,
"start": "2024-03-04",
"end": "2024-03-10",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 17,
"start": "2024-03-11",
"end": "2024-03-17",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 18,
"start": "2024-03-18",
"end": "2024-03-24",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 19,
"start": "2024-03-25",
"end": "2024-03-31",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 20,
"start": "2024-04-01",
"end": "2024-04-07",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 21,
"start": "2024-04-08",
"end": "2024-04-14",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 22,
"start": "2024-04-15",
"end": "2024-04-21",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 23,
"start": "2024-04-22",
"end": "2024-04-28",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 24,
"start": "2024-04-29",
"end": "2024-05-05",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 25,
"start": "2024-05-06",
"end": "2024-05-12",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 26,
"start": "2024-05-13",
"end": "2024-05-19",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 27,
"start": "2024-05-20",
"end": "2024-05-26",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 28,
"start": "2024-05-27",
"end": "2024-06-02",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 29,
"start": "2024-06-03",
"end": "2024-06-09",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 30,
"start": "2024-06-10",
"end": "2024-06-16",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 31,
"start": "2024-06-17",
"end": "2024-06-23",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 32,
"start": "2024-06-24",
"end": "2024-06-30",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 33,
"start": "2024-07-01",
"end": "2024-07-07",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 34,
"start": "2024-07-08",
"end": "2024-07-14",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 35,
"start": "2024-07-15",
"end": "2024-07-21",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 36,
"start": "2024-07-22",
"end": "2024-07-28",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 37,
"start": "2024-07-29",
"end": "2024-08-04",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 38,
"start": "2024-08-05",
"end": "2024-08-11",
"amount": {
"minor": 11111,
"currency": "GBP"
}
},
{
"week": 39,
"start": "2024-08-12",
"end": "2024-08-18",
"amount": {
"minor": 11111,
"currency": "GBP"
}
}
],
"total": {
"minor": 433329,
"currency": "GBP"
}
}
},
{
"name": "earnings a penny under the LEL: no SMP",
"args": [
{
"minor": 12499,
"currency": "GBP"
},
"2025-11-12",
"2025-10-29"
],
"expect": {
"eligible": false,
"qualifyingWeekStart": "2025-07-27",
"lowerEarningsLimit": {
"minor": 12500,
"currency": "GBP"
},
"weeks": [],
"total": {
"minor": 0,
"currency": "GBP"
}
}
},
{
"name": "earnings exactly at the LEL qualify",
"args": [
{
"minor": 12500,
"currency": "GBP"
},
"2025-11-12",
"2025-10-29"
],
"expect": {
"eligible": true,
"qualifyingWeekStart": "2025-07-27",
"lowerEarningsLimit": {
"minor": 12500,
"currency": "GBP"
},
"weeks": [
{
"week": 1,
"start": "2025-10-29",
"end": "2025-11-04",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 2,
"start": "2025-11-05",
"end": "2025-11-11",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 3,
"start": "2025-11-12",
"end": "2025-11-18",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 4,
"start": "2025-11-19",
"end": "2025-11-25",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 5,
"start": "2025-11-26",
"end": "2025-12-02",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 6,
"start": "2025-12-03",
"end": "2025-12-09",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 7,
"start": "2025-12-10",
"end": "2025-12-16",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 8,
"start": "2025-12-17",
"end": "2025-12-23",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 9,
"start": "2025-12-24",
"end": "2025-12-30",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 10,
"start": "2025-12-31",
"end": "2026-01-06",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 11,
"start": "2026-01-07",
"end": "2026-01-13",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 12,
"start": "2026-01-14",
"end": "2026-01-20",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 13,
"start": "2026-01-21",
"end": "2026-01-27",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 14,
"start": "2026-01-28",
"end": "2026-02-03",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 15,
"start": "2026-02-04",
"end": "2026-02-10",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 16,
"start": "2026-02-11",
"end": "2026-02-17",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 17,
"start": "2026-02-18",
"end": "2026-02-24",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 18,
"start": "2026-02-25",
"end": "2026-03-03",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 19,
"start": "2026-03-04",
"end": "2026-03-10",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 20,
"start": "2026-03-11",
"end": "2026-03-17",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 21,
"start": "2026-03-18",
"end": "2026-03-24",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 22,
"start": "2026-03-25",
"end": "2026-03-31",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 23,
"start": "2026-04-01",
"end": "2026-04-07",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 24,
"start": "2026-04-08",
"end": "2026-04-14",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 25,
"start": "2026-04-15",
"end": "2026-04-21",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 26,
"start": "2026-04-22",
"end": "2026-04-28",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 27,
"start": "2026-04-29",
"end": "2026-05-05",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 28,
"start": "2026-05-06",
"end": "2026-05-12",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 29,
"start": "2026-05-13",
"end": "2026-05-19",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 30,
"start": "2026-05-20",
"end": "2026-05-26",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 31,
"start": "2026-05-27",
"end": "2026-06-02",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 32,
"start": "2026-06-03",
"end": "2026-06-09",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 33,
"start": "2026-06-10",
"end": "2026-06-16",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 34,
"start": "2026-06-17",
"end": "2026-06-23",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 35,
"start": "2026-06-24",
"end": "2026-06-30",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 36,
"start": "2026-07-01",
"end": "2026-07-07",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 37,
"start": "2026-07-08",
"end": "2026-07-14",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 38,
"start": "2026-07-15",
"end": "2026-07-21",
"amount": {
"minor": 11250,
"currency": "GBP"
}
},
{
"week": 39,
"start": "2026-07-22",
"end": "2026-07-28",
"amount": {
"minor": 11250,
"currency": "GBP"
}
}
],
"total": {
"minor": 438750,
"currency": "GBP"
}
}
},
{
"name": "a qualifying week ending after 6 April uses the new, higher LEL",
"args": [
{
"minor": 12600,
"currency": "GBP"
},
"2026-07-19",
"2026-07-05"
],
"expect": {
"eligible": false,
"qualifyingWeekStart": "2026-04-05",
"lowerEarningsLimit": {
"minor": 12900,
"currency": "GBP"
},
"weeks": [],
"total": {
"minor": 0,
"currency": "GBP"
}
}
},
{
"name": "a due date on a Saturday belongs to the week that began the Sunday before",
"args": [
{
"minor": 12600,
"currency": "GBP"
},
"2026-07-18",
"2026-07-05"
],
"expect": {
"eligible": true,
"qualifyingWeekStart": "2026-03-29",
"lowerEarningsLimit": {
"minor": 12500,
"currency": "GBP"
},
"weeks": [
{
"week": 1,
"start": "2026-07-05",
"end": "2026-07-11",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 2,
"start": "2026-07-12",
"end": "2026-07-18",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 3,
"start": "2026-07-19",
"end": "2026-07-25",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 4,
"start": "2026-07-26",
"end": "2026-08-01",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 5,
"start": "2026-08-02",
"end": "2026-08-08",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 6,
"start": "2026-08-09",
"end": "2026-08-15",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 7,
"start": "2026-08-16",
"end": "2026-08-22",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 8,
"start": "2026-08-23",
"end": "2026-08-29",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 9,
"start": "2026-08-30",
"end": "2026-09-05",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 10,
"start": "2026-09-06",
"end": "2026-09-12",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 11,
"start": "2026-09-13",
"end": "2026-09-19",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 12,
"start": "2026-09-20",
"end": "2026-09-26",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 13,
"start": "2026-09-27",
"end": "2026-10-03",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 14,
"start": "2026-10-04",
"end": "2026-10-10",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 15,
"start": "2026-10-11",
"end": "2026-10-17",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 16,
"start": "2026-10-18",
"end": "2026-10-24",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 17,
"start": "2026-10-25",
"end": "2026-10-31",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 18,
"start": "2026-11-01",
"end": "2026-11-07",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 19,
"start": "2026-11-08",
"end": "2026-11-14",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 20,
"start": "2026-11-15",
"end": "2026-11-21",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 21,
"start": "2026-11-22",
"end": "2026-11-28",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 22,
"start": "2026-11-29",
"end": "2026-12-05",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 23,
"start": "2026-12-06",
"end": "2026-12-12",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 24,
"start": "2026-12-13",
"end": "2026-12-19",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 25,
"start": "2026-12-20",
"end": "2026-12-26",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 26,
"start": "2026-12-27",
"end": "2027-01-02",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 27,
"start": "2027-01-03",
"end": "2027-01-09",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 28,
"start": "2027-01-10",
"end": "2027-01-16",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 29,
"start": "2027-01-17",
"end": "2027-01-23",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 30,
"start": "2027-01-24",
"end": "2027-01-30",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 31,
"start": "2027-01-31",
"end": "2027-02-06",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 32,
"start": "2027-02-07",
"end": "2027-02-13",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 33,
"start": "2027-02-14",
"end": "2027-02-20",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 34,
"start": "2027-02-21",
"end": "2027-02-27",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 35,
"start": "2027-02-28",
"end": "2027-03-06",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 36,
"start": "2027-03-07",
"end": "2027-03-13",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 37,
"start": "2027-03-14",
"end": "2027-03-20",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 38,
"start": "2027-03-21",
"end": "2027-03-27",
"amount": {
"minor": 11340,
"currency": "GBP"
}
},
{
"week": 39,
"start": "2027-03-28",
"end": "2027-04-03",
"amount": {
"minor": 11340,
"currency": "GBP"
}
}
],
"total": {
"minor": 442260,
"currency": "GBP"
}
}
},
{
"name": "negative earnings are an error",
"args": [
{
"minor": -1,
"currency": "GBP"
},
"2026-09-15",
"2026-08-30"
],
"expectError": "must not be negative"
},
{
"name": "a malformed due date is an error",
"args": [
{
"minor": 60000,
"currency": "GBP"
},
"15/09/2026",
"2026-08-30"
],
"expectError": "is not an ISO date"
},
{
"name": "a qualifying week before the carried rules is an error",
"args": [
{
"minor": 60000,
"currency": "GBP"
},
"2022-09-15",
"2022-08-30"
],
"expectError": "no lower earnings limit for 2022-06-04"
},
{
"name": "pay weeks before the carried SMP rates are an error",
"args": [
{
"minor": 60000,
"currency": "GBP"
},
"2023-07-31",
"2023-01-02"
],
"expectError": "no SMP rate for 2023-02-13"
}
]