Methodology & sources

← back

Overtaxed makes an estimate from public records. It is not tax or legal advice. Everything below is transparent so you can check our work.

The bigger picture: the potential impact

~$21.1B/yr
projected over-payment across US owner-occupied homes
80M/yr
UK mis-banding (order of magnitude)

We measure $466,563,956/yr of regressive over-assessment in Cook County, live over real parcels. Scaling that by owner-occupied homes (Cook's ~1.9M residential parcels vs ~86M US owner-occupied homes) gives an order-of-magnitude US figure of ~$21.1B a year. This is a transparent projection, not a measurement, but it isn't a guess: independent national studies find the sameregressive assessment pattern across most US jurisdictions (Avenancio-León & Howard, The Assessment Gap, QJE 2022, ~118M homes; C. Berry, Reassessing the Property Tax, Univ. of Chicago). The UK figure is ~400Kwidely-reported mis-banded homes × a typical one-band annual error.

The point: Cook County is one instance of a national, systemic bias, and the exact same pipeline already generalises (we added Allegheny County and the UK with no code changes).

Live data (loaded into ClickHouse now)

UK sales (Land Registry)6,056,590
Cook County sales (arms-length)69,388
Allegheny County assessments456,151
Cook County parcels (geo+address)1,586,871
UK Band D amounts (gov.uk, live)135
Allegheny County sales (arms-length)52,321
Cook County assessments1,586,890

Computed live (no hardcoded numbers)

The actual ClickHouse queries

Nothing here is mocked. These are the real queries behind the answers. ClickHouse is the primary database; every figure is computed live over millions of rows.

Regressivity: PRD & CODIAAO uniformity science, sub-second
-- IAAO uniformity metrics (PRD, COD) over every sold parcel
WITH ratios AS (
  SELECT a.assessed_value / ls.sp AS ratio,
         a.assessed_value AS av, ls.sp AS sp
  FROM overtaxed.assessments a
  INNER JOIN (                                -- latest_sales MV (AggregatingMergeTree)
    SELECT pin, argMaxMerge(sp) AS sp
    FROM overtaxed.latest_sales GROUP BY pin
  ) ls USING (pin)
  WHERE a.region = 'Cook County'
    AND a.assessed_value / ls.sp BETWEEN 0.2 AND 3.0
)
SELECT count()                                  AS n,
       round(avg(ratio) / (sum(av)/sum(sp)), 4) AS prd,  -- Price-Related Differential
       round(100 * avg(abs(ratio - m)) / m, 2)  AS cod   -- Coefficient of Dispersion
FROM ratios
CROSS JOIN (SELECT quantileExact(0.5)(ratio) AS m FROM ratios);
The Tax Divide: spatial grid1.6M parcels to ~1,800 cells, ~200 ms
-- The Tax Divide: 1.6M parcels -> ~1,800 map cells in one pass
SELECT round(lat, 2) AS lat, round(lng, 2) AS lng,
       count()                        AS n,
       avg(a.assessed_value / ls.sp)  AS ratio
FROM overtaxed.parcels p
INNER JOIN overtaxed.assessments a ON a.pin = p.pin
INNER JOIN (
  SELECT pin, argMaxMerge(sp) AS sp FROM overtaxed.latest_sales GROUP BY pin
) ls ON ls.pin = p.pin
WHERE a.region = 'Cook County'
GROUP BY lat, lng
HAVING n >= 8;
OLTP + OLAP federation: postgresql()Postgres joined to ClickHouse in one statement
-- One query across Postgres (OLTP) + ClickHouse (OLAP)
SELECT s.address, a.assessed_value, ls.sp AS last_sale
FROM postgresql('<pg-host>:5432', 'overtaxed', 'saved_properties', ...) AS s
LEFT JOIN overtaxed.assessments a ON a.pin = s.pin
LEFT JOIN (
  SELECT pin, argMax(sale_price, sale_date) AS sp
  FROM overtaxed.sales GROUP BY pin
) ls ON ls.pin = s.pin;
Zero-ETL ingestion: url()Raw government CSVs read straight off HTTP
-- Zero-ETL: ClickHouse reads the gov CSV straight off HTTP
INSERT INTO overtaxed.sales
SELECT ... FROM url(
  'https://.../pp-complete.csv', 'CSVWithNames'
);

Reference inputs (statutory / published, with sources)

These few values are external inputs (not derivable from sales data). They live in one place, lib/assumptions.ts, each cited:

Cook County effective tax rate~2.5% · Cook County Treasurer
Cook County assessment level10% of market · 35 ILCS 200
UK band ratios (A–H vs D)statutory · LGFA 1992 s.5
UK 1991 band value rangesstatutory · SI 1992/550
UK 1991 back-cast divisorNationwide / HM Land Registry HPI

Honest limitations