The Municipal Page · Council on Local Relations New here? Start with the Primer →

 

Every figure traces to a source; every correction is published here, not hidden.

Method   reads: everything above

Check our work

Every number above came from somewhere. Here is where.

Every figure this site publishes carries a source and a locator, and every correction is printed here in full. This city’s ledger carries 62 corrections and 3 source discrepancies today; a fact corrected twice counts once.

Corrections — entries we revised after publishing (62)

Each of these is an entry this site published and then revised. Some are figures that changed. Some are the same figure with a fuller account of where it comes from and why we publish it over another source. What it says now, when it was revised, and why — in full, not summarised.

Correction 2026-07-23
City in-city aggregate net fiscal position, analyzed classes (Basis A)
now on the record: -$21.5M/yr dp.city.aggregate.net

rev 1 (-$22.6M/yr) was computed on the GIS-city-attribute parcel base, which omitted 127 mappable city-taxed parcels ($154.1M appraised, disproportionately commercial). Re-extracted on roll jurisdiction 054 (the taxing fact): the gap SHRINKS $1,135,447 (5.0%). This correction weakens our own central number; the story is unchanged and is not restated to compensate.

Correction 2026-07-16
Residents aged 65+
now on the record: 17.4% dp.city.pop.over65

Prior revision cited 16.42% via Neilsberg - a SECONDARY aggregator (ACS 2019-2023 vintage). The source-drift rule forbids citing a secondary characterization of a primary source. Re-sourced to the Census primary (QuickFacts / ACS 2020-2024 5-yr): 17.4%. The number did NOT hold against the primary (corrected, not merely re-labeled); the direction is unchanged - an aging town with a high, rising senior share.

Correction 2026-08-28
Extra annual city tax on the median home if the plants were gone
now on the record: $840-$1,050/yr dp.counterfactual.household

rev 1 named the Council's own derivation file (counterfactual_no_plants.md) on the visible source line, so the page appeared to cite itself. The source line now names the primary the figure actually rests on; the derivation is reclassified into the locator as "derived via" and is not stripped — the working is still reproducible from it. No value changed.

Correction 2026-08-28
Median in-city single-family (A1) appraised value
now on the record: $261,679 dp.counterfactual.median

rev 1 named the Council's own derivation file (counterfactual_no_plants.md) on the visible source line, so the page appeared to cite itself. The source line now names the primary the figure actually rests on; the derivation is reclassified into the locator as "derived via" and is not stripped — the working is still reproducible from it. No value changed.

Correction 2026-08-28
City tax rate needed to replace the PILOT from the in-city base (plants gone)
now on the record: $1.1212 per $100 (+$0.4012 on $0.72; +55.7%) dp.counterfactual.rate

rev 1 named the Council's own derivation file (counterfactual_no_plants.md) on the visible source line, so the page appeared to cite itself. The source line now names the primary the figure actually rests on; the derivation is reclassified into the locator as "derived via" and is not stripped — the working is still reproducible from it. No value changed.

Correction 2026-09-08
Total governmental expenses (accrual), FY2025
now on the record: $66,389,969 dp.cover.exp.total.fy2025

Provenance repair, not a correction: the figure, its label and its locator are unchanged from revision 1. What changed is that the FY2025 ACFR this fact has always cited in prose is now archived by the Council and openable from the page, so source_url carries it. Recorded as change_class = metadata and deliberately excluded from the published-corrections count.

Correction 2026-07-23
Coverage margin, alternate scope — city + its public-safety districts (Crime Control + Fire/EMS), ex investment, FY2025 (context, not the headline)
now on the record: −$3,975,791 dp.cover.margin.comingled.fy2025

rev 1 labeled this "(the complete figure)" and its locator framed the districts as "ruled comingled" — the pre-correction stance. The ratified citation-pass ruling (repo @e0bc0f9) went the other way: the districts are discretely presented / separate per ACFR Note 1, the city-only −$4,443,928 stays the headline, and this figure is alternate-scope context. The relabel never reached the substrate until this rev.

