Skip to main content
Free UK property data API Start free →
Back to Blog
Consumer Guides Dec 22, 2025 · 9 min read

How Much Is My Council Tax? The Exact Formula (and Why Postcode Estimates Are Wrong)

Your council tax bill depends on your property s band and your local authority s Band D rate — not your postcode. Here s how to calculate the exact annual charge per property, and how to look it up programmatically via API.

Homedata Team · Updated

The short answer: it depends on two things — your property's council tax band, and the rate your local authority charges. They're related but separate. Your band is set by the Valuation Office Agency (VOA) and is fixed to the property. Your local authority sets the annual charge every April. Multiply one by the other and you have your actual bill.

Most online calculators get this wrong. They estimate by postcode — giving you the average charge in your area, not the actual charge for your specific address. Since three houses on the same street can be in three different bands, a postcode estimate can be hundreds of pounds off.

Here's how to get the real number.

Step 1: Find your council tax band

Every residential property in England, Scotland, and Wales has a council tax band — A through H in England and Scotland (A through I in Wales, which revalued in 2003). The band was assigned by the Valuation Office Agency based on the estimated market value of the property in April 1991. It hasn't been updated since.

Crucially, the band belongs to the property, not the postcode. A large Victorian terrace and a small modern flat in the same postcode will almost certainly be in different bands. Postcode-level estimates paper over this — per-property lookup is the only way to get the right answer.

You can look up your band on the GOV.UK council tax band checker (for England and Wales) or the Scottish Assessors Association for Scotland. If you're building a tool that needs to do this programmatically for many properties, the Homedata Council Tax API handles it at scale.

Step 2: Find your local authority's Band D rate

Band D is the reference rate — the amount a Band D property pays in your council area each year. Every other band is a fixed fraction of it:

Band Fraction of Band D Example: £2,000 Band D Example: £2,400 Band D
A6/9 (66.7%)£1,333£1,600
B7/9 (77.8%)£1,556£1,867
C8/9 (88.9%)£1,778£2,133
D9/9 (100%)£2,000£2,400
E11/9 (122.2%)£2,444£2,933
F13/9 (144.4%)£2,889£3,467
G15/9 (166.7%)£3,333£4,000
H18/9 (200%)£4,000£4,800

Each local authority publishes its Band D rate annually — typically in February or March, taking effect from April. For 2026/27, most English councils set rates at or close to the government's permitted maximum. Check the GOV.UK council tax statistics page for the current Band D figures by local authority — rates range from under £1,000 in parts of central London to over £2,600 in some county and district areas.

GOV.UK publishes the annual council tax statistics including Band D rates by local authority. There are approximately 350 billing authorities in England — county councils, unitary authorities, metropolitan districts, and London boroughs, each with its own rate.

Step 3: Calculate your actual annual bill

The formula is straightforward:

Annual charge = Band D rate × band multiplier

# Example: Band C property in Manchester (Band D rate ~£2,050/yr)
Annual charge = £2,050 × (8/9) = £1,822

# Example: Band E property in Surrey (Band D rate ~£2,400/yr)
Annual charge = £2,400 × (11/9) = £2,933

This is before any discounts. The standard charge assumes two adults living in the property. Common reductions:

  • 25% discount — if only one adult lives there (single person discount)
  • 50% discount — if all occupants are "disregarded" (full-time students, severely mentally impaired, care workers, and others)
  • 100% exempt — unoccupied properties in certain circumstances, properties occupied solely by students
  • Council Tax Support (CTS) — means-tested reduction, varies by local authority

Why postcode estimates are misleading. A postcode in Leeds might contain Band A flats and Band G detached houses on the same street. An estimate based on average charges across that postcode could show £1,900/yr for a property actually in Band A (£1,200) or Band G (£3,400). That's a difference that matters — for buyers budgeting affordability, landlords calculating yield, and mortgage affordability assessments.

Getting exact figures programmatically

If you're building a property tool — a portal, a mortgage calculator, a buy-to-let analyser — you need per-property council tax data, not postcode estimates. The approach: look up the band for the specific UPRN, then apply the local authority rate.

