Changelog
Every change to a rule, a formula, or a correction is recorded here with its date. Rules live in versioned data files — see sources for citations.
2026-08-15
New Jersey Chapter 123 implemented; Bergen fee, forms and deadline corrected
- Chapter 123 common level range modelled (N.J.S.A. 54:1-35a, 54:3-22(c), 54:51A-6, per NJ Assessors Handbook §§1105.19–1105.20). The ±15% corridor is multiplicative on the average ratio, not 15 percentage points: 78.00% gives 66.30%–89.70%. Inside the corridor no reduction is available; above it relief is average ratio × true value; below it the statute raises the assessment. Counties now carry a `reliefModel` flag, so the statutory test is chosen by rules data rather than by state code.
- No Bergen County municipality's Director's Ratio is encoded — none has been read from a primary source, and we do not invent ratios. Every New Jersey check therefore returns an explicit "cannot determine — Director's Ratio required" verdict instead of falling back to a generic over-assessment threshold that has no relationship to the statutory test.
- Bergen filing fee corrected from a flat $25 to the statutory schedule banded by assessed value — $5 / $25 / $100 / $150 (N.J.S.A. 54:3-21.3; N.J.A.C. 18:12A-1.6(d) and 1.7). A home assessed over $1,000,000 was being quoted a fee six times too low, and the fee gates the "not worth it" verdict.
- Both Bergen form URLs were dead (HTTP 404). Petition of Appeal now points at petappl.pdf and the comparable-sales attachment at a1compsales.pdf, both confirmed live. The county board citation moved from the timed-out co.bergen.nj.us to bergencountynj.gov.
- New Jersey's deadline is received-by, not postmark — "A postmark of a mailed petition is not sufficient" (Handbook §1105.01). Encoded as a machine-readable filing cutoff and stated on the verdict block and the evidence summary rather than left implicit.
- Still unresolved and unchanged: Cook County's residential assessment level, its Assessor-side fee, its per-township deadline calendar, and its separate evidence deadline. The Assessor's site is bot-blocked and none of it could be verified.
2026-08-08
Initial build: engine, two county rulesets, demo neighborhood
- Over-assessment engine v0.1.0: comparable selection (class / area / ±20% size / recency window), median assessment ratios, IAAO coefficient of dispersion, confidence scoring, verdict thresholds.
- County rules encoded: Cook County IL (uniformity-first, ruleset 2026-08) and Bergen County NJ (market-value, ruleset 2026-08). Several values await primary-source verification and are flagged on each page and in the project verification log.
- Synthetic demo neighborhood (Maplewood Heights, fictional) so the check runs end-to-end before real county data lands.
Which files this log tracks
One JSON file per county, and nothing else. Each carries its own version string, its deadline rule, its fee schedule, its forms, its evidence standard, the argument the board decides on, the statutory relief model, and every citation with the date that citation was last opened:
- il-cook.json — Cook County, Illinois. Ruleset 2026-08, 3 citations, oldest last verified 8 Aug 2026, 3 still awaiting primary-source verification. County page
- nj-bergen.json — Bergen County, New Jersey. Ruleset 2026-08, 5 citations, oldest last verified 8 Aug 2026, 1 still awaiting primary-source verification. County page
The version string is the month the ruleset was cut, not a release number. It appears under the answer on every county page beside the date its primary citation was last read, so the version you are looking at is the version that computed what you are looking at. If that string has not moved since you last checked, no rule behind that page has moved either.
What earns an entry, and what does not
Any edit to a county rules file. That covers the obvious cases — a changed deadline, fee, form URL, evidence standard or appeal body — and three that are easier to let slip through: a citation that turns out to point somewhere wrong, a rule the engine was applying in the wrong direction, and a value promoted from an unsourced default to a verified figure or demoted from a stated fact to a documented assumption. The last of those changes no arithmetic at all and still gets an entry, because what a reader is entitled to rely on has changed.
Rewriting an explanation does not earn one. Neither does adding a page. The log exists so that no rule moves silently, and padding it with editorial work would make the rule changes harder to find, which is the opposite of the point.
Entries also record what did not change. The 2026-08-15 entry above ends by listing four Cook County items that were left exactly as they were, because the Assessor's site could not be read. Silence there would have been the more flattering choice and the less useful one: a reader comparing the two counties needs to know that one of them got a remediation pass and the other got a shrug.
How a correction becomes an entry
The order is fixed, and the first step is the one that takes the time. A suspected error is confirmed against a primary source — the body with authority over that specific question, fetched and read, not recalled and not summarised. If the source cannot be reached, the encoded value stays exactly as it is and the item is recorded as unresolved. Nothing is quietly improved into something more plausible.
Once a source has actually been read, the JSON is edited, its lastVerified date moves, and the file is re-validated on import: the loader rejects a county with no citations, a citation missing a URL or a date, a filing fee that is not integer cents, a fee schedule with a gap or an overlap between bands, a primary argument the county does not list among its permitted ones, and — in a corridor county — any municipal ratio that arrives without a citation of its own. A rule that cannot pass those checks does not ship, so a malformed correction fails loudly at build time rather than quietly in front of a homeowner.
Then the entry is written: the date, what changed, the source it was changed against named precisely enough to re-read, and what it does to a result. “Corrected the Bergen fee” says nothing. “A home assessed over $1,000,000 was being quoted a fee six times too low, and the fee gates the ‘not worth it’ verdict” tells you whether your own answer moved.
How to check whether a figure you saw last month has moved
Three things to compare, in this order. The ruleset version on the county page: if it is unchanged, no rule in that file has been touched. The last-verified date beside it: if that has moved but the version has not, a source was re-read and confirmed the existing value — reassurance rather than change. And this page: every version bump has an entry here saying which direction the number went.
Two dates are worth putting in your own calendar rather than waiting for an entry. New Jersey's Chapter 123 average ratios are republished every 1 April, per municipality, and a ratio verified last April says nothing about this year's. Cook County's township open and close calendar is republished every session, which is why no deadline on the Cook page is computed forward from a notice date. The sources page lists the full re-check cadence, and the methodology covers the statistics, which do not change on a calendar at all.
2 counties encoded · How the verdict is reached → · Which counties are covered → · Every rule and its source →
This is an independent estimate engine. It is not your county assessor, not an appraisal and not legal or tax advice. Deadlines and fees are strict and set locally — confirm both with your county before you rely on them. Nothing you enter leaves your browser.
Pre-launch build. The estimated annual overpayment, and the filing-fee comparison the verdict is gated on, multiply through a per-county property tax rate that has not been verified against a primary source for either county — so treat the dollar figure as illustrative of the method and the ranking, not as what you would recover. Several Cook County values remain unresolved because the Assessor’s site is unreachable from the verification environment, and a New Jersey verdict is withheld entirely when the governing Director’s Ratio is unavailable, which today is every New Jersey municipality. What is verified and what is not is listed on sources.