Correction 2026-09-08
Coverage margin WITHOUT investment earnings, FY2025
now on the record: −$4,443,928 dp.cover.margin.noinvest.fy2025

Provenance repair, not a correction: the figure, its label and its locator are unchanged from revision 1. What changed is that the FY2025 ACFR this fact has always cited in prose is now archived by the Council and openable from the page, so source_url carries it. Recorded as change_class = metadata and deliberately excluded from the published-corrections count.

Correction 2026-09-08
Own-source RECURRING governmental revenue (ex investment earnings), FY2025
now on the record: $67,050,425 dp.cover.rev.ownrecurring.fy2025

Provenance repair, not a correction: the figure, its label and its locator are unchanged from revision 1. What changed is that the FY2025 ACFR this fact has always cited in prose is now archived by the Council and openable from the page, so source_url carries it. Recorded as change_class = metadata and deliberately excluded from the published-corrections count.

Correction 2026-07-17
Net bonded debt per capita, start of the FY2016-FY2025 ACFR window (FY2016)
now on the record: $493 (FY2016) dp.debt.percapita.start

Rev 2 said $538 (FY2016), read in good faith from the FY2025 ACFR statistical table. Per the year-shift finding (see dp.series.netdebt.fy2016 rev 2), $538 is FY2015's value in every contemporaneous report; FY2016 is $493.

Correction 2026-08-31
Calories in the day basket
now on the record: 1997 kcal dp.food.household.day_kcal

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-08-31
Minutes of labor for one day of food, at the mean wage
now on the record: 11.2 minutes dp.food.household.day.minutes_mean

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-08-31
Minutes of labor for one day of food, at the median wage
now on the record: 15.3 minutes dp.food.household.day.minutes_median

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-08-31
Minutes of labor for one day of food, at the p10 wage
now on the record: 27.6 minutes dp.food.household.day.minutes_p10

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-08-31
Cost per 1,000 calories across the day basket
now on the record: $3.0287 per 1,000 kcal dp.food.household.day.usd_per_calorie

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-08-31
Cost of one adult day of food (basket v3, ten Tier-A staples, ~2,000 kcal)
now on the record: $6.0484 dp.food.household.usd_per_day

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-08-31
The same day basket at the US city average, for comparison
now on the record: $6.1916 dp.food.household.usd_per_day.national

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-08-31
Average cost per meal across the day (day total divided by three)
now on the record: $2.0161 dp.food.household.usd_per_meal_avg

Basket v3 (2026-08-28): the day was re-frozen at ~2,000 kcal rather than 1,796 -- bread 2 to 4 slices, rice 1.5 to 2 oz -- for a realistic adult maintenance day, and two item labels were corrected to their BLS series titles. Same ten items, same prices; only the quantities moved. Revision 1 was basket v2, which remains frozen and published.

Correction 2026-07-16
Local sales-tax rate
now on the record: 2.000% local (1.5% city + 0.25% crime control + 0.25% fire control) dp.fund.salestax.rate

Prior revision asserted '2.0% (Texas municipal statutory maximum)', source_type=attributed, with no page locator. Now sourced to the Comptroller's rate table with the exact component breakdown.

Correction 2026-08-31
Officeholder as of 2026-08-18
now on the record: Sherry Garrison dp.gov.council-position-1.holder

rev 1 cited the Election Register, whose latest entry is 2025 and which therefore still carried Ron Martin in Position 5. The 2026-08-18 City Council agenda names the sitting body on its own face and is both current and authoritative, so it replaces the register here and the register's one-seat lag is retired.

Correction 2026-08-31
Officeholder as of 2026-08-18
now on the record: TJ Haight dp.gov.council-position-2.holder