Step 1: Look up the band by UPRN

# cURL
curl "https://api.homedata.co.uk/api/council_tax_band/?uprn=100023336956" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# Response
{
  "uprn": 100023336956,
  "address": "FLAT 4, 22 BRUNSWICK TERRACE, HOVE, BN3 1HJ",
  "postcode": "BN3 1HJ",
  "council_tax_band": "C",
  "source": "cached"
}

Step 2: Apply the local authority Band D rate

With the band confirmed, apply your LA's published Band D rate to get the actual annual charge:

import requests

API_KEY = "your_api_key"

# Band D multipliers — fixed ratios, same across all councils
BAND_MULTIPLIERS = {
    "A": 6/9,
    "B": 7/9,
    "C": 8/9,
    "D": 9/9,
    "E": 11/9,
    "F": 13/9,
    "G": 15/9,
    "H": 18/9,
}

# 2024/25 Band D rates — sample local authorities
# Source: GOV.UK council tax statistics, updated annually
BAND_D_RATES = {
    "Westminster":           882,
    "Wandsworth":            900,
    "City of London":        1,029,
    "City of Birmingham":    2,068,
    "Manchester":            2,050,
    "Leeds":                 1,928,
    "Brighton and Hove":     2,262,
    "Cornwall":              2,374,
    "Somerset":              2,421,
    "Dorset":                2,437,
    # Average England 2024/25
    "_average":              2,171,
}

def council_tax_annual_charge(uprn: int, local_authority: str) -> dict:
    """
    Returns the exact annual council tax charge for a property.
    Per-property accuracy via UPRN band lookup + local authority Band D rate.
    """
    # Step 1: Look up the band for this specific property
    resp = requests.get(
        "https://api.homedata.co.uk/api/council_tax_band/",
        params={"uprn": uprn},
        headers={"Authorization": f"Api-Key {API_KEY}"},
    )
    resp.raise_for_status()
    data = resp.json()
    band = data["council_tax_band"]

    # Step 2: Apply band multiplier to local authority Band D rate
    band_d = BAND_D_RATES.get(local_authority, BAND_D_RATES["_average"])
    multiplier = BAND_MULTIPLIERS[band]
    annual_charge = round(band_d * multiplier)
    monthly_estimate = round(annual_charge / 12)

    return {
        "uprn": uprn,
        "address": data["address"],
        "band": band,
        "local_authority": local_authority,
        "band_d_rate": band_d,
        "annual_charge": annual_charge,
        "monthly_estimate": monthly_estimate,
    }


result = council_tax_annual_charge(100023336956, "Brighton and Hove")
print(result)
# {
#   "uprn": 100023336956,
#   "address": "FLAT 4, 22 BRUNSWICK TERRACE, HOVE, BN3 1HJ",
#   "band": "C",
#   "local_authority": "Brighton and Hove",
#   "band_d_rate": 2262,
#   "annual_charge": 2011,
#   "monthly_estimate": 168
# }

JavaScript version:

const BAND_MULTIPLIERS = {
  A: 6/9, B: 7/9, C: 8/9, D: 9/9,
  E: 11/9, F: 13/9, G: 15/9, H: 18/9,
};

async function councilTaxAnnualCharge(uprn, localAuthority, bandDRate) {
  const resp = await fetch(
    `https://api.homedata.co.uk/api/council_tax_band/?uprn=${uprn}`,
    { headers: { Authorization: "Api-Key YOUR_API_KEY" } }
  );
  const data = await resp.json();
  const band = data.council_tax_band;
  const annualCharge = Math.round(bandDRate * BAND_MULTIPLIERS[band]);

  return {
    address: data.address,
    band,
    localAuthority,
    annualCharge,
    monthlyEstimate: Math.round(annualCharge / 12),
  };
}

const result = await councilTaxAnnualCharge(100023336956, "Brighton and Hove", 2262);
console.log(result);
// { band: "C", annualCharge: 2011, monthlyEstimate: 168 }

Why this matters for property tools

Mortgage affordability

