From 7ef035261313e1bc26112e4f76ade77945d49dce Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Tue, 15 Sep 2026 13:05:30 +0100 Subject: [PATCH 1/5] Compute gross council tax from LA Band D amounts and band ratios Add council_tax_band_d_amount (LA Band D amount, from a new LA-keyed parameter following the domestic_rates/rates.yaml precedent) and simulated_council_tax (Band D amount x statutory band ratio). Band ratios are added per country: England and Wales use the section 5 proportions 6:7:8:9:11:13:15:18 relative to Band D = 9, Wales adding band I at 21/9 from April 2005; Scotland uses the raised E-H multipliers (473/360, 585/360, 705/360, 882/360) from April 2017. The existing council_tax input variable is left untouched so the two can be compared. council_tax_band_d_amount also fills a dangling reference from policyengine-uk-data's la_council_tax target source. Co-Authored-By: Claude Opus 5 (1M context) --- changelog.d/council-tax-computed-liability.md | 1 + .../council_tax/band_d/amounts.yaml | 702 ++++++++++++++++++ .../council_tax/band_ratios/england.yaml | 26 + .../council_tax/band_ratios/scotland.yaml | 28 + .../council_tax/band_ratios/wales.yaml | 30 + .../council_tax/simulated_council_tax.yaml | 239 ++++++ .../council_tax/council_tax_band_d_amount.py | 25 + .../council_tax/simulated_council_tax.py | 34 + 8 files changed, 1085 insertions(+) create mode 100644 changelog.d/council-tax-computed-liability.md create mode 100644 policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml create mode 100644 policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/england.yaml create mode 100644 policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml create mode 100644 policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/wales.yaml create mode 100644 policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml create mode 100644 policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py create mode 100644 policyengine_uk/variables/gov/local_authorities/council_tax/simulated_council_tax.py diff --git a/changelog.d/council-tax-computed-liability.md b/changelog.d/council-tax-computed-liability.md new file mode 100644 index 0000000000..2747986d00 --- /dev/null +++ b/changelog.d/council-tax-computed-liability.md @@ -0,0 +1 @@ +Add council_tax_band_d_amount and simulated_council_tax, computing gross council tax from local authority Band D amounts and statutory band ratios. diff --git a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml new file mode 100644 index 0000000000..7d69ffc825 --- /dev/null +++ b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml @@ -0,0 +1,702 @@ +description: Band D council tax amount set by each local authority, before any discounts, exemptions or Council Tax Reduction. +metadata: + economy: false + propagate_metadata_to_children: true + unit: currency-GBP + period: year + label: Local authority Band D council tax amount + reference: + - title: Council tax levels set by local authorities in England 2026 to 2027 + href: https://www.gov.uk/government/collections/council-tax-statistics + - title: Council tax levels April 2026 to March 2027 (Wales) + href: https://www.gov.wales/council-tax-levels-april-2026-march-2027-html + - title: Council Tax datasets (Scotland) + href: https://www.gov.scot/publications/council-tax-datasets/ +ABERDEEN_CITY: + 2025-01-01: 1636.27 +ABERDEENSHIRE: + 2025-01-01: 1532.76 +ADUR: + 2026-01-01: 2548.28 +AMBER_VALLEY: + 2026-01-01: 2407.69 +ANGUS: + 2025-01-01: 1461.52 +ARGYLL_AND_BUTE: + 2025-01-01: 1625.64 +ARUN: + 2026-01-01: 2487.24 +ASHFIELD: + 2026-01-01: 2608.76 +ASHFORD: + 2026-01-01: 2410.16 +BABERGH: + 2026-01-01: 2341.55 +BARKING_AND_DAGENHAM: + 2026-01-01: 2198.51 +BARNET: + 2026-01-01: 2132.60 +BARNSLEY: + 2026-01-01: 2325.96 +BASILDON: + 2026-01-01: 2327.24 +BASINGSTOKE_AND_DEANE: + 2026-01-01: 2255.21 +BASSETLAW: + 2026-01-01: 2644.95 +BATH_AND_NORTH_EAST_SOMERSET: + 2026-01-01: 2383.42 +BEDFORD: + 2026-01-01: 2471.74 +BEXLEY: + 2026-01-01: 2366.36 +BIRMINGHAM: + 2026-01-01: 2362.90 +BLABY: + 2026-01-01: 2490.22 +BLACKBURN_WITH_DARWEN: + 2026-01-01: 2455.27 +BLACKPOOL: + 2026-01-01: 2513.22 +BLAENAU_GWENT: + 2026-01-01: 2531.26 +BOLSOVER: + 2026-01-01: 2559.41 +BOLTON: + 2026-01-01: 2399.74 +BOSTON: + 2026-01-01: 2308.73 +BOURNEMOUTH_CHRISTCHURCH_AND_POOLE: + 2026-01-01: 2435.58 +BRACKNELL_FOREST: + 2026-01-01: 2264.80 +BRADFORD: + 2026-01-01: 2360.73 +BRAINTREE: + 2026-01-01: 2280.34 +BRECKLAND: + 2026-01-01: 2443.67 +BRENT: + 2026-01-01: 2235.27 +BRENTWOOD: + 2026-01-01: 2258.14 +BRIDGEND: + 2026-01-01: 2477.99 +BRIGHTON_AND_HOVE: + 2026-01-01: 2580.54 +BRISTOL_CITY_OF: + 2026-01-01: 2713.68 +BROADLAND: + 2026-01-01: 2437.78 +BROMLEY: + 2026-01-01: 2140.04 +BROMSGROVE: + 2026-01-01: 2478.65 +BROXBOURNE: + 2026-01-01: 2306.43 +BROXTOWE: + 2026-01-01: 2618.21 +BUCKINGHAMSHIRE: + 2026-01-01: 2526.58 +BURNLEY: + 2026-01-01: 2549.42 +BURY: + 2026-01-01: 2555.15 +CAERPHILLY: + 2026-01-01: 2082.88 +CALDERDALE: + 2026-01-01: 2420.15 +CAMBRIDGE: + 2026-01-01: 2467.02 +CAMDEN: + 2026-01-01: 2207.55 +CANNOCK_CHASE: + 2026-01-01: 2375.83 +CANTERBURY: + 2026-01-01: 2419.33 +CARDIFF: + 2026-01-01: 2013.18 +CARMARTHENSHIRE: + 2026-01-01: 2351.20 +CASTLE_POINT: + 2026-01-01: 2318.63 +CENTRAL_BEDFORDSHIRE: + 2026-01-01: 2516.16 +CEREDIGION: + 2026-01-01: 2419.45 +CHARNWOOD: + 2026-01-01: 2405.64 +CHELMSFORD: + 2026-01-01: 2300.18 +CHELTENHAM: + 2026-01-01: 2369.52 +CHERWELL: + 2026-01-01: 2582.96 +CHESHIRE_EAST: + 2026-01-01: 2454.87 +CHESHIRE_WEST_AND_CHESTER: + 2026-01-01: 2517.33 +CHESTERFIELD: + 2026-01-01: 2339.49 +CHICHESTER: + 2026-01-01: 2469.68 +CHORLEY: + 2026-01-01: 2430.23 +CITY_OF_EDINBURGH: + 2025-01-01: 1563.51 +CITY_OF_LONDON: + 2026-01-01: 1329.56 +CLACKMANNANSHIRE: + 2025-01-01: 1594.38 +COLCHESTER: + 2026-01-01: 2282.85 +CONWY: + 2026-01-01: 2472.82 +CORNWALL: + 2026-01-01: 2590.93 +COTSWOLD: + 2026-01-01: 2391.65 +COUNTY_DURHAM: + 2026-01-01: 2622.15 +COVENTRY: + 2026-01-01: 2516.72 +CRAWLEY: + 2026-01-01: 2418.46 +CROYDON: + 2026-01-01: 2599.91 +DACORUM: + 2026-01-01: 2408.51 +DARLINGTON: + 2026-01-01: 2493.83 +DARTFORD: + 2026-01-01: 2375.15 +DENBIGHSHIRE: + 2026-01-01: 2339.03 +DERBY: + 2026-01-01: 2306.00 +DERBYSHIRE_DALES: + 2026-01-01: 2444.70 +DONCASTER: + 2026-01-01: 2167.75 +DORSET: + 2026-01-01: 2765.02 +DOVER: + 2026-01-01: 2461.74 +DUDLEY: + 2026-01-01: 2144.84 +DUMFRIES_AND_GALLOWAY: + 2025-01-01: 1454.98 +DUNDEE_CITY: + 2025-01-01: 1605.34 +EALING: + 2026-01-01: 2138.53 +EAST_AYRSHIRE: + 2025-01-01: 1606.44 +EAST_CAMBRIDGESHIRE: + 2026-01-01: 2485.18 +EAST_DEVON: + 2026-01-01: 2595.46 +EAST_DUNBARTONSHIRE: + 2025-01-01: 1599.70 +EAST_HAMPSHIRE: + 2026-01-01: 2343.92 +EAST_HERTFORDSHIRE: + 2026-01-01: 2454.78 +EAST_LINDSEY: + 2026-01-01: 2275.88 +EAST_LOTHIAN: + 2025-01-01: 1579.18 +EAST_RENFREWSHIRE: + 2025-01-01: 1528.44 +EAST_RIDING_OF_YORKSHIRE: + 2026-01-01: 2466.08 +EAST_STAFFORDSHIRE: + 2026-01-01: 2351.34 +EAST_SUFFOLK: + 2026-01-01: 2334.80 +EASTBOURNE: + 2026-01-01: 2654.28 +EASTLEIGH: + 2026-01-01: 2342.21 +ELMBRIDGE: + 2026-01-01: 2557.75 +ENFIELD: + 2026-01-01: 2267.67 +EPPING_FOREST: + 2026-01-01: 2277.21 +EPSOM_AND_EWELL: + 2026-01-01: 2530.84 +EREWASH: + 2026-01-01: 2360.64 +EXETER: + 2026-01-01: 2495.36 +FALKIRK: + 2025-01-01: 1576.77 +FAREHAM: + 2026-01-01: 2270.55 +FENLAND: + 2026-01-01: 2537.74 +FIFE: + 2025-01-01: 1498.76 +FLINTSHIRE: + 2026-01-01: 2376.17 +FOLKESTONE_AND_HYTHE: + 2026-01-01: 2538.75 +FOREST_OF_DEAN: + 2026-01-01: 2443.42 +FYLDE: + 2026-01-01: 2483.94 +GATESHEAD: + 2026-01-01: 2715.81 +GEDLING: + 2026-01-01: 2609.55 +GLASGOW_CITY: + 2025-01-01: 1611.00 +GLOUCESTER: + 2026-01-01: 2355.84 +GOSPORT: + 2026-01-01: 2344.29 +GRAVESHAM: + 2026-01-01: 2408.24 +GREAT_YARMOUTH: + 2026-01-01: 2414.41 +GREENWICH: + 2026-01-01: 2107.86 +GUILDFORD: + 2026-01-01: 2547.30 +GWYNEDD: + 2026-01-01: 2468.77 +HACKNEY: + 2026-01-01: 2060.30 +HALTON: + 2026-01-01: 2366.61 +HAMMERSMITH_AND_FULHAM: + 2026-01-01: 1519.51 +HARBOROUGH: + 2026-01-01: 2389.87 +HARINGEY: + 2026-01-01: 2313.78 +HARLOW: + 2026-01-01: 2298.69 +HARROW: + 2026-01-01: 2511.07 +HART: + 2026-01-01: 2400.02 +HARTLEPOOL: + 2026-01-01: 2560.20 +HASTINGS: + 2026-01-01: 2676.58 +HAVANT: + 2026-01-01: 2320.28 +HAVERING: + 2026-01-01: 2424.66 +HEREFORDSHIRE_COUNTY_OF: + 2026-01-01: 2574.37 +HERTSMERE: + 2026-01-01: 2405.83 +HIGH_PEAK: + 2026-01-01: 2384.66 +HIGHLAND: + 2025-01-01: 1527.09 +HILLINGDON: + 2026-01-01: 2045.46 +HINCKLEY_AND_BOSWORTH: + 2026-01-01: 2382.62 +HORSHAM: + 2026-01-01: 2441.01 +HOUNSLOW: + 2026-01-01: 2185.56 +HUNTINGDONSHIRE: + 2026-01-01: 2556.40 +HYNDBURN: + 2026-01-01: 2465.98 +INVERCLYDE: + 2025-01-01: 1551.30 +IPSWICH: + 2026-01-01: 2468.25 +ISLE_OF_ANGLESEY: + 2026-01-01: 2260.73 +ISLE_OF_WIGHT: + 2026-01-01: 2625.79 +ISLES_OF_SCILLY: + 2026-01-01: 2047.96 +ISLINGTON: + 2026-01-01: 2108.15 +KENSINGTON_AND_CHELSEA: + 2026-01-01: 1666.65 +KINGS_LYNN_AND_WEST_NORFOLK: + 2026-01-01: 2430.13 +KINGSTON_UPON_HULL_CITY_OF: + 2026-01-01: 2295.04 +KINGSTON_UPON_THAMES: + 2026-01-01: 2609.20 +KIRKLEES: + 2026-01-01: 2441.07 +KNOWSLEY: + 2026-01-01: 2488.25 +LAMBETH: + 2026-01-01: 2047.11 +LANCASTER: + 2026-01-01: 2503.19 +LEEDS: + 2026-01-01: 2283.73 +LEICESTER: + 2026-01-01: 2528.75 +LEWES: + 2026-01-01: 2756.17 +LEWISHAM: + 2026-01-01: 2237.33 +LICHFIELD: + 2026-01-01: 2351.90 +LINCOLN: + 2026-01-01: 2323.08 +LIVERPOOL: + 2026-01-01: 2673.59 +LUTON: + 2026-01-01: 2439.93 +MAIDSTONE: + 2026-01-01: 2502.59 +MALDON: + 2026-01-01: 2328.37 +MALVERN_HILLS: + 2026-01-01: 2450.92 +MANCHESTER: + 2026-01-01: 2312.04 +MANSFIELD: + 2026-01-01: 2600.38 +MEDWAY: + 2026-01-01: 2328.55 +MELTON: + 2026-01-01: 2429.67 +MERTHYR_TYDFIL: + 2026-01-01: 2593.60 +MERTON: + 2026-01-01: 2146.76 +MID_DEVON: + 2026-01-01: 2656.41 +MID_SUFFOLK: + 2026-01-01: 2316.88 +MID_SUSSEX: + 2026-01-01: 2474.26 +MIDDLESBROUGH: + 2026-01-01: 2549.16 +MIDLOTHIAN: + 2025-01-01: 1666.20 +MILTON_KEYNES: + 2026-01-01: 2372.21 +MOLE_VALLEY: + 2026-01-01: 2519.86 +MONMOUTHSHIRE: + 2026-01-01: 2416.50 +MORAY: + 2025-01-01: 1573.76 +NA_H_EILEANAN_SIAR: + 2025-01-01: 1387.56 +NEATH_PORT_TALBOT: + 2026-01-01: 2541.39 +NEW_FOREST: + 2026-01-01: 2419.76 +NEWARK_AND_SHERWOOD: + 2026-01-01: 2682.10 +NEWCASTLE_UPON_TYNE: + 2026-01-01: 2542.19 +NEWCASTLE_UNDER_LYME: + 2026-01-01: 2334.25 +NEWHAM: + 2026-01-01: 1944.23 +NEWPORT: + 2026-01-01: 2088.48 +NORTH_AYRSHIRE: + 2025-01-01: 1553.77 +NORTH_DEVON: + 2026-01-01: 2642.21 +NORTH_EAST_DERBYSHIRE: + 2026-01-01: 2466.57 +NORTH_EAST_LINCOLNSHIRE: + 2026-01-01: 2483.85 +NORTH_HERTFORDSHIRE: + 2026-01-01: 2448.52 +NORTH_KESTEVEN: + 2026-01-01: 2337.81 +NORTH_LANARKSHIRE: + 2025-01-01: 1452.86 +NORTH_LINCOLNSHIRE: + 2026-01-01: 2348.46 +NORTH_NORFOLK: + 2026-01-01: 2459.93 +NORTH_SOMERSET: + 2026-01-01: 2491.22 +NORTH_TYNESIDE: + 2026-01-01: 2461.77 +NORTH_WARWICKSHIRE: + 2026-01-01: 2532.10 +NORTH_WEST_LEICESTERSHIRE: + 2026-01-01: 2418.20 +NORTHUMBERLAND: + 2026-01-01: 2596.94 +NORWICH: + 2026-01-01: 2503.44 +NOTTINGHAM: + 2026-01-01: 2755.39 +NUNEATON_AND_BEDWORTH: + 2026-01-01: 2502.16 +OADBY_AND_WIGSTON: + 2026-01-01: 2406.85 +OLDHAM: + 2026-01-01: 2602.23 +ORKNEY_ISLANDS: + 2025-01-01: 1574.60 +OXFORD: + 2026-01-01: 2678.40 +PEMBROKESHIRE: + 2026-01-01: 2166.15 +PENDLE: + 2026-01-01: 2640.18 +PERTH_AND_KINROSS: + 2025-01-01: 1537.04 +PETERBOROUGH: + 2026-01-01: 2293.47 +PLYMOUTH: + 2026-01-01: 2441.85 +PORTSMOUTH: + 2026-01-01: 2291.71 +POWYS: + 2026-01-01: 2351.72 +PRESTON: + 2026-01-01: 2575.74 +READING: + 2026-01-01: 2612.77 +REDBRIDGE: + 2026-01-01: 2294.58 +REDCAR_AND_CLEVELAND: + 2026-01-01: 2544.48 +REDDITCH: + 2026-01-01: 2462.95 +REIGATE_AND_BANSTEAD: + 2026-01-01: 2566.61 +RENFREWSHIRE: + 2025-01-01: 1572.61 +RHONDDA_CYNON_TAF: + 2026-01-01: 2289.43 +RIBBLE_VALLEY: + 2026-01-01: 2386.50 +RICHMOND_UPON_THAMES: + 2026-01-01: 2486.10 +ROCHDALE: + 2026-01-01: 2600.83 +ROCHFORD: + 2026-01-01: 2363.48 +ROSSENDALE: + 2026-01-01: 2519.97 +ROTHER: + 2026-01-01: 2700.95 +ROTHERHAM: + 2026-01-01: 2381.53 +RUGBY: + 2026-01-01: 2483.05 +RUNNYMEDE: + 2026-01-01: 2492.99 +RUSHCLIFFE: + 2026-01-01: 2643.27 +RUSHMOOR: + 2026-01-01: 2320.28 +RUTLAND: + 2026-01-01: 2737.58 +SALFORD: + 2026-01-01: 2594.45 +SANDWELL: + 2026-01-01: 2244.46 +SCOTTISH_BORDERS: + 2025-01-01: 1491.72 +SEFTON: + 2026-01-01: 2583.22 +SEVENOAKS: + 2026-01-01: 2522.36 +SHEFFIELD: + 2026-01-01: 2510.16 +SHETLAND_ISLANDS: + 2025-01-01: 1386.67 +SHROPSHIRE: + 2026-01-01: 2528.18 +SLOUGH: + 2026-01-01: 2414.44 +SOLIHULL: + 2026-01-01: 2197.26 +SOUTH_AYRSHIRE: + 2025-01-01: 1569.41 +SOUTH_CAMBRIDGESHIRE: + 2026-01-01: 2536.25 +SOUTH_DERBYSHIRE: + 2026-01-01: 2339.61 +SOUTH_GLOUCESTERSHIRE: + 2026-01-01: 2550.59 +SOUTH_HAMS: + 2026-01-01: 2615.22 +SOUTH_HOLLAND: + 2026-01-01: 2278.20 +SOUTH_KESTEVEN: + 2026-01-01: 2260.00 +SOUTH_LANARKSHIRE: + 2025-01-01: 1378.85 +SOUTH_NORFOLK: + 2026-01-01: 2482.87 +SOUTH_OXFORDSHIRE: + 2026-01-01: 2597.57 +SOUTH_RIBBLE: + 2026-01-01: 2442.66 +SOUTH_STAFFORDSHIRE: + 2026-01-01: 2313.67 +SOUTH_TYNESIDE: + 2026-01-01: 2434.43 +SOUTHAMPTON: + 2026-01-01: 2381.48 +SOUTHEND_ON_SEA: + 2026-01-01: 2265.17 +SOUTHWARK: + 2026-01-01: 1967.26 +SPELTHORNE: + 2026-01-01: 2526.44 +ST_ALBANS: + 2026-01-01: 2419.22 +ST_HELENS: + 2026-01-01: 2403.38 +STAFFORD: + 2026-01-01: 2302.68 +STAFFORDSHIRE_MOORLANDS: + 2026-01-01: 2338.21 +STEVENAGE: + 2026-01-01: 2391.97 +STIRLING: + 2025-01-01: 1611.78 +STOCKPORT: + 2026-01-01: 2618.90 +STOCKTON_ON_TEES: + 2026-01-01: 2589.83 +STOKE_ON_TRENT: + 2026-01-01: 2183.12 +STRATFORD_ON_AVON: + 2026-01-01: 2484.17 +STROUD: + 2026-01-01: 2491.36 +SUNDERLAND: + 2026-01-01: 2197.14 +SURREY_HEATH: + 2026-01-01: 2585.16 +SUTTON: + 2026-01-01: 2378.64 +SWALE: + 2026-01-01: 2405.65 +SWANSEA: + 2026-01-01: 2238.29 +SWINDON: + 2026-01-01: 2438.10 +TAMESIDE: + 2026-01-01: 2447.21 +TAMWORTH: + 2026-01-01: 2300.76 +TANDRIDGE: + 2026-01-01: 2594.85 +TEIGNBRIDGE: + 2026-01-01: 2643.12 +TELFORD_AND_WREKIN: + 2026-01-01: 2256.26 +TENDRING: + 2026-01-01: 2269.63 +TEST_VALLEY: + 2026-01-01: 2305.52 +TEWKESBURY: + 2026-01-01: 2340.53 +THANET: + 2026-01-01: 2490.90 +THREE_RIVERS: + 2026-01-01: 2422.31 +THURROCK: + 2026-01-01: 2254.68 +TONBRIDGE_AND_MALLING: + 2026-01-01: 2471.83 +TORBAY: + 2026-01-01: 2470.25 +TORFAEN: + 2026-01-01: 2155.68 +TORRIDGE: + 2026-01-01: 2601.42 +TOWER_HAMLETS: + 2026-01-01: 1837.78 +TRAFFORD: + 2026-01-01: 2291.70 +TUNBRIDGE_WELLS: + 2026-01-01: 2446.15 +UTTLESFORD: + 2026-01-01: 2333.82 +VALE_OF_GLAMORGAN: + 2026-01-01: 2231.54 +VALE_OF_WHITE_HORSE: + 2026-01-01: 2577.44 +WAKEFIELD: + 2026-01-01: 2296.89 +WALSALL: + 2026-01-01: 2627.48 +WALTHAM_FOREST: + 2026-01-01: 2386.96 +WANDSWORTH: + 2026-01-01: 1028.21 +WARRINGTON: + 2026-01-01: 2447.61 +WARWICK: + 2026-01-01: 2461.55 +WATFORD: + 2026-01-01: 2446.70 +WAVERLEY: + 2026-01-01: 2604.87 +WEALDEN: + 2026-01-01: 2728.43 +WELWYN_HATFIELD: + 2026-01-01: 2452.26 +WEST_BERKSHIRE: + 2026-01-01: 2505.37 +WEST_DEVON: + 2026-01-01: 2705.33 +WEST_DUNBARTONSHIRE: + 2025-01-01: 1559.86 +WEST_LANCASHIRE: + 2026-01-01: 2456.23 +WEST_LINDSEY: + 2026-01-01: 2354.25 +WEST_LOTHIAN: + 2025-01-01: 1515.45 +WEST_OXFORDSHIRE: + 2026-01-01: 2566.95 +WEST_SUFFOLK: + 2026-01-01: 2351.47 +WESTMINSTER: + 2026-01-01: 1049.55 +WIGAN: + 2026-01-01: 2152.68 +WILTSHIRE: + 2026-01-01: 2571.78 +WINCHESTER: + 2026-01-01: 2359.76 +WINDSOR_AND_MAIDENHEAD: + 2026-01-01: 1952.62 +WIRRAL: + 2026-01-01: 2500.59 +WOKING: + 2026-01-01: 2598.04 +WOKINGHAM: + 2026-01-01: 2497.70 +WOLVERHAMPTON: + 2026-01-01: 2538.99 +WORCESTER: + 2026-01-01: 2405.81 +WORTHING: + 2026-01-01: 2456.13 +WREXHAM: + 2026-01-01: 2308.88 +WYCHAVON: + 2026-01-01: 2373.19 +WYRE: + 2026-01-01: 2460.53 +WYRE_FOREST: + 2026-01-01: 2512.47 +YORK: + 2026-01-01: 2287.15 diff --git a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/england.yaml b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/england.yaml new file mode 100644 index 0000000000..f6b6a001b6 --- /dev/null +++ b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/england.yaml @@ -0,0 +1,26 @@ +description: Statutory council tax band proportions for England, relative to Band D. +metadata: + economy: false + propagate_metadata_to_children: true + unit: /1 + period: year + label: England council tax band ratios + reference: + - title: Local Government Finance Act 1992, section 5 + href: https://www.legislation.gov.uk/ukpga/1992/14/section/5 +A: + 1993-04-01: 0.666666667 # 2/3 +B: + 1993-04-01: 0.777777778 # 7/9 +C: + 1993-04-01: 0.888888889 # 8/9 +D: + 1993-04-01: 1.000000000 # 1/1 +E: + 1993-04-01: 1.222222222 # 11/9 +F: + 1993-04-01: 1.444444444 # 13/9 +G: + 1993-04-01: 1.666666667 # 5/3 +H: + 1993-04-01: 2.000000000 # 2/1 diff --git a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml new file mode 100644 index 0000000000..8b8404de9e --- /dev/null +++ b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml @@ -0,0 +1,28 @@ +description: Statutory council tax band proportions for Scotland, relative to Band D. Bands E to H were increased from 1 April 2017. +metadata: + economy: false + propagate_metadata_to_children: true + unit: /1 + period: year + label: Scotland council tax band ratios + reference: + - title: Local Government Finance Act 1992, section 5 + href: https://www.legislation.gov.uk/ukpga/1992/14/section/5 + - title: The Council Tax (Substitution of Proportion) (Scotland) Order 2016 + href: https://www.legislation.gov.uk/ssi/2016/123/made +A: + 2017-04-01: 0.666666667 # 2/3 +B: + 2017-04-01: 0.777777778 # 7/9 +C: + 2017-04-01: 0.888888889 # 8/9 +D: + 2017-04-01: 1.000000000 # 1/1 +E: + 2017-04-01: 1.313888889 # 473/360 +F: + 2017-04-01: 1.625000000 # 13/8 +G: + 2017-04-01: 1.958333333 # 47/24 +H: + 2017-04-01: 2.450000000 # 49/20 diff --git a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/wales.yaml b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/wales.yaml new file mode 100644 index 0000000000..d2a2ebc330 --- /dev/null +++ b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/wales.yaml @@ -0,0 +1,30 @@ +description: Statutory council tax band proportions for Wales, relative to Band D. Wales has nine bands (A to I) from 1 April 2005. +metadata: + economy: false + propagate_metadata_to_children: true + unit: /1 + period: year + label: Wales council tax band ratios + reference: + - title: Local Government Finance Act 1992, section 5 + href: https://www.legislation.gov.uk/ukpga/1992/14/section/5 + - title: The Council Tax (Valuation Bands) (Wales) Order 2003 + href: https://www.legislation.gov.uk/wsi/2003/3046/made +A: + 2005-04-01: 0.666666667 # 2/3 +B: + 2005-04-01: 0.777777778 # 7/9 +C: + 2005-04-01: 0.888888889 # 8/9 +D: + 2005-04-01: 1.000000000 # 1/1 +E: + 2005-04-01: 1.222222222 # 11/9 +F: + 2005-04-01: 1.444444444 # 13/9 +G: + 2005-04-01: 1.666666667 # 5/3 +H: + 2005-04-01: 2.000000000 # 2/1 +I: + 2005-04-01: 2.333333333 # 7/3 diff --git a/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml b/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml new file mode 100644 index 0000000000..4f0fae6fe3 --- /dev/null +++ b/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml @@ -0,0 +1,239 @@ +- name: England Band A is 2/3 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: A + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 1668.39 + +- name: England Band B is 7/9 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: B + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 1946.46 + +- name: England Band C is 8/9 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: C + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 2224.52 + +- name: England Band D is 1/1 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: D + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 2502.59 + +- name: England Band E is 11/9 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: E + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 3058.72 + +- name: England Band F is 13/9 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: F + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 3614.85 + +- name: England Band G is 5/3 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: G + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 4170.98 + +- name: England Band H is 2/1 of the Maidstone Band D amount + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: H + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 5005.18 + +- name: Wales Band I (the ninth, Wales-only band) is 21/9 of Band D + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: WALES + local_authority: CARDIFF + council_tax_band: I + output: + council_tax_band_d_amount: 2013.18 + simulated_council_tax: 4697.42 + +- name: "Band D identity: liability equals the Band D amount in Cardiff" + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: WALES + local_authority: CARDIFF + council_tax_band: D + output: + council_tax_band_d_amount: 2013.18 + simulated_council_tax: 2013.18 + +- name: Scotland Band H uses the 882/360 multiplier from April 2017 + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SCOTLAND + local_authority: CITY_OF_EDINBURGH + council_tax_band: H + output: + council_tax_band_d_amount: 1563.51 + simulated_council_tax: 3830.6 + +- name: "Band D identity: liability equals the Band D amount in Maidstone" + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: D + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 2502.59 diff --git a/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py b/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py new file mode 100644 index 0000000000..725ac12ca2 --- /dev/null +++ b/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py @@ -0,0 +1,25 @@ +from policyengine_uk.model_api import * + + +class council_tax_band_d_amount(Variable): + value_type = float + entity = Household + label = "Band D council tax amount" + documentation = ( + "The Band D council tax amount set by the household's local authority, " + "before discounts, exemptions or Council Tax Reduction. Only one " + "year of data is loaded (2026-27 for England and Wales, 2025-26 for " + "Scotland), so earlier years are held flat backwards." + ) + definition_period = YEAR + unit = GBP + quantity_type = FLOW + + def formula(household, period, parameters): + la = household("local_authority", period).decode_to_str() + amounts = parameters(period).gov.local_authorities.council_tax.band_d.amounts + # Dict lookup rather than bracket indexing: Northern Ireland (domestic + # rates, not council tax) and six post-2021 unitary authorities absent + # from the LocalAuthority enum have no Band D amount, and should return + # zero rather than raise. + return np.array([amounts._children.get(a, 0) for a in la], dtype=float) diff --git a/policyengine_uk/variables/gov/local_authorities/council_tax/simulated_council_tax.py b/policyengine_uk/variables/gov/local_authorities/council_tax/simulated_council_tax.py new file mode 100644 index 0000000000..9a3996f543 --- /dev/null +++ b/policyengine_uk/variables/gov/local_authorities/council_tax/simulated_council_tax.py @@ -0,0 +1,34 @@ +from policyengine_uk.model_api import * + + +class simulated_council_tax(Variable): + value_type = float + entity = Household + label = "Simulated gross council tax" + documentation = ( + "Gross annual council tax liability computed as the local authority's " + "Band D amount multiplied by the statutory band ratio. Before " + "discounts, exemptions, premiums and Council Tax Reduction." + ) + definition_period = YEAR + unit = GBP + quantity_type = FLOW + + def formula(household, period, parameters): + band_d = household("council_tax_band_d_amount", period) + band = household("council_tax_band", period).decode_to_str() + country = household("country", period).decode_to_str() + ratios = parameters(period).gov.local_authorities.council_tax.band_ratios + + ratio = np.ones_like(band_d, dtype=float) + for key, node in ( + ("ENGLAND", ratios.england), + ("WALES", ratios.wales), + ("SCOTLAND", ratios.scotland), + ): + table = node._children + values = np.array([float(table.get(b, 1)) for b in band], dtype=float) + ratio = np.where(country == key, values, ratio) + + # Northern Ireland uses domestic rates, not council tax. + return np.where(country == "NORTHERN_IRELAND", 0, band_d * ratio) From 9b6909c61ca09f4eb24f9f0e5c78394a6ab523b6 Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Sat, 26 Sep 2026 16:57:34 +0100 Subject: [PATCH 2/5] Cover all 350 local authorities and both fiscal 2025 and 2026 Band D levels Review follow-up on the four data-coverage items. Enum coverage: add the six April 2023 unitary authorities (Cumberland, North Northamptonshire, North Yorkshire, Somerset, West Northamptonshire, Westmorland and Furness) to LocalAuthority. All 350 Band D rows now load, up from 344. Vintages: carry fiscal 2025 and 2026 for England, Wales and Scotland. England comes from MHCLG Table 10 line 17 in both the 2026-27 and the revised 2025-26 releases; the 2025-26 release's current-year column reproduces the 2026-27 release's previous-year column, and every England and Wales 2026 value reproduces the figures already in the file. Wales comes from the Welsh Government council tax levels data tables, Table 1 "Overall average band D". Scotland comes from the Scottish Government Band D council tax 1996-97 to 2026-27 dataset, whose 2025-26 column reproduces the Scottish values already in the file. References: cite the specific workbooks rather than the statistics collection page, and state the basis. For England and Wales this is the area figure, so it includes the county, police, fire, combined authority and parish or community council precepts; for Scotland it excludes the separately billed water and waste water charges. The variable documentation and the stale "six authorities absent from the enum" comment are corrected to match. Scotland ratios: SSI 2016/368 (not 2016/123, which is the capital finance regulations and was cited in error) substitutes 240:280:320:360:473:585: 705:882 into section 74(1) for financial years from 1 April 2017. Bands A to D are unchanged from the original 6:7:8:9 proportion, so they are dated from 1993-04-01; bands E to H keep the 2017 step and gain their original 11/9, 13/9, 15/9 and 18/9 values from 1993-04-01, so no band is undefined before 2017. Co-Authored-By: Claude Opus 5 (1M context) --- changelog.d/council-tax-computed-liability.md | 2 +- .../council_tax/band_d/amounts.yaml | 382 +++++++++++++++++- .../council_tax/band_ratios/scotland.yaml | 28 +- .../council_tax/simulated_council_tax.yaml | 124 +++++- .../council_tax/council_tax_band_d_amount.py | 18 +- .../household/demographic/locations.py | 2 + 6 files changed, 525 insertions(+), 31 deletions(-) diff --git a/changelog.d/council-tax-computed-liability.md b/changelog.d/council-tax-computed-liability.md index 2747986d00..f91130b7ac 100644 --- a/changelog.d/council-tax-computed-liability.md +++ b/changelog.d/council-tax-computed-liability.md @@ -1 +1 @@ -Add council_tax_band_d_amount and simulated_council_tax, computing gross council tax from local authority Band D amounts and statutory band ratios. +Add council_tax_band_d_amount and simulated_council_tax, computing gross council tax from local authority Band D amounts and statutory band ratios. Band D amounts cover all 350 April 2023 local authorities across England, Wales and Scotland for fiscal 2025 and 2026. diff --git a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml index 7d69ffc825..ece88c9e18 100644 --- a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml +++ b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_d/amounts.yaml @@ -1,4 +1,4 @@ -description: Band D council tax amount set by each local authority, before any discounts, exemptions or Council Tax Reduction. +description: Band D council tax amount set by each local authority, before any discounts, exemptions or Council Tax Reduction. For England and Wales this is the area figure for the billing authority, so it includes the county, police, fire, combined authority and parish or community council precepts as well as the billing authority's own charge; for Scotland it is the council's Band D rate, which excludes the separately billed water and waste water charges. metadata: economy: false propagate_metadata_to_children: true @@ -6,697 +6,1061 @@ metadata: period: year label: Local authority Band D council tax amount reference: - - title: Council tax levels set by local authorities in England 2026 to 2027 - href: https://www.gov.uk/government/collections/council-tax-statistics - - title: Council tax levels April 2026 to March 2027 (Wales) - href: https://www.gov.wales/council-tax-levels-april-2026-march-2027-html - - title: Council Tax datasets (Scotland) - href: https://www.gov.scot/publications/council-tax-datasets/ + - title: "England 2026-27: Council tax levels set by local authorities in England, Table 10 local authority level data, sheet Data_Billing, line 17 (average Band D 2 adult equivalent council tax for the area of the billing authority, including both local and major precepts)" + href: https://assets.publishing.service.gov.uk/media/6a02eeeccd2e0e8b5b20b449/Table_10_2026-27.ods + - title: "England 2025-26: Council tax levels set by local authorities in England, Table 10 local authority level data (revised), sheet Data_Billing, line 17 (same area basis)" + href: https://assets.publishing.service.gov.uk/media/6a02f143e71c4cdf4026ba48/Table_10_2025-26.ods + - title: "Wales 2026-27 and 2025-26: Council tax levels April 2026 to March 2027, associated data tables, Table 1 column 'Overall average band D' (county council, community council and police authority elements combined); Table 2 carries the 2025-26 figure" + href: https://gov.wales/sites/default/files/statistics-and-research/2026-03/council-tax-levels-april-2026-march-2027-153478.xlsx + - title: "Scotland 2026-27 and 2025-26: Band D council tax 1996-97 to 2026-27, Council Tax datasets (excludes water and waste water charges)" + href: https://www.gov.scot/binaries/content/documents/govscot/publications/statistics/2019/04/council-tax-datasets/documents/band-d/band-d-council-tax-1996-97-to-2019-20-data/band-d-council-tax-1996-97-to-2019-20-data/govscot%3Adocument/CTAS%2B2026%2B-%2BCouncil%2BTax%2BAssumptions%2B-%2BBand%2BD%2BCouncil%2BTax%2Brates%2Bby%2Byear%2B-%2B1996-97%2Bto%2B2026-27.xlsx ABERDEEN_CITY: 2025-01-01: 1636.27 + 2026-01-01: 1747.54 ABERDEENSHIRE: 2025-01-01: 1532.76 + 2026-01-01: 1686.04 ADUR: + 2025-01-01: 2432.50 2026-01-01: 2548.28 AMBER_VALLEY: + 2025-01-01: 2297.98 2026-01-01: 2407.69 ANGUS: 2025-01-01: 1461.52 + 2026-01-01: 1598.65 ARGYLL_AND_BUTE: 2025-01-01: 1625.64 + 2026-01-01: 1783.33 ARUN: + 2025-01-01: 2371.09 2026-01-01: 2487.24 ASHFIELD: + 2025-01-01: 2506.63 2026-01-01: 2608.76 ASHFORD: + 2025-01-01: 2311.19 2026-01-01: 2410.16 BABERGH: + 2025-01-01: 2233.16 2026-01-01: 2341.55 BARKING_AND_DAGENHAM: + 2025-01-01: 2098.14 2026-01-01: 2198.51 BARNET: + 2025-01-01: 2035.52 2026-01-01: 2132.60 BARNSLEY: + 2025-01-01: 2241.35 2026-01-01: 2325.96 BASILDON: + 2025-01-01: 2244.63 2026-01-01: 2327.24 BASINGSTOKE_AND_DEANE: + 2025-01-01: 2147.87 2026-01-01: 2255.21 BASSETLAW: + 2025-01-01: 2539.53 2026-01-01: 2644.95 BATH_AND_NORTH_EAST_SOMERSET: + 2025-01-01: 2265.80 2026-01-01: 2383.42 BEDFORD: + 2025-01-01: 2350.94 2026-01-01: 2471.74 BEXLEY: + 2025-01-01: 2258.03 2026-01-01: 2366.36 BIRMINGHAM: + 2025-01-01: 2245.41 2026-01-01: 2362.90 BLABY: + 2025-01-01: 2406.77 2026-01-01: 2490.22 BLACKBURN_WITH_DARWEN: + 2025-01-01: 2337.17 2026-01-01: 2455.27 BLACKPOOL: + 2025-01-01: 2392.21 2026-01-01: 2513.22 BLAENAU_GWENT: + 2025-01-01: 2428.43 2026-01-01: 2531.26 BOLSOVER: + 2025-01-01: 2447.51 2026-01-01: 2559.41 BOLTON: + 2025-01-01: 2266.53 2026-01-01: 2399.74 BOSTON: + 2025-01-01: 2236.62 2026-01-01: 2308.73 BOURNEMOUTH_CHRISTCHURCH_AND_POOLE: + 2025-01-01: 2264.78 2026-01-01: 2435.58 BRACKNELL_FOREST: + 2025-01-01: 2155.21 2026-01-01: 2264.80 BRADFORD: + 2025-01-01: 2246.15 2026-01-01: 2360.73 BRAINTREE: + 2025-01-01: 2194.67 2026-01-01: 2280.34 BRECKLAND: + 2025-01-01: 2328.59 2026-01-01: 2443.67 BRENT: + 2025-01-01: 2133.15 2026-01-01: 2235.27 BRENTWOOD: + 2025-01-01: 2166.72 2026-01-01: 2258.14 BRIDGEND: + 2025-01-01: 2357.63 2026-01-01: 2477.99 BRIGHTON_AND_HOVE: + 2025-01-01: 2456.78 2026-01-01: 2580.54 BRISTOL_CITY_OF: + 2025-01-01: 2583.89 2026-01-01: 2713.68 BROADLAND: + 2025-01-01: 2327.99 2026-01-01: 2437.78 BROMLEY: + 2025-01-01: 2042.46 2026-01-01: 2140.04 BROMSGROVE: + 2025-01-01: 2302.72 2026-01-01: 2478.65 BROXBOURNE: + 2025-01-01: 2198.11 2026-01-01: 2306.43 BROXTOWE: + 2025-01-01: 2516.20 2026-01-01: 2618.21 BUCKINGHAMSHIRE: + 2025-01-01: 2401.53 2026-01-01: 2526.58 BURNLEY: + 2025-01-01: 2455.83 2026-01-01: 2549.42 BURY: + 2025-01-01: 2414.58 2026-01-01: 2555.15 CAERPHILLY: + 2025-01-01: 1956.20 2026-01-01: 2082.88 CALDERDALE: + 2025-01-01: 2302.33 2026-01-01: 2420.15 CAMBRIDGE: + 2025-01-01: 2355.41 2026-01-01: 2467.02 CAMDEN: + 2025-01-01: 2106.69 2026-01-01: 2207.55 CANNOCK_CHASE: + 2025-01-01: 2282.30 2026-01-01: 2375.83 CANTERBURY: + 2025-01-01: 2321.73 2026-01-01: 2419.33 CARDIFF: + 2025-01-01: 1926.18 2026-01-01: 2013.18 CARMARTHENSHIRE: + 2025-01-01: 2232.06 2026-01-01: 2351.20 CASTLE_POINT: + 2025-01-01: 2227.21 2026-01-01: 2318.63 CENTRAL_BEDFORDSHIRE: + 2025-01-01: 2394.14 2026-01-01: 2516.16 CEREDIGION: + 2025-01-01: 2296.09 2026-01-01: 2419.45 CHARNWOOD: + 2025-01-01: 2327.50 2026-01-01: 2405.64 CHELMSFORD: + 2025-01-01: 2206.97 2026-01-01: 2300.18 CHELTENHAM: + 2025-01-01: 2258.28 2026-01-01: 2369.52 CHERWELL: + 2025-01-01: 2463.87 2026-01-01: 2582.96 CHESHIRE_EAST: + 2025-01-01: 2332.61 2026-01-01: 2454.87 CHESHIRE_WEST_AND_CHESTER: + 2025-01-01: 2392.03 2026-01-01: 2517.33 CHESTERFIELD: + 2025-01-01: 2233.12 2026-01-01: 2339.49 CHICHESTER: + 2025-01-01: 2346.40 2026-01-01: 2469.68 CHORLEY: + 2025-01-01: 2342.85 2026-01-01: 2430.23 CITY_OF_EDINBURGH: 2025-01-01: 1563.51 + 2026-01-01: 1626.05 CITY_OF_LONDON: + 2025-01-01: 1274.07 2026-01-01: 1329.56 CLACKMANNANSHIRE: 2025-01-01: 1594.38 + 2026-01-01: 1683.67 COLCHESTER: + 2025-01-01: 2192.08 2026-01-01: 2282.85 CONWY: + 2025-01-01: 2320.83 2026-01-01: 2472.82 CORNWALL: + 2025-01-01: 2459.92 2026-01-01: 2590.93 COTSWOLD: + 2025-01-01: 2276.70 2026-01-01: 2391.65 COUNTY_DURHAM: + 2025-01-01: 2551.17 2026-01-01: 2622.15 COVENTRY: + 2025-01-01: 2413.68 2026-01-01: 2516.72 CRAWLEY: + 2025-01-01: 2306.49 2026-01-01: 2418.46 CROYDON: + 2025-01-01: 2480.48 2026-01-01: 2599.91 +CUMBERLAND: + 2025-01-01: 2393.90 + 2026-01-01: 2511.32 DACORUM: + 2025-01-01: 2294.23 2026-01-01: 2408.51 DARLINGTON: + 2025-01-01: 2371.60 2026-01-01: 2493.83 DARTFORD: + 2025-01-01: 2280.55 2026-01-01: 2375.15 DENBIGHSHIRE: + 2025-01-01: 2217.08 2026-01-01: 2339.03 DERBY: + 2025-01-01: 2195.75 2026-01-01: 2306.00 DERBYSHIRE_DALES: + 2025-01-01: 2332.42 2026-01-01: 2444.70 DONCASTER: + 2025-01-01: 2110.50 2026-01-01: 2167.75 DORSET: + 2025-01-01: 2630.30 2026-01-01: 2765.02 DOVER: + 2025-01-01: 2364.45 2026-01-01: 2461.74 DUDLEY: + 2025-01-01: 2038.57 2026-01-01: 2144.84 DUMFRIES_AND_GALLOWAY: 2025-01-01: 1454.98 + 2026-01-01: 1578.65 DUNDEE_CITY: 2025-01-01: 1605.34 + 2026-01-01: 1729.69 EALING: + 2025-01-01: 2041.02 2026-01-01: 2138.53 EAST_AYRSHIRE: 2025-01-01: 1606.44 + 2026-01-01: 1717.28 EAST_CAMBRIDGESHIRE: + 2025-01-01: 2374.13 2026-01-01: 2485.18 EAST_DEVON: + 2025-01-01: 2461.40 2026-01-01: 2595.46 EAST_DUNBARTONSHIRE: 2025-01-01: 1599.70 + 2026-01-01: 1751.67 EAST_HAMPSHIRE: + 2025-01-01: 2231.64 2026-01-01: 2343.92 EAST_HERTFORDSHIRE: + 2025-01-01: 2339.63 2026-01-01: 2454.78 EAST_LINDSEY: + 2025-01-01: 2201.57 2026-01-01: 2275.88 EAST_LOTHIAN: 2025-01-01: 1579.18 + 2026-01-01: 1697.62 EAST_RENFREWSHIRE: 2025-01-01: 1528.44 + 2026-01-01: 1620.15 EAST_RIDING_OF_YORKSHIRE: + 2025-01-01: 2343.55 2026-01-01: 2466.08 EAST_STAFFORDSHIRE: + 2025-01-01: 2257.48 2026-01-01: 2351.34 EAST_SUFFOLK: + 2025-01-01: 2222.36 2026-01-01: 2334.80 EASTBOURNE: + 2025-01-01: 2532.49 2026-01-01: 2654.28 EASTLEIGH: + 2025-01-01: 2227.68 2026-01-01: 2342.21 ELMBRIDGE: + 2025-01-01: 2442.92 2026-01-01: 2557.75 ENFIELD: + 2025-01-01: 2164.02 2026-01-01: 2267.67 EPPING_FOREST: + 2025-01-01: 2186.69 2026-01-01: 2277.21 EPSOM_AND_EWELL: + 2025-01-01: 2416.84 2026-01-01: 2530.84 EREWASH: + 2025-01-01: 2260.06 2026-01-01: 2360.64 EXETER: + 2025-01-01: 2379.90 2026-01-01: 2495.36 FALKIRK: 2025-01-01: 1576.77 + 2026-01-01: 1715.09 FAREHAM: + 2025-01-01: 2164.55 2026-01-01: 2270.55 FENLAND: + 2025-01-01: 2432.81 2026-01-01: 2537.74 FIFE: 2025-01-01: 1498.76 + 2026-01-01: 1573.70 FLINTSHIRE: + 2025-01-01: 2246.47 2026-01-01: 2376.17 FOLKESTONE_AND_HYTHE: + 2025-01-01: 2437.35 2026-01-01: 2538.75 FOREST_OF_DEAN: + 2025-01-01: 2326.88 2026-01-01: 2443.42 FYLDE: + 2025-01-01: 2387.78 2026-01-01: 2483.94 GATESHEAD: + 2025-01-01: 2578.46 2026-01-01: 2715.81 GEDLING: + 2025-01-01: 2507.09 2026-01-01: 2609.55 GLASGOW_CITY: 2025-01-01: 1611.00 + 2026-01-01: 1706.00 GLOUCESTER: + 2025-01-01: 2246.16 2026-01-01: 2355.84 GOSPORT: + 2025-01-01: 2236.14 2026-01-01: 2344.29 GRAVESHAM: + 2025-01-01: 2313.06 2026-01-01: 2408.24 GREAT_YARMOUTH: + 2025-01-01: 2305.13 2026-01-01: 2414.41 GREENWICH: + 2025-01-01: 2011.81 2026-01-01: 2107.86 GUILDFORD: + 2025-01-01: 2428.89 2026-01-01: 2547.30 GWYNEDD: + 2025-01-01: 2340.22 2026-01-01: 2468.77 HACKNEY: + 2025-01-01: 1966.51 2026-01-01: 2060.30 HALTON: + 2025-01-01: 2249.34 2026-01-01: 2366.61 HAMMERSMITH_AND_FULHAM: + 2025-01-01: 1451.42 2026-01-01: 1519.51 HARBOROUGH: + 2025-01-01: 2324.96 2026-01-01: 2389.87 HARINGEY: + 2025-01-01: 2207.94 2026-01-01: 2313.78 HARLOW: + 2025-01-01: 2216.43 2026-01-01: 2298.69 HARROW: + 2025-01-01: 2395.86 2026-01-01: 2511.07 HART: + 2025-01-01: 2285.15 2026-01-01: 2400.02 HARTLEPOOL: + 2025-01-01: 2498.53 2026-01-01: 2560.20 HASTINGS: + 2025-01-01: 2554.14 2026-01-01: 2676.58 HAVANT: + 2025-01-01: 2212.89 2026-01-01: 2320.28 HAVERING: + 2025-01-01: 2313.55 2026-01-01: 2424.66 HEREFORDSHIRE_COUNTY_OF: + 2025-01-01: 2449.17 2026-01-01: 2574.37 HERTSMERE: + 2025-01-01: 2289.22 2026-01-01: 2405.83 HIGH_PEAK: + 2025-01-01: 2275.52 2026-01-01: 2384.66 HIGHLAND: 2025-01-01: 1527.09 + 2026-01-01: 1633.99 HILLINGDON: + 2025-01-01: 1952.38 2026-01-01: 2045.46 HINCKLEY_AND_BOSWORTH: + 2025-01-01: 2304.14 2026-01-01: 2382.62 HORSHAM: + 2025-01-01: 2321.54 2026-01-01: 2441.01 HOUNSLOW: + 2025-01-01: 2085.82 2026-01-01: 2185.56 HUNTINGDONSHIRE: + 2025-01-01: 2439.67 2026-01-01: 2556.40 HYNDBURN: + 2025-01-01: 2380.02 2026-01-01: 2465.98 INVERCLYDE: 2025-01-01: 1551.30 + 2026-01-01: 1673.85 IPSWICH: + 2025-01-01: 2358.54 2026-01-01: 2468.25 ISLE_OF_ANGLESEY: + 2025-01-01: 2143.94 2026-01-01: 2260.73 ISLE_OF_WIGHT: + 2025-01-01: 2493.36 2026-01-01: 2625.79 ISLES_OF_SCILLY: + 2025-01-01: 1950.03 2026-01-01: 2047.96 ISLINGTON: + 2025-01-01: 2012.10 2026-01-01: 2108.15 KENSINGTON_AND_CHELSEA: + 2025-01-01: 1591.59 2026-01-01: 1666.65 KINGS_LYNN_AND_WEST_NORFOLK: + 2025-01-01: 2318.63 2026-01-01: 2430.13 KINGSTON_UPON_HULL_CITY_OF: + 2025-01-01: 2182.52 2026-01-01: 2295.04 KINGSTON_UPON_THAMES: + 2025-01-01: 2489.34 2026-01-01: 2609.20 KIRKLEES: + 2025-01-01: 2321.76 2026-01-01: 2441.07 KNOWSLEY: + 2025-01-01: 2371.28 2026-01-01: 2488.25 LAMBETH: + 2025-01-01: 1953.95 2026-01-01: 2047.11 LANCASTER: + 2025-01-01: 2407.50 2026-01-01: 2503.19 LEEDS: + 2025-01-01: 2172.39 2026-01-01: 2283.73 LEICESTER: + 2025-01-01: 2407.72 2026-01-01: 2528.75 LEWES: + 2025-01-01: 2627.39 2026-01-01: 2756.17 LEWISHAM: + 2025-01-01: 2135.13 2026-01-01: 2237.33 LICHFIELD: + 2025-01-01: 2259.21 2026-01-01: 2351.90 LINCOLN: + 2025-01-01: 2260.98 2026-01-01: 2323.08 LIVERPOOL: + 2025-01-01: 2546.45 2026-01-01: 2673.59 LUTON: + 2025-01-01: 2320.43 2026-01-01: 2439.93 MAIDSTONE: + 2025-01-01: 2403.78 2026-01-01: 2502.59 MALDON: + 2025-01-01: 2232.83 2026-01-01: 2328.37 MALVERN_HILLS: + 2025-01-01: 2280.82 2026-01-01: 2450.92 MANCHESTER: + 2025-01-01: 2183.03 2026-01-01: 2312.04 MANSFIELD: + 2025-01-01: 2498.40 2026-01-01: 2600.38 MEDWAY: + 2025-01-01: 2215.38 2026-01-01: 2328.55 MELTON: + 2025-01-01: 2350.68 2026-01-01: 2429.67 MERTHYR_TYDFIL: + 2025-01-01: 2464.01 2026-01-01: 2593.60 MERTON: + 2025-01-01: 2094.43 2026-01-01: 2146.76 MID_DEVON: + 2025-01-01: 2521.17 2026-01-01: 2656.41 MID_SUFFOLK: + 2025-01-01: 2208.43 2026-01-01: 2316.88 MID_SUSSEX: + 2025-01-01: 2356.49 2026-01-01: 2474.26 MIDDLESBROUGH: + 2025-01-01: 2487.65 2026-01-01: 2549.16 MIDLOTHIAN: 2025-01-01: 1666.20 + 2026-01-01: 1816.16 MILTON_KEYNES: + 2025-01-01: 2257.98 2026-01-01: 2372.21 MOLE_VALLEY: + 2025-01-01: 2405.75 2026-01-01: 2519.86 MONMOUTHSHIRE: + 2025-01-01: 2277.19 2026-01-01: 2416.50 MORAY: 2025-01-01: 1573.76 + 2026-01-01: 1731.14 NA_H_EILEANAN_SIAR: 2025-01-01: 1387.56 + 2026-01-01: 1505.50 NEATH_PORT_TALBOT: + 2025-01-01: 2440.78 2026-01-01: 2541.39 NEW_FOREST: + 2025-01-01: 2303.37 2026-01-01: 2419.76 NEWARK_AND_SHERWOOD: + 2025-01-01: 2582.22 2026-01-01: 2682.10 -NEWCASTLE_UPON_TYNE: - 2026-01-01: 2542.19 NEWCASTLE_UNDER_LYME: + 2025-01-01: 2244.85 2026-01-01: 2334.25 +NEWCASTLE_UPON_TYNE: + 2025-01-01: 2413.15 + 2026-01-01: 2542.19 NEWHAM: + 2025-01-01: 1855.96 2026-01-01: 1944.23 NEWPORT: + 2025-01-01: 1983.97 2026-01-01: 2088.48 NORTH_AYRSHIRE: 2025-01-01: 1553.77 + 2026-01-01: 1685.84 NORTH_DEVON: + 2025-01-01: 2514.66 2026-01-01: 2642.21 NORTH_EAST_DERBYSHIRE: + 2025-01-01: 2354.93 2026-01-01: 2466.57 NORTH_EAST_LINCOLNSHIRE: + 2025-01-01: 2371.01 2026-01-01: 2483.85 NORTH_HERTFORDSHIRE: + 2025-01-01: 2332.61 2026-01-01: 2448.52 NORTH_KESTEVEN: + 2025-01-01: 2261.06 2026-01-01: 2337.81 NORTH_LANARKSHIRE: 2025-01-01: 1452.86 + 2026-01-01: 1554.56 NORTH_LINCOLNSHIRE: + 2025-01-01: 2238.09 2026-01-01: 2348.46 NORTH_NORFOLK: + 2025-01-01: 2341.13 2026-01-01: 2459.93 +NORTH_NORTHAMPTONSHIRE: + 2025-01-01: 2301.93 + 2026-01-01: 2423.96 NORTH_SOMERSET: + 2025-01-01: 2294.94 2026-01-01: 2491.22 NORTH_TYNESIDE: + 2025-01-01: 2336.45 2026-01-01: 2461.77 NORTH_WARWICKSHIRE: + 2025-01-01: 2431.78 2026-01-01: 2532.10 NORTH_WEST_LEICESTERSHIRE: + 2025-01-01: 2338.10 2026-01-01: 2418.20 +NORTH_YORKSHIRE: + 2025-01-01: 2418.26 + 2026-01-01: 2544.34 NORTHUMBERLAND: + 2025-01-01: 2464.63 2026-01-01: 2596.94 NORWICH: + 2025-01-01: 2391.59 2026-01-01: 2503.44 NOTTINGHAM: + 2025-01-01: 2656.19 2026-01-01: 2755.39 NUNEATON_AND_BEDWORTH: + 2025-01-01: 2398.13 2026-01-01: 2502.16 OADBY_AND_WIGSTON: + 2025-01-01: 2330.02 2026-01-01: 2406.85 OLDHAM: + 2025-01-01: 2459.40 2026-01-01: 2602.23 ORKNEY_ISLANDS: 2025-01-01: 1574.60 + 2026-01-01: 1669.07 OXFORD: + 2025-01-01: 2557.13 2026-01-01: 2678.40 PEMBROKESHIRE: + 2025-01-01: 2059.82 2026-01-01: 2166.15 PENDLE: + 2025-01-01: 2535.19 2026-01-01: 2640.18 PERTH_AND_KINROSS: 2025-01-01: 1537.04 + 2026-01-01: 1673.84 PETERBOROUGH: + 2025-01-01: 2185.72 2026-01-01: 2293.47 PLYMOUTH: + 2025-01-01: 2325.42 2026-01-01: 2441.85 PORTSMOUTH: + 2025-01-01: 2180.92 2026-01-01: 2291.71 POWYS: + 2025-01-01: 2234.44 2026-01-01: 2351.72 PRESTON: + 2025-01-01: 2477.85 2026-01-01: 2575.74 READING: + 2025-01-01: 2487.11 2026-01-01: 2612.77 REDBRIDGE: + 2025-01-01: 2189.67 2026-01-01: 2294.58 REDCAR_AND_CLEVELAND: + 2025-01-01: 2424.47 2026-01-01: 2544.48 REDDITCH: + 2025-01-01: 2289.33 2026-01-01: 2462.95 REIGATE_AND_BANSTEAD: + 2025-01-01: 2459.20 2026-01-01: 2566.61 RENFREWSHIRE: 2025-01-01: 1572.61 + 2026-01-01: 1690.56 RHONDDA_CYNON_TAF: + 2025-01-01: 2190.10 2026-01-01: 2289.43 RIBBLE_VALLEY: + 2025-01-01: 2299.58 2026-01-01: 2386.50 RICHMOND_UPON_THAMES: + 2025-01-01: 2372.07 2026-01-01: 2486.10 ROCHDALE: + 2025-01-01: 2458.09 2026-01-01: 2600.83 ROCHFORD: + 2025-01-01: 2268.00 2026-01-01: 2363.48 ROSSENDALE: + 2025-01-01: 2424.37 2026-01-01: 2519.97 ROTHER: + 2025-01-01: 2561.29 2026-01-01: 2700.95 ROTHERHAM: + 2025-01-01: 2283.26 2026-01-01: 2381.53 RUGBY: + 2025-01-01: 2378.04 2026-01-01: 2483.05 RUNNYMEDE: + 2025-01-01: 2380.06 2026-01-01: 2492.99 RUSHCLIFFE: + 2025-01-01: 2531.50 2026-01-01: 2643.27 RUSHMOOR: + 2025-01-01: 2212.82 2026-01-01: 2320.28 RUTLAND: + 2025-01-01: 2671.01 2026-01-01: 2737.58 SALFORD: + 2025-01-01: 2452.02 2026-01-01: 2594.45 SANDWELL: + 2025-01-01: 2133.45 2026-01-01: 2244.46 SCOTTISH_BORDERS: 2025-01-01: 1491.72 + 2026-01-01: 1618.52 SEFTON: + 2025-01-01: 2460.92 2026-01-01: 2583.22 SEVENOAKS: + 2025-01-01: 2419.44 2026-01-01: 2522.36 SHEFFIELD: + 2025-01-01: 2388.76 2026-01-01: 2510.16 SHETLAND_ISLANDS: 2025-01-01: 1386.67 + 2026-01-01: 1487.90 SHROPSHIRE: + 2025-01-01: 2318.80 2026-01-01: 2528.18 SLOUGH: + 2025-01-01: 2298.55 2026-01-01: 2414.44 SOLIHULL: + 2025-01-01: 2087.81 2026-01-01: 2197.26 +SOMERSET: + 2025-01-01: 2438.62 + 2026-01-01: 2560.59 SOUTH_AYRSHIRE: 2025-01-01: 1569.41 + 2026-01-01: 1694.96 SOUTH_CAMBRIDGESHIRE: + 2025-01-01: 2414.52 2026-01-01: 2536.25 SOUTH_DERBYSHIRE: + 2025-01-01: 2231.86 2026-01-01: 2339.61 SOUTH_GLOUCESTERSHIRE: + 2025-01-01: 2427.90 2026-01-01: 2550.59 SOUTH_HAMS: + 2025-01-01: 2491.75 2026-01-01: 2615.22 SOUTH_HOLLAND: + 2025-01-01: 2205.31 2026-01-01: 2278.20 SOUTH_KESTEVEN: + 2025-01-01: 2186.95 2026-01-01: 2260.00 SOUTH_LANARKSHIRE: 2025-01-01: 1378.85 + 2026-01-01: 1468.47 SOUTH_NORFOLK: + 2025-01-01: 2367.89 2026-01-01: 2482.87 SOUTH_OXFORDSHIRE: + 2025-01-01: 2474.44 2026-01-01: 2597.57 SOUTH_RIBBLE: + 2025-01-01: 2352.12 2026-01-01: 2442.66 SOUTH_STAFFORDSHIRE: + 2025-01-01: 2219.66 2026-01-01: 2313.67 SOUTH_TYNESIDE: + 2025-01-01: 2311.18 2026-01-01: 2434.43 SOUTHAMPTON: + 2025-01-01: 2266.44 2026-01-01: 2381.48 SOUTHEND_ON_SEA: + 2025-01-01: 2154.65 2026-01-01: 2265.17 SOUTHWARK: + 2025-01-01: 1877.90 2026-01-01: 1967.26 SPELTHORNE: + 2025-01-01: 2412.78 2026-01-01: 2526.44 ST_ALBANS: + 2025-01-01: 2305.95 2026-01-01: 2419.22 ST_HELENS: + 2025-01-01: 2288.53 2026-01-01: 2403.38 STAFFORD: + 2025-01-01: 2210.78 2026-01-01: 2302.68 STAFFORDSHIRE_MOORLANDS: + 2025-01-01: 2240.43 2026-01-01: 2338.21 STEVENAGE: + 2025-01-01: 2281.28 2026-01-01: 2391.97 STIRLING: 2025-01-01: 1611.78 + 2026-01-01: 1752.87 STOCKPORT: + 2025-01-01: 2475.31 2026-01-01: 2618.90 STOCKTON_ON_TEES: + 2025-01-01: 2468.74 2026-01-01: 2589.83 STOKE_ON_TRENT: + 2025-01-01: 2078.34 2026-01-01: 2183.12 STRATFORD_ON_AVON: + 2025-01-01: 2379.91 2026-01-01: 2484.17 STROUD: + 2025-01-01: 2369.37 2026-01-01: 2491.36 SUNDERLAND: + 2025-01-01: 2092.79 2026-01-01: 2197.14 SURREY_HEATH: + 2025-01-01: 2467.86 2026-01-01: 2585.16 SUTTON: + 2025-01-01: 2269.72 2026-01-01: 2378.64 SWALE: + 2025-01-01: 2305.72 2026-01-01: 2405.65 SWANSEA: + 2025-01-01: 2142.88 2026-01-01: 2238.29 SWINDON: + 2025-01-01: 2317.63 2026-01-01: 2438.10 TAMESIDE: + 2025-01-01: 2311.80 2026-01-01: 2447.21 TAMWORTH: + 2025-01-01: 2209.81 2026-01-01: 2300.76 TANDRIDGE: + 2025-01-01: 2471.62 2026-01-01: 2594.85 TEIGNBRIDGE: + 2025-01-01: 2512.83 2026-01-01: 2643.12 TELFORD_AND_WREKIN: + 2025-01-01: 2146.19 2026-01-01: 2256.26 TENDRING: + 2025-01-01: 2178.46 2026-01-01: 2269.63 TEST_VALLEY: + 2025-01-01: 2196.53 2026-01-01: 2305.52 TEWKESBURY: + 2025-01-01: 2226.55 2026-01-01: 2340.53 THANET: + 2025-01-01: 2391.23 2026-01-01: 2490.90 THREE_RIVERS: + 2025-01-01: 2306.47 2026-01-01: 2422.31 THURROCK: + 2025-01-01: 2145.06 2026-01-01: 2254.68 TONBRIDGE_AND_MALLING: + 2025-01-01: 2374.77 2026-01-01: 2471.83 TORBAY: + 2025-01-01: 2350.64 2026-01-01: 2470.25 TORFAEN: + 2025-01-01: 2059.50 2026-01-01: 2155.68 TORRIDGE: + 2025-01-01: 2479.12 2026-01-01: 2601.42 TOWER_HAMLETS: + 2025-01-01: 1754.57 2026-01-01: 1837.78 TRAFFORD: + 2025-01-01: 2122.54 2026-01-01: 2291.70 TUNBRIDGE_WELLS: + 2025-01-01: 2347.20 2026-01-01: 2446.15 UTTLESFORD: + 2025-01-01: 2237.45 2026-01-01: 2333.82 VALE_OF_GLAMORGAN: + 2025-01-01: 2093.96 2026-01-01: 2231.54 VALE_OF_WHITE_HORSE: + 2025-01-01: 2456.82 2026-01-01: 2577.44 WAKEFIELD: + 2025-01-01: 2185.93 2026-01-01: 2296.89 WALSALL: + 2025-01-01: 2498.27 2026-01-01: 2627.48 WALTHAM_FOREST: + 2025-01-01: 2277.65 2026-01-01: 2386.96 WANDSWORTH: + 2025-01-01: 997.75 2026-01-01: 1028.21 WARRINGTON: + 2025-01-01: 2281.40 2026-01-01: 2447.61 WARWICK: + 2025-01-01: 2356.53 2026-01-01: 2461.55 WATFORD: + 2025-01-01: 2343.38 2026-01-01: 2446.70 WAVERLEY: + 2025-01-01: 2483.85 2026-01-01: 2604.87 WEALDEN: + 2025-01-01: 2608.44 2026-01-01: 2728.43 WELWYN_HATFIELD: + 2025-01-01: 2333.46 2026-01-01: 2452.26 WEST_BERKSHIRE: + 2025-01-01: 2382.84 2026-01-01: 2505.37 WEST_DEVON: + 2025-01-01: 2574.29 2026-01-01: 2705.33 WEST_DUNBARTONSHIRE: 2025-01-01: 1559.86 + 2026-01-01: 1681.53 WEST_LANCASHIRE: + 2025-01-01: 2362.12 2026-01-01: 2456.23 WEST_LINDSEY: + 2025-01-01: 2279.77 2026-01-01: 2354.25 WEST_LOTHIAN: 2025-01-01: 1515.45 + 2026-01-01: 1627.59 +WEST_NORTHAMPTONSHIRE: + 2025-01-01: 2362.51 + 2026-01-01: 2486.66 WEST_OXFORDSHIRE: + 2025-01-01: 2443.88 2026-01-01: 2566.95 WEST_SUFFOLK: + 2025-01-01: 2243.00 2026-01-01: 2351.47 WESTMINSTER: + 2025-01-01: 1019.00 2026-01-01: 1049.55 +WESTMORLAND_AND_FURNESS: + 2025-01-01: 2389.00 + 2026-01-01: 2507.99 WIGAN: + 2025-01-01: 2031.28 2026-01-01: 2152.68 WILTSHIRE: + 2025-01-01: 2443.40 2026-01-01: 2571.78 WINCHESTER: + 2025-01-01: 2251.22 2026-01-01: 2359.76 WINDSOR_AND_MAIDENHEAD: + 2025-01-01: 1823.50 2026-01-01: 1952.62 WIRRAL: + 2025-01-01: 2381.66 2026-01-01: 2500.59 WOKING: + 2025-01-01: 2482.03 2026-01-01: 2598.04 WOKINGHAM: + 2025-01-01: 2376.11 2026-01-01: 2497.70 WOLVERHAMPTON: + 2025-01-01: 2413.98 2026-01-01: 2538.99 WORCESTER: + 2025-01-01: 2233.93 2026-01-01: 2405.81 WORTHING: + 2025-01-01: 2343.12 2026-01-01: 2456.13 WREXHAM: + 2025-01-01: 2192.89 2026-01-01: 2308.88 WYCHAVON: + 2025-01-01: 2200.98 2026-01-01: 2373.19 WYRE: + 2025-01-01: 2365.73 2026-01-01: 2460.53 WYRE_FOREST: + 2025-01-01: 2327.49 2026-01-01: 2512.47 YORK: + 2025-01-01: 2175.05 2026-01-01: 2287.15 diff --git a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml index 8b8404de9e..373236e552 100644 --- a/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml +++ b/policyengine_uk/parameters/gov/local_authorities/council_tax/band_ratios/scotland.yaml @@ -1,4 +1,4 @@ -description: Statutory council tax band proportions for Scotland, relative to Band D. Bands E to H were increased from 1 April 2017. +description: Statutory council tax band proportions for Scotland, relative to Band D. Bands A to D have been unchanged since 1993; SSI 2016/368 substituted a new proportion in section 74(1) of the Local Government Finance Act 1992, raising bands E to H with effect for financial years beginning on or after 1 April 2017. metadata: economy: false propagate_metadata_to_children: true @@ -6,23 +6,27 @@ metadata: period: year label: Scotland council tax band ratios reference: - - title: Local Government Finance Act 1992, section 5 - href: https://www.legislation.gov.uk/ukpga/1992/14/section/5 - - title: The Council Tax (Substitution of Proportion) (Scotland) Order 2016 - href: https://www.legislation.gov.uk/ssi/2016/123/made + - title: Local Government Finance Act 1992, section 74 (proportion 6:7:8:9:11:13:15:18 as originally enacted) + href: https://www.legislation.gov.uk/ukpga/1992/14/section/74/enacted + - title: The Council Tax (Substitution of Proportion) (Scotland) Order 2016 (SSI 2016/368), article 2 (proportion 240:280:320:360:473:585:705:882 for financial years from 1 April 2017) + href: https://www.legislation.gov.uk/ssi/2016/368/article/2/made A: - 2017-04-01: 0.666666667 # 2/3 + 1993-04-01: 0.666666667 # 6/9, and 240/360 from 2017 B: - 2017-04-01: 0.777777778 # 7/9 + 1993-04-01: 0.777777778 # 7/9, and 280/360 from 2017 C: - 2017-04-01: 0.888888889 # 8/9 + 1993-04-01: 0.888888889 # 8/9, and 320/360 from 2017 D: - 2017-04-01: 1.000000000 # 1/1 + 1993-04-01: 1.000000000 # 9/9, and 360/360 from 2017 E: + 1993-04-01: 1.222222222 # 11/9 2017-04-01: 1.313888889 # 473/360 F: - 2017-04-01: 1.625000000 # 13/8 + 1993-04-01: 1.444444444 # 13/9 + 2017-04-01: 1.625000000 # 585/360 G: - 2017-04-01: 1.958333333 # 47/24 + 1993-04-01: 1.666666667 # 15/9 + 2017-04-01: 1.958333333 # 705/360 H: - 2017-04-01: 2.450000000 # 49/20 + 1993-04-01: 2.000000000 # 18/9 + 2017-04-01: 2.450000000 # 882/360 diff --git a/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml b/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml index 4f0fae6fe3..b20b567ee0 100644 --- a/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml @@ -215,8 +215,8 @@ local_authority: CITY_OF_EDINBURGH council_tax_band: H output: - council_tax_band_d_amount: 1563.51 - simulated_council_tax: 3830.6 + council_tax_band_d_amount: 1626.05 + simulated_council_tax: 3983.82 - name: "Band D identity: liability equals the Band D amount in Maidstone" period: 2026 @@ -237,3 +237,123 @@ output: council_tax_band_d_amount: 2502.59 simulated_council_tax: 2502.59 + +- name: "Fiscal 2025 carries its own Band D level in England (not the 2026-27 one)" + period: 2025 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + local_authority: MAIDSTONE + council_tax_band: D + output: + council_tax_band_d_amount: 2403.78 + simulated_council_tax: 2403.78 + +- name: "Fiscal 2025 carries its own Band D level in Wales" + period: 2025 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: WALES + local_authority: CARDIFF + council_tax_band: D + output: + council_tax_band_d_amount: 1926.18 + simulated_council_tax: 1926.18 + +- name: "Scotland Band H at 2025 uses the 2025-26 Band D level" + period: 2025 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SCOTLAND + local_authority: CITY_OF_EDINBURGH + council_tax_band: H + output: + council_tax_band_d_amount: 1563.51 + simulated_council_tax: 3830.60 + +- name: "Scotland Band H before April 2017 used the original 18/9 proportion" + period: 2016 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SCOTLAND + local_authority: CITY_OF_EDINBURGH + council_tax_band: H + output: + council_tax_band_d_amount: 1563.51 + simulated_council_tax: 3127.02 + +- name: "A 2023 unitary authority resolves to its own Band D amount" + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_WEST + local_authority: SOMERSET + council_tax_band: D + output: + council_tax_band_d_amount: 2560.59 + simulated_council_tax: 2560.59 + +- name: "Westmorland and Furness, a 2023 unitary, loads at 2025" + period: 2025 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: NORTH_WEST + local_authority: WESTMORLAND_AND_FURNESS + council_tax_band: D + output: + council_tax_band_d_amount: 2389.00 + simulated_council_tax: 2389.00 diff --git a/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py b/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py index 725ac12ca2..4e72f9f956 100644 --- a/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py +++ b/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py @@ -7,9 +7,13 @@ class council_tax_band_d_amount(Variable): label = "Band D council tax amount" documentation = ( "The Band D council tax amount set by the household's local authority, " - "before discounts, exemptions or Council Tax Reduction. Only one " - "year of data is loaded (2026-27 for England and Wales, 2025-26 for " - "Scotland), so earlier years are held flat backwards." + "before discounts, exemptions or Council Tax Reduction. For England " + "and Wales this is the area figure, which includes the county, police, " + "fire, combined authority and parish or community council precepts as " + "well as the billing authority's own charge; for Scotland it excludes " + "the separately billed water and waste water charges. Fiscal 2025 and " + "2026 are loaded for all three nations, so earlier years are held flat " + "backwards from 2025." ) definition_period = YEAR unit = GBP @@ -18,8 +22,8 @@ class council_tax_band_d_amount(Variable): def formula(household, period, parameters): la = household("local_authority", period).decode_to_str() amounts = parameters(period).gov.local_authorities.council_tax.band_d.amounts - # Dict lookup rather than bracket indexing: Northern Ireland (domestic - # rates, not council tax) and six post-2021 unitary authorities absent - # from the LocalAuthority enum have no Band D amount, and should return - # zero rather than raise. + # Dict lookup rather than bracket indexing: the LocalAuthority enum + # also carries Northern Ireland districts (domestic rates, not council + # tax) and historical pre-2023 English districts, neither of which has + # a Band D amount, so those should return zero rather than raise. return np.array([amounts._children.get(a, 0) for a in la], dtype=float) diff --git a/policyengine_uk/variables/household/demographic/locations.py b/policyengine_uk/variables/household/demographic/locations.py index 2b96b369e9..aa49857840 100644 --- a/policyengine_uk/variables/household/demographic/locations.py +++ b/policyengine_uk/variables/household/demographic/locations.py @@ -291,6 +291,7 @@ class LocalAuthority(Enum): CORNWALL = "Cornwall" COTSWOLD = "Cotswold" COUNTY_DURHAM = "County Durham" + CUMBERLAND = "Cumberland" COVENTRY = "Coventry" CRAVEN = "Craven" CRAWLEY = "Crawley" @@ -572,6 +573,7 @@ class LocalAuthority(Enum): WEST_DUNBARTONSHIRE = "West Dunbartonshire" WEST_LANCASHIRE = "West Lancashire" WEST_LINDSEY = "West Lindsey" + WEST_NORTHAMPTONSHIRE = "West Northamptonshire" WEST_LOTHIAN = "West Lothian" WEST_NORTHAMPTONSHIRE = "West Northamptonshire" WEST_OXFORDSHIRE = "West Oxfordshire" From 283b0ae20ee7a0d993a2c83c582c2c0931d7fa5d Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Wed, 7 Oct 2026 10:34:37 +0100 Subject: [PATCH 3/5] Keep main's April 2023 unitaries in LocalAuthority; test Northern Ireland, an abolished district and the missing-authority default; document the authority context Main already added the six unitaries (52f428184), so composing this branch with it defined CUMBERLAND and WEST_NORTHAMPTONSHIRE twice and the package failed to import (TypeError: 'CUMBERLAND' already defined). Every Band D row still resolves to an enum member (350 of 350). Co-Authored-By: Claude Opus 5.5 --- .../council_tax/simulated_council_tax.yaml | 79 +++++++++++++++++++ .../council_tax/council_tax_band_d_amount.py | 14 +++- .../household/demographic/locations.py | 2 - 3 files changed, 92 insertions(+), 3 deletions(-) diff --git a/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml b/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml index b20b567ee0..f736d70c19 100644 --- a/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax/simulated_council_tax.yaml @@ -357,3 +357,82 @@ output: council_tax_band_d_amount: 2389.00 simulated_council_tax: 2389.00 + +- name: "North Yorkshire, a 2023 unitary, resolves to its own Band D amount" + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: YORKSHIRE + local_authority: NORTH_YORKSHIRE + council_tax_band: D + output: + council_tax_band_d_amount: 2544.34 + simulated_council_tax: 2544.34 + +- name: "Northern Ireland levies domestic rates, so there is no Band D amount or council tax" + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: NORTHERN_IRELAND + local_authority: BELFAST + council_tax_band: D + output: + council_tax_band_d_amount: 0 + simulated_council_tax: 0 + +- name: "A district abolished in April 2023 (Allerdale) has no Band D amount" + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: NORTH_WEST + local_authority: ALLERDALE + council_tax_band: D + output: + council_tax_band_d_amount: 0 + simulated_council_tax: 0 + +- name: "With no local authority supplied, the household takes the enum default, Maidstone" + period: 2026 + absolute_error_margin: 0.01 + input: + people: + person: + age: 40 + benunits: + benunit: + members: [person] + households: + household: + members: [person] + region: SOUTH_EAST + council_tax_band: D + output: + council_tax_band_d_amount: 2502.59 + simulated_council_tax: 2502.59 diff --git a/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py b/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py index 4e72f9f956..fbb11f0f46 100644 --- a/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py +++ b/policyengine_uk/variables/gov/local_authorities/council_tax/council_tax_band_d_amount.py @@ -13,7 +13,19 @@ class council_tax_band_d_amount(Variable): "well as the billing authority's own charge; for Scotland it excludes " "the separately billed water and waste water charges. Fiscal 2025 and " "2026 are loaded for all three nations, so earlier years are held flat " - "backwards from 2025." + "backwards from 2025.\n\n" + "Authority context: the amount is looked up from the household's " + "local_authority input, which the dataset must supply. Without it the " + "household takes the enum default (Maidstone), so a dataset that does " + "not populate local_authority charges every household Maidstone's " + "level. Microcosm UK assigns an authority to every household; the " + "Enhanced FRS does not, and reweights a national sample per authority " + "instead. Northern Ireland districts (domestic rates) and English " + "districts abolished in April 2023 have no Band D amount and return " + "zero. Downstream calibration should not consume this variable as a " + "national total until the dataset supplies local_authority; " + "policyengine-uk-data's Band D level target needs " + "PolicyEngine/policyengine-uk-data#484 (issue #483) first." ) definition_period = YEAR unit = GBP diff --git a/policyengine_uk/variables/household/demographic/locations.py b/policyengine_uk/variables/household/demographic/locations.py index aa49857840..2b96b369e9 100644 --- a/policyengine_uk/variables/household/demographic/locations.py +++ b/policyengine_uk/variables/household/demographic/locations.py @@ -291,7 +291,6 @@ class LocalAuthority(Enum): CORNWALL = "Cornwall" COTSWOLD = "Cotswold" COUNTY_DURHAM = "County Durham" - CUMBERLAND = "Cumberland" COVENTRY = "Coventry" CRAVEN = "Craven" CRAWLEY = "Crawley" @@ -573,7 +572,6 @@ class LocalAuthority(Enum): WEST_DUNBARTONSHIRE = "West Dunbartonshire" WEST_LANCASHIRE = "West Lancashire" WEST_LINDSEY = "West Lindsey" - WEST_NORTHAMPTONSHIRE = "West Northamptonshire" WEST_LOTHIAN = "West Lothian" WEST_NORTHAMPTONSHIRE = "West Northamptonshire" WEST_OXFORDSHIRE = "West Oxfordshire" From 8b18c4753a0fb00c4972c070a298f317ebfa6bfa Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Fri, 9 Oct 2026 18:02:58 +0100 Subject: [PATCH 4/5] Rename changelog fragment to council-tax-computed-liability.added.md (review: typed fragment) Co-Authored-By: Claude Opus 5.5 --- ...puted-liability.md => council-tax-computed-liability.added.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog.d/{council-tax-computed-liability.md => council-tax-computed-liability.added.md} (100%) diff --git a/changelog.d/council-tax-computed-liability.md b/changelog.d/council-tax-computed-liability.added.md similarity index 100% rename from changelog.d/council-tax-computed-liability.md rename to changelog.d/council-tax-computed-liability.added.md From 0fb7c528f6c1b88f74ea31e8065d3f3f55ea443b Mon Sep 17 00:00:00 2001 From: vahid-ahmadi Date: Wed, 21 Oct 2026 09:20:20 +0100 Subject: [PATCH 5/5] Restate list-valued parameters only through routes that accept lists The restatement property test drew any stated parameter and any route. Scenario.parameter_changes types its values as numbers and booleans, so a draw of the list-valued gov.dwp.universal_credit.means_test.capital.person_sources through that route failed Scenario validation before any check ran. The council tax parameters this branch adds shift the derandomised draws onto that case in the merge queue. List values now use the other routes, and an explicit example pins the list restatement through the reform dict. Co-Authored-By: Claude Opus 5.5 --- .../tests/test_dated_reform_routes.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/policyengine_uk/tests/test_dated_reform_routes.py b/policyengine_uk/tests/test_dated_reform_routes.py index 21bdd923ec..7bfffd350d 100644 --- a/policyengine_uk/tests/test_dated_reform_routes.py +++ b/policyengine_uk/tests/test_dated_reform_routes.py @@ -1927,12 +1927,27 @@ def restatements(draw): stop = start + datetime.timedelta( days=draw(st.integers(0, (ends - start).days - 1)) ) - route = draw(st.sampled_from(sorted(ROUTES))) + # Scenario.parameter_changes types its values as numbers and booleans, so + # a list-valued parameter (such as the Universal Credit capital sources) + # is restated through the other routes only. + routes = sorted(ROUTES) + if not isinstance(value, (int, float, bool)): + routes.remove("parameter_changes") + route = draw(st.sampled_from(routes)) return name, start, stop, value, route @PROPERTY_SETTINGS @given(change=restatements()) +@example( + change=( + "gov.dwp.universal_credit.means_test.capital.person_sources", + datetime.date(2013, 4, 29), + datetime.date(2013, 4, 29), + [], + "reform_dict", + ) +) def test_restating_a_parameters_own_value_changes_nothing(change): name, start, stop, value, route = change simulation = ROUTES[route](as_dict(name, start, stop, value))