rev 1 cited the Election Register, whose latest entry is 2025 and which therefore still carried Ron Martin in Position 5. The 2026-08-18 City Council agenda names the sitting body on its own face and is both current and authoritative, so it replaces the register here and the register's one-seat lag is retired.

Correction 2026-08-31
Officeholder as of 2026-08-18
now on the record: Tommy Ginn dp.gov.council-position-3.holder

rev 1 cited the Election Register, whose latest entry is 2025 and which therefore still carried Ron Martin in Position 5. The 2026-08-18 City Council agenda names the sitting body on its own face and is both current and authoritative, so it replaces the register here and the register's one-seat lag is retired.

Correction 2026-08-31
Officeholder as of 2026-08-18
now on the record: Justin League dp.gov.council-position-4.holder

rev 1 cited the Election Register, whose latest entry is 2025 and which therefore still carried Ron Martin in Position 5. The 2026-08-18 City Council agenda names the sitting body on its own face and is both current and authoritative, so it replaces the register here and the register's one-seat lag is retired.

Correction 2026-08-31
Officeholder as of 2026-08-18
now on the record: Eric Ripley dp.gov.council-position-5.holder

rev 1 cited the city's Position 5 page because the Election Register had not been updated past 2025 and still carried Ron Martin, and that discrepancy was stamped on the page. The 2026-08-18 City Council agenda names Eric Ripley in Position 5 on its own face — a current, authoritative primary. The discrepancy is resolved, not merely stamped.

Correction 2026-08-31
Officeholder as of 2026-08-18
now on the record: Georgette Ford dp.gov.council-position-6.holder

rev 1 cited the Election Register, whose latest entry is 2025 and which therefore still carried Ron Martin in Position 5. The 2026-08-18 City Council agenda names the sitting body on its own face and is both current and authoritative, so it replaces the register here and the register's one-seat lag is retired.

Correction 2026-08-31
Officeholder as of 2026-08-18
now on the record: Jerry Mouton Jr. dp.gov.mayor.holder

rev 1 cited the Election Register, whose latest entry is 2025 and which therefore still carried Ron Martin in Position 5. The 2026-08-18 City Council agenda names the sitting body on its own face and is both current and authoritative, so it replaces the register here and the register's one-seat lag is retired.

Correction 2026-08-28
2026 tax-rate record vote — superseded by the structured record
now on the record: 7 for, 0 against, 0 present and not voting, 0 absent dp.hearing2026.vote

SUPERSEDED IN PLACE, not withdrawn. This figure is correct and is retained as the original capture, but it is no longer the record: the same vote now lives as structured per-member facts under dp.record.2026-08-18.city-council.tnt-26-002.vote.<member>, with the outcome and the control total. Read those. This row stays so the ledger's own history is not rewritten.

Correction 2026-08-28
2026 tax-rate record vote, members voting FOR — superseded by the structured record
now on the record: Jerry Mouton Jr, TJ Haight, Justin League, Georgette Ford, Sherry Garrison, Tommy Ginn, Eric Ripley dp.hearing2026.vote_for

SUPERSEDED IN PLACE, not withdrawn. This figure is correct and is retained as the original capture, but it is no longer the record: the same vote now lives as structured per-member facts under dp.record.2026-08-18.city-council.tnt-26-002.vote.<member>, with the outcome and the control total. Read those. This row stays so the ledger's own history is not rewritten.

Correction 2026-08-31
Deer Park City Council, 2026-05-05 — held back, then recovered
now on the record: Published on 2026-08-31, after the defect that held it was fixed. 12 votes across 12 agenda items. dp.record.2026-05-05.city-council.quarantine

rev 1 said 'Not published.' That was true when written and is no longer true. The refusal is kept on the record rather than deleted — it happened, and the reason it happened is the useful part — but the row now states the outcome instead of a stale refusal.