Mortgage lenders factor council tax into affordability assessments. A buyer looking at two properties in the same postcode — a Band C flat and a Band F house — faces a £1,400/year difference in council tax alone. Showing accurate per-property costs, not postcode averages, helps buyers make informed decisions before they apply.

Rental yield calculators

For buy-to-let investments, council tax affects net yield when the landlord is liable (empty periods, HMOs billed to the owner). A Band G property in a high-rate council area can cost £4,000+/year in council tax during void periods — a material risk that postcode estimates understate.

def net_yield(
    annual_rent: float,
    property_value: float,
    uprn: int,
    local_authority: str,
    void_weeks_per_year: int = 4,
) -> dict:
    """Rental yield adjusted for council tax during void periods."""
    ct = council_tax_annual_charge(uprn, local_authority)
    void_ct_cost = ct["annual_charge"] * (void_weeks_per_year / 52)
    net_income = annual_rent - void_ct_cost
    gross_yield = (annual_rent / property_value) * 100
    net_yield = (net_income / property_value) * 100

    return {
        "gross_yield": round(gross_yield, 2),
        "net_yield": round(net_yield, 2),
        "council_tax_band": ct["band"],
        "void_ct_cost_per_year": round(void_ct_cost),
    }

Property listings

Council tax band is one of the most-searched filters on property portals. Buyers want the annual charge estimate alongside the asking price — ideally broken down by month. This is trivial to surface when you have the band and your local authority lookup table. It's also a legal disclosure requirement in Scotland.

Conveyancing and home reports

Solicitors must report council tax band to buyers as part of the property information form. Automating the lookup via UPRN — rather than asking clients to retrieve it themselves — reduces one more round-trip in the transaction.

Getting the local authority rate

The final piece of the puzzle is knowing which local authority a property belongs to, and what that authority's current Band D rate is.

Local authority can be derived from postcode — every postcode in the UK maps to a single billing authority. The Homedata API returns the postcode with every council tax response; you can cross-reference against the GOV.UK statistics table, which is published annually as a CSV. Importing that table (~350 rows) gives you a complete lookup that only needs refreshing once a year.

A fully automated pipeline looks like:

# 1. Address → UPRN
GET /api/address/find/?q=22+Brunswick+Terrace+Hove

# 2. UPRN → Band + postcode
GET /api/council_tax_band/?uprn=100023336956

# 3. Postcode → local authority (from reference table)
# e.g. BN3 → Brighton and Hove

# 4. Local authority → Band D rate (annual GOV.UK import)
# Brighton and Hove Band D 2024/25 = £2,262

# 5. Band × multiplier × Band D rate = annual charge
# C × (8/9) × £2,262 = £2,011/year = £168/month

This chain gives you a per-property annual council tax estimate accurate to the band — the same accuracy as GOV.UK's own checker, delivered programmatically at any scale.

Common questions

Can I challenge my band?

Yes. If you believe your band is wrong, you can challenge it with the VOA. Grounds for a challenge include: the property was incorrectly valued in 1991, there's been a material change to the property, or neighbouring comparable properties are in a lower band. Challenges occasionally succeed — and importantly, can result in backdated refunds. About 1 in 4 challenges succeeds, per VOA data.

Why is my neighbour in a different band?

Same street, different bands is more common than people expect. It happens because the VOA assessed each property individually in 1991 based on size, condition, and features at that time. Extensions, conversions, and improvements since then don't automatically change your band. Two identical-looking properties today might have been very different in 1991 — or one might have been assessed slightly differently.

Does band change when I buy a property?

No. The band stays with the property, not the owner or occupier. When you buy, you inherit the band. The only exception: if significant structural changes have been made that would materially alter the 1991 equivalent value, the VOA can reband — but only if you report the change or they identify it during a routine review.

Scotland and Wales

