[
{
"name": "England band A: six ninths of £2,000 is £1,333.33",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"A",
"england",
"2026-04-01"
],
"expect": {
"band": "A",
"ratioNumerator": 6,
"ratioDenominator": 9,
"charge": {
"minor": 133333,
"currency": "GBP"
}
}
},
{
"name": "England band B: £1,555.56 (1555.555... rounds up)",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"B",
"england",
"2026-04-01"
],
"expect": {
"band": "B",
"ratioNumerator": 7,
"ratioDenominator": 9,
"charge": {
"minor": 155556,
"currency": "GBP"
}
}
},
{
"name": "England band D is the Band D charge itself",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"D",
"england",
"2026-04-01"
],
"expect": {
"band": "D",
"ratioNumerator": 9,
"ratioDenominator": 9,
"charge": {
"minor": 200000,
"currency": "GBP"
}
}
},
{
"name": "England band E: eleven ninths, £2,444.44",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"E",
"england",
"2026-04-01"
],
"expect": {
"band": "E",
"ratioNumerator": 11,
"ratioDenominator": 9,
"charge": {
"minor": 244444,
"currency": "GBP"
}
}
},
{
"name": "England band H: twice Band D",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"H",
"england",
"2026-04-01"
],
"expect": {
"band": "H",
"ratioNumerator": 18,
"ratioDenominator": 9,
"charge": {
"minor": 400000,
"currency": "GBP"
}
}
},
{
"name": "Wales band I: 21 ninths, £4,666.67",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"I",
"wales",
"2026-04-01"
],
"expect": {
"band": "I",
"ratioNumerator": 21,
"ratioDenominator": 9,
"charge": {
"minor": 466667,
"currency": "GBP"
}
}
},
{
"name": "Wales had no band I before the 2005 revaluation",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"I",
"wales",
"2005-03-31"
],
"expectError": "no council tax band I for wales on 2005-03-31"
},
{
"name": "Wales band I on 1 April 2005",
"args": [
{
"minor": 90000,
"currency": "GBP"
},
"I",
"wales",
"2005-04-01"
],
"expect": {
"band": "I",
"ratioNumerator": 21,
"ratioDenominator": 9,
"charge": {
"minor": 210000,
"currency": "GBP"
}
}
},
{
"name": "England has no band I",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"I",
"england",
"2026-04-01"
],
"expectError": "no council tax band I for england"
},
{
"name": "Scotland band E from April 2017: 473/360, £2,627.78",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"E",
"scotland",
"2026-04-01"
],
"expect": {
"band": "E",
"ratioNumerator": 473,
"ratioDenominator": 360,
"charge": {
"minor": 262778,
"currency": "GBP"
}
}
},
{
"name": "Scotland band H from April 2017: 882/360 of £2,000 is £4,900",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"H",
"scotland",
"2017-04-01"
],
"expect": {
"band": "H",
"ratioNumerator": 882,
"ratioDenominator": 360,
"charge": {
"minor": 490000,
"currency": "GBP"
}
}
},
{
"name": "Scotland band H the day before: 720/360, twice Band D",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"H",
"scotland",
"2017-03-31"
],
"expect": {
"band": "H",
"ratioNumerator": 720,
"ratioDenominator": 360,
"charge": {
"minor": 400000,
"currency": "GBP"
}
}
},
{
"name": "Scotland band A unchanged by 2017: 240/360",
"args": [
{
"minor": 150000,
"currency": "GBP"
},
"A",
"scotland",
"2026-04-01"
],
"expect": {
"band": "A",
"ratioNumerator": 240,
"ratioDenominator": 360,
"charge": {
"minor": 100000,
"currency": "GBP"
}
}
},
{
"name": "an exact half penny rounds up: Scottish band E of £1.80 is 236.5p, so £2.37",
"args": [
{
"minor": 180,
"currency": "GBP"
},
"E",
"scotland",
"2026-04-01"
],
"expect": {
"band": "E",
"ratioNumerator": 473,
"ratioDenominator": 360,
"charge": {
"minor": 237,
"currency": "GBP"
}
}
},
{
"name": "band A of £1,789.47 is exactly £1,192.98, where 0.667 × Band D would give £1,193.58",
"args": [
{
"minor": 178947,
"currency": "GBP"
},
"A",
"england",
"2026-04-01"
],
"expect": {
"band": "A",
"ratioNumerator": 6,
"ratioDenominator": 9,
"charge": {
"minor": 119298,
"currency": "GBP"
}
}
},
{
"name": "zero Band D",
"args": [
{
"minor": 0,
"currency": "GBP"
},
"C",
"england",
"2026-04-01"
],
"expect": {
"band": "C",
"ratioNumerator": 8,
"ratioDenominator": 9,
"charge": {
"minor": 0,
"currency": "GBP"
}
}
},
{
"name": "a lower-case band is not a band",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"a",
"england",
"2026-04-01"
],
"expectError": "no council tax band a for england"
},
{
"name": "Northern Ireland is not a council tax nation",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"A",
"northern-ireland",
"2026-04-01"
],
"expectError": "unknown nation"
},
{
"name": "before council tax existed",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"A",
"england",
"1993-03-31"
],
"expectError": "no council tax band A for england on 1993-03-31"
},
{
"name": "a Band D in euros is refused",
"args": [
{
"minor": 200000,
"currency": "EUR"
},
"A",
"england",
"2026-04-01"
],
"expectError": "bandDCharge must be in GBP"
},
{
"name": "a negative Band D is refused",
"args": [
{
"minor": -1,
"currency": "GBP"
},
"A",
"england",
"2026-04-01"
],
"expectError": "bandDCharge must be between 0 and"
},
{
"name": "a malformed date is refused",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"A",
"england",
"2026-4-1"
],
"expectError": "onDate must be an ISO date"
},
{
"name": "a trailing newline is not part of an ISO date",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"A",
"england",
"2026-04-01\n"
],
"expectError": "onDate must be an ISO date"
},
{
"name": "Arabic-Indic digits are not an ISO date",
"args": [
{
"minor": 200000,
"currency": "GBP"
},
"A",
"england",
"٢٠٢٦-٠٤-٠١"
],
"expectError": "onDate must be an ISO date"
}
]