Correction 2026-08-31
Deer Park City Council, 2026-06-16 — held back, then recovered
now on the record: Published on 2026-08-31, after the defect that held it was fixed. 13 votes across 13 agenda items. dp.record.2026-06-16.city-council.quarantine

rev 1 said 'Not published.' That was true when written and is no longer true. The refusal is kept on the record rather than deleted — it happened, and the reason it happened is the useful part — but the row now states the outcome instead of a stale refusal.

Correction 2026-08-31
The city's published recording of this meeting — audio only
now on the record: Listen to the meeting (City of Deer Park via Granicus) — audio only dp.record.2026-07-21.city-council.video

rev 1 said 'Watch the meeting'. The same error was corrected on the 2026-08-18 row on 2026-08-30, but only on that row — the pipeline that generates this fact still emitted 'Watch', so the correction had been applied to one output and not to the thing that makes the outputs. The generator is fixed in the same pass as this row.

Correction 2026-08-31
Motions decided at this meeting, and how they were voted
now on the record: 11 decided; every one by unnamed voice acclamation; none failed dp.record.2026-08-18.city-council.motions

rev 1 said '10 by unnamed voice acclamation, 1 seat-by-seat'. The 'seat-by-seat' half is withdrawn: it implied a called roll on the tax vote, and no roll was called. Chairman spot-check of clip 1781 (2026-08-30) plus the transcript's own timings at 00:09:07-00:09:15: after 'We'll start down here' there are TEN aye-utterances in about seven seconds for a SEVEN-member body, several under 0.2 seconds and overlapping, and not one of them is attached to a name. That is a group response, not a called roll — and the count is not even reliable enough to assert seven. The tax vote differs from the other ten only in lacking an 'all in favor' call — not in producing a per-member record. This corrects an overclaim by this site, not a change in what the city did.

Correction 2026-08-30
Meeting and item this vote was taken at — settled by the clerk's own index point
now on the record: Deer Park City Council, 2026-08-18 — agenda item 6, TNT 26-002 dp.record.2026-08-18.city-council.tnt-26-002.meeting

rev 1 recorded this as an INFERENCE, and said so on the page: the § 26.06 notice publishes the vote and the rate but not the date, so the join to 2026-08-18 rested on matching motion text and rate against the Legistar agenda. It is no longer an inference. The city clerk sets per-item index points on its own recording, and index point 112266 places TNT 26-002 at 00:08:11 with the recorded vote inside its window. The city itself asserts the item; we no longer reason our way to it.

Correction 2026-08-31
The city's published recording of this meeting — audio only
now on the record: Listen to the meeting (City of Deer Park via Granicus) — audio only dp.record.2026-08-18.city-council.video

rev 1 called this 'video' and the page said 'Watch the meeting'. Both were wrong in the way that matters. The stream does carry an H.264 track, which is what a codec probe reports — but the picture is a static title card reading 'MEETING AUDIO ONLY'. The container was measured and the frame was never looked at. There is no video of the room.

Correction 2026-08-31
How the council votes — and why no per-member record exists
now on the record: Unnamed voice acclamation — no name is attached to any vote dp.record.gap.vote.method

rev 1 stated that the recording 'confirms that one was indeed taken seat by seat, corroborating the statutory notice from the other side'. Withdrawn. Chairman spot-check of clip 1781 (2026-08-30) plus the transcript's own timings at 00:09:07-00:09:15: after 'We'll start down here' there are TEN aye-utterances in about seven seconds for a SEVEN-member body, several under 0.2 seconds and overlapping, and not one of them is attached to a name. That is a group response, not a called roll — and the count is not even reliable enough to assert seven. The notice and the recording do not corroborate each other on the manner of the vote; the notice is the only source of the names, and the recording shows a room that named nobody.

Correction 2026-08-28
Crime Control & Prevention District (CCPD) sales-tax revenue (FY2025, audited)
now on the record: $2,588,831 dp.salestax.ccpd.revenue