Scotland uses Bands A-H with different 1991 value thresholds (Band D: £58,001–£80,000 vs England's £68,001–£88,000). Wales revalued in 2003 and uses Bands A-I with values based on 2003 prices. The multipliers and band structure work the same way — look up the band, find your council's Band D rate, apply the ratio.

Getting started with the API

  1. Create a free Homedata account — 100 calls/month, no credit card
  2. Get your API key from the developer dashboard
  3. Look up a band: GET /api/council_tax_band/?uprn={uprn}
  4. Combine with the full Council Tax API docs and the GOV.UK Band D rates table for exact annual charges

See the Council Tax Bands API guide for a deeper look at the endpoint, parameters, and edge cases.

Start building with the free API →

100 calls/month · EPC, Land Registry, council tax, schools · No credit card

Get free API key

Per-property council tax data via API

Look up bands for any UK address. 100 free calls/month, no credit card required.

Related posts

May 7, 2026

UK Stamp Duty Calculator 2026: How Much SDLT Will You Pay?

May 7, 2026

Selling a Property After Probate: The Complete UK Guide for 2026

May 7, 2026

What Property Can I Afford in the UK? The 2026 Buyer Guide

May 7, 2026

How Do UK Mortgages Work? A Complete 2026 Guide

May 7, 2026

How Long Does It Take to Buy a House in the UK? 2026 Timeline

May 7, 2026

How Much Does Moving House Cost in the UK? 2026 Breakdown

May 7, 2026

What Is Conveyancing? The UK Step-by-Step Guide for 2026

May 7, 2026

How Do Property Auctions Work in the UK? The 2026 Investor Guide

May 4, 2026

Mansion Tax 2028? The High Value Council Tax Surcharge Explained

Apr 29, 2026

Holiday Let Rules 2026: Registration, Planning and Tax Changes for Airbnb Owners

Apr 24, 2026

Ground Rent Cap and Commonhold: What the 2026 Leasehold Reform Bill Really Changes

Apr 17, 2026

Planning Rules 2026: What Developers Need to Know After the Planning and Infrastructure Act

Apr 10, 2026

Scotland Rent Controls 2026: What Has Started, What Comes Later, and Who Is Exempt

Apr 3, 2026

Are Property Packs Coming Back? Material Information and Home Buying Reform Explained

May 1, 2026

Renters Rights Act 2026: What Landlords Must Do Now

May 6, 2026

31 May 2026 Landlord Deadline: The Renters Rights Act Information Sheet Explained

May 3, 2026

Section 21 Is Gone: How Landlords Can Repossess Property After 1 May 2026

Apr 22, 2026

EPC C by 2030: What the 2026 MEES Decision Means for Landlords

Apr 15, 2026

Building Safety Levy October 2026: What Residential Developers Must Budget For

Apr 8, 2026

Making Tax Digital for Landlords: April 2026 Start Date, Thresholds and Software Checklist

May 6, 2026

How to Scrape UK Property Listings (And Why You Probably Shouldn t)

Apr 4, 2026

UK Postcode Geocoding API: Convert Postcodes to Coordinates (Python & JS)

Apr 4, 2026

How to Bulk Export UK Property Data: Python & Node.js Guide

Mar 17, 2026

Tracking UK Property Market Activity via API: Listing Events, Price Reductions, and Deal Flow

Mar 3, 2026

UK House Price Growth by Postcode: Tracking Capital Appreciation via API

Feb 17, 2026

How to Build an Automated Property Valuation (AVM) with the Homedata API

Feb 3, 2026

Building a School Finder: Ofsted Ratings + Distance from Any UK Postcode

Jan 20, 2026

How to Calculate Property Development Feasibility in the UK

Jan 6, 2026

How to Build a Rental Yield Calculator with the Homedata API

Dec 8, 2025

Address Lookup Tutorial: Typeahead → Resolve → Enriched Property in Under 50 Lines

Nov 24, 2025

What Is a UPRN? The Complete Guide to UK Property Reference Numbers

Nov 10, 2025

EPC Ratings Explained: A Developer s Guide to Energy Performance Certificates

Oct 27, 2025

UK Flood Risk Data Explained: NAFRA2, Risk Bands, and the EA Flood Risk API

Oct 13, 2025

Council Tax Bands API: VOA Data, Band Lookup, and Use Cases

Sep 29, 2025

Build an EPC Compliance Checker with Python and the Homedata API

Apr 6, 2026

UK Census 2021 Demographics API: Get Area Data by Postcode (Python & JS)