rev 1 ($2,000,000) was the FY2025-26 sales-tax revenue BUDGETED in the city's Adopted Budget — a round planning figure, not an outcome. Replaced with $2,588,831, the FY2025 audited component-unit actual from the ACFR: the same figure and the same locator the trend page cites, so the two pages no longer disagree about the same district. The budgeted figure is not withdrawn; it stands at revision 1.

Correction 2026-08-28
Community Development Corp (CDC) sales-tax revenue (FY2025, audited)
now on the record: $5,190,905 dp.salestax.cdc.revenue

rev 1 ($4,000,000) was the FY2025-26 sales-tax revenue BUDGETED in the city's Adopted Budget — a round planning figure, not an outcome. Replaced with $5,190,905, the FY2025 audited component-unit actual from the ACFR: the same figure and the same locator the trend page cites, so the two pages no longer disagree about the same district. The budgeted figure is not withdrawn; it stands at revision 1.

Correction 2026-08-28
Fire Control, Prevention & EMS District (FCPEMSD) sales-tax revenue (FY2025, audited)
now on the record: $2,580,330 dp.salestax.fcpemsd.revenue

rev 1 ($2,000,000) was the FY2025-26 sales-tax revenue BUDGETED in the city's Adopted Budget — a round planning figure, not an outcome. Replaced with $2,580,330, the FY2025 audited component-unit actual from the ACFR: the same figure and the same locator the trend page cites, so the two pages no longer disagree about the same district. The budgeted figure is not withdrawn; it stands at revision 1.

Correction 2026-07-17
Net general bonded debt (total primary govt), FY2016
now on the record: $17,063,505 dp.series.netdebt.fy2016

Was $17,448,182 (rev 1, from the FY2025 ACFR statistical table). YEAR-SHIFT FINDING (M17 Phase 2): the FY2021+ statistical tables - including the current FY2025 ACFR this value was originally seeded from - shifted the 'Less: restricted' row of the Ratios of General Bonded Debt table one year later than the contemporaneous audited CAFRs. The GO-bonds row aligns identically in every report; only restricted/net/per-capita shifted. The later tables contradict two OWN-YEAR audited columns (FY2019 CAFR: $226/capita at 2019; FY2020 CAFR: $287/capita at 2020). The prior value was a chimeric pairing (this year's GO bonds minus the PRIOR year's restricted amount) that appears in no contemporaneous report. Corrected to the FY2019/FY2020 CAFR (contemporaneous, own-year-anchored) values. FY2021-FY2025 values are own-year-fresh in their reports and stand (note: FY2022 own report says restricted 5,648,708 / net 41,035,116 vs FY2025's 5,638,708 / 41,045,116 - a $10,000 discrepancy, flagged, immaterial to the series).

Correction 2026-07-17
Net general bonded debt (total primary govt), FY2017
now on the record: $13,357,499 dp.series.netdebt.fy2017

Was $14,255,389 (rev 1, from the FY2025 ACFR statistical table). YEAR-SHIFT FINDING (M17 Phase 2): the FY2021+ statistical tables - including the current FY2025 ACFR this value was originally seeded from - shifted the 'Less: restricted' row of the Ratios of General Bonded Debt table one year later than the contemporaneous audited CAFRs. The GO-bonds row aligns identically in every report; only restricted/net/per-capita shifted. The later tables contradict two OWN-YEAR audited columns (FY2019 CAFR: $226/capita at 2019; FY2020 CAFR: $287/capita at 2020). The prior value was a chimeric pairing (this year's GO bonds minus the PRIOR year's restricted amount) that appears in no contemporaneous report. Corrected to the FY2019/FY2020 CAFR (contemporaneous, own-year-anchored) values. FY2021-FY2025 values are own-year-fresh in their reports and stand (note: FY2022 own report says restricted 5,648,708 / net 41,035,116 vs FY2025's 5,638,708 / 41,045,116 - a $10,000 discrepancy, flagged, immaterial to the series).

Correction 2026-07-17
Net general bonded debt (total primary govt), FY2018
now on the record: $10,877,010 dp.series.netdebt.fy2018

Was $11,424,386 (rev 1, from the FY2025 ACFR statistical table). YEAR-SHIFT FINDING (M17 Phase 2): the FY2021+ statistical tables - including the current FY2025 ACFR this value was originally seeded from - shifted the 'Less: restricted' row of the Ratios of General Bonded Debt table one year later than the contemporaneous audited CAFRs. The GO-bonds row aligns identically in every report; only restricted/net/per-capita shifted. The later tables contradict two OWN-YEAR audited columns (FY2019 CAFR: $226/capita at 2019; FY2020 CAFR: $287/capita at 2020). The prior value was a chimeric pairing (this year's GO bonds minus the PRIOR year's restricted amount) that appears in no contemporaneous report. Corrected to the FY2019/FY2020 CAFR (contemporaneous, own-year-anchored) values. FY2021-FY2025 values are own-year-fresh in their reports and stand (note: FY2022 own report says restricted 5,648,708 / net 41,035,116 vs FY2025's 5,638,708 / 41,045,116 - a $10,000 discrepancy, flagged, immaterial to the series).

Correction 2026-07-17
Net general bonded debt (total primary govt), FY2019
now on the record: $7,978,761 dp.series.netdebt.fy2019

Was $8,563,921 (rev 1, from the FY2025 ACFR statistical table). YEAR-SHIFT FINDING (M17 Phase 2): the FY2021+ statistical tables - including the current FY2025 ACFR this value was originally seeded from - shifted the 'Less: restricted' row of the Ratios of General Bonded Debt table one year later than the contemporaneous audited CAFRs. The GO-bonds row aligns identically in every report; only restricted/net/per-capita shifted. The later tables contradict two OWN-YEAR audited columns (FY2019 CAFR: $226/capita at 2019; FY2020 CAFR: $287/capita at 2020). The prior value was a chimeric pairing (this year's GO bonds minus the PRIOR year's restricted amount) that appears in no contemporaneous report. Corrected to the FY2019/FY2020 CAFR (contemporaneous, own-year-anchored) values. FY2021-FY2025 values are own-year-fresh in their reports and stand (note: FY2022 own report says restricted 5,648,708 / net 41,035,116 vs FY2025's 5,638,708 / 41,045,116 - a $10,000 discrepancy, flagged, immaterial to the series).

Correction 2026-07-17
Net general bonded debt (total primary govt), FY2020
now on the record: $10,133,602 dp.series.netdebt.fy2020

Was $10,525,270 (rev 1, from the FY2025 ACFR statistical table). YEAR-SHIFT FINDING (M17 Phase 2): the FY2021+ statistical tables - including the current FY2025 ACFR this value was originally seeded from - shifted the 'Less: restricted' row of the Ratios of General Bonded Debt table one year later than the contemporaneous audited CAFRs. The GO-bonds row aligns identically in every report; only restricted/net/per-capita shifted. The later tables contradict two OWN-YEAR audited columns (FY2019 CAFR: $226/capita at 2019; FY2020 CAFR: $287/capita at 2020). The prior value was a chimeric pairing (this year's GO bonds minus the PRIOR year's restricted amount) that appears in no contemporaneous report. Corrected to the FY2019/FY2020 CAFR (contemporaneous, own-year-anchored) values. FY2021-FY2025 values are own-year-fresh in their reports and stand (note: FY2022 own report says restricted 5,648,708 / net 41,035,116 vs FY2025's 5,638,708 / 41,045,116 - a $10,000 discrepancy, flagged, immaterial to the series).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2016
now on the record: -$6,609,935 dp.series.netposition.fy2016

rev 1 plotted UNRESTRICTED net position 34,445,882 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2017
now on the record: -$7,646,503 dp.series.netposition.fy2017

rev 1 plotted UNRESTRICTED net position 30,001,279 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2018
now on the record: -$18,569,066 dp.series.netposition.fy2018

rev 1 plotted UNRESTRICTED net position 31,608,305 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2019
now on the record: -$36,632,358 dp.series.netposition.fy2019

rev 1 plotted UNRESTRICTED net position 31,892,396 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2020
now on the record: -$30,093,881 dp.series.netposition.fy2020

rev 1 plotted UNRESTRICTED net position 39,484,137 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2021
now on the record: -$22,565,045 dp.series.netposition.fy2021

rev 1 plotted UNRESTRICTED net position 44,484,081 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2022
now on the record: -$10,292,846 dp.series.netposition.fy2022

rev 1 plotted UNRESTRICTED net position 49,692,131 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2023
now on the record: -$15,706,240 dp.series.netposition.fy2023

rev 1 plotted UNRESTRICTED net position 54,215,034 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2024
now on the record: -$29,410,206 dp.series.netposition.fy2024

rev 1 plotted UNRESTRICTED net position 56,225,852 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-16
Net financial position (financial assets - total liabilities), FY2025
now on the record: -$66,997,618 dp.series.netposition.fy2025

rev 1 plotted UNRESTRICTED net position 57,437,669 (a positive, rising ACFR component) under the label 'Net financial position'. The M17 cross-val against the completed Strong Towns Decoder found the true indicator (financial assets - liabilities) is NEGATIVE every year and near its worst - a narrative inversion. The proxy is replaced by the named indicator (M18).

Correction 2026-07-23
Commercial (F1) net fiscal productivity per acre
now on the record: -$6,980/ac dp.vpa.commercial

rev 1 (-$7,634/ac) was computed on the GIS-city parcel base, which omitted the commercial seam parcels (coverage correction #24).

Correction 2026-08-28
Commercial gross value per acre
now on the record: ~$1.07M/ac dp.vpa.commercial.gross

rev 1 named the Council's own derivation file (net_fiscal_productivity.md) on the visible source line, so the page appeared to cite itself. The source line now names the primary the figure actually rests on; the derivation is reclassified into the locator as "derived via" and is not stripped — the working is still reproducible from it. No value changed.

Correction 2026-08-28
Industrial (in-lieu ETJ) net fiscal productivity per acre
now on the record: +$5,259/ac dp.vpa.industrial

rev 1 named the Council's own derivation file (net_fiscal_productivity.md) on the visible source line, so the page appeared to cite itself. The source line now names the primary the figure actually rests on; the derivation is reclassified into the locator as "derived via" and is not stripped — the working is still reproducible from it. No value changed.

Correction 2026-08-28
Industrial gross value per acre
now on the record: ~$803K/ac dp.vpa.industrial.gross

rev 1 named the Council's own derivation file (net_fiscal_productivity.md) on the visible source line, so the page appeared to cite itself. The source line now names the primary the figure actually rests on; the derivation is reclassified into the locator as "derived via" and is not stripped — the working is still reproducible from it. No value changed.

Correction 2026-07-23
Share of analyzed land area that is net-negative
now on the record: 54.3% dp.vpa.land.negative.share

rev 1 (53.1%) was computed on the GIS-city parcel base (coverage correction #24: +153.3 analyzed negative acres).

Correction 2026-08-28
Residential gross value per acre (the published figure)
now on the record: ~$1.36M/ac dp.vpa.residential.gross

rev 1 named the Council's own derivation file (net_fiscal_productivity.md) on the visible source line, so the page appeared to cite itself. The source line now names the primary the figure actually rests on; the derivation is reclassified into the locator as "derived via" and is not stripped — the working is still reproducible from it. No value changed.

Correction 2026-07-23
Residential (multi-family) net fiscal productivity per acre
now on the record: -$4,033/ac dp.vpa.residential.mf

rev 2 (-$4,734/ac) was computed on the GIS-city parcel base (coverage correction #24: cost pool spread over 3,363.1 served ac instead of 3,209.8).

Correction 2026-07-23
Residential (single-family, homesteaded) net fiscal productivity per acre
now on the record: -$6,244/ac dp.vpa.residential.sf

rev 2 (-$6,939/ac) was computed on the GIS-city parcel base (coverage correction #24: +87 sf parcels, +21.4 ac, +$23.2M; cost pool spread over 3,363.1 served ac).

Correction 2026-07-23
Residential net/ac with entire sales-tax base credited to residential
now on the record: -$1,425/ac dp.vpa.stresstest

rev 1 (-$856/ac) was computed from the SUPERSEDED appraised-basis residential rate (-5,575/ac): -5,575 + 4,718 = -857. The ratified taxable-basis methodology (M6 exemption-wedge correction) gives -2,073/ac on the same old base — the fact was never restated when the basis correction landed. This revision reflects BOTH the basis correction and the jurisdiction-corrected parcel base (correction #24); the two causes are named separately because the figure was wrong on its own terms before the coverage gap was found.

Source discrepancies — where our figure differs from another source (3)

These are not corrections to us. Another source — a city page, an earlier brief — carries a different figure, and this records why ours differs. We never published the other number.

Source discrepancy 2026-07-15
Current PILOT rate (FY2025 actual)
what we publish: 65% dp.ida.pilot.current

City Industrial District webpage states a flat 63%; the FY2025 ACFR PILOT ($14,884,571) implies ~65%. Prior published/webpage figure 63% corrected to 65%.

Source discrepancy 2026-07-15
DPISD recapture paid to the State, SY2024
what we publish: $4,875,859 dp.isd.recapture.sy2024

The $9,888,063 figure previously attached to '2024' is NOT a 2024 number - it is DPISD's SY2010 recapture payment. Misattribution corrected against the TEA ledger.

Source discrepancy 2026-07-15
Deer Park Refining (Pemex) district holdings, gross value per acre
what we publish: $591,232/ac dp.vpa.parcel.pemex

The finding/brief figure '$434M / 680 ac (~$638K/ac)' mixed two aggregations of the same owner: $433,147,733 is the entity total across all three HCAD name variants (17 parcels, 732.6 ac), while 680.4 ac is the 'DEER PARK REFINING LP'-variant holding alone (14 parcels, $395,651,840). Consistent figures: entity-level $433,147,733 / 732.6 ac = $591,232/ac (seeded here), or LP-variant $395,651,840 / 680.4 ac = $581,525/ac. Either way the finding's argument strengthens — both sit further below the district average than the conflated ~$638K/ac.

Facts rendered on this page

This table is generated from the page itself: every fact this page rendered, with its value, source, and locator, exactly as they sit in the verified-facts ledger. It is this page’s own provenance — the corrections above cover the whole city ledger.

KeyValueSource · locator
dp.city.area 10.575 sq mi (6,768 ac) US Census TIGER/Line (GEOID 4819624) · AREALAND field; cross-checked vacant_land_analysis.md
dp.city.area.acfr_claim ~15 sq mi (city + ETJ) City of Deer Park FY2025 ACFR · Letter of Transmittal, 'land area of 15 square miles' (printed p.1 / PDF p.5); vacant_land_analysis.md
dp.city.pop 33,823 (2020: 35,315) City of Deer Park FY2025 ACFR · Demographic and Economic Statistics (printed p.125 / PDF p.133)

Nobody is going to read the annual financial report. That is the whole design of the thing — the volume is the defense. So a machine read all of it: every number above carries a locator back into a source document, every sentence between them is either a cited fact or a fair reading of cited facts, and the unverified never reaches this page at all — the database only exposes the verified ledger. You will almost certainly never check. But you could.