Which development patterns pay for themselves — the net the land produces once expenses are counted.
What the land produces
Which development patterns actually pay for themselves?
This is the finding that survived every attempt to break it. Take each land use, count what it pays the city, subtract what it costs the city in services, and divide by the acre.
On gross value per acre, houses look like the winner: residential carries ~$1.36M/ac†correctedderived — HCAD 2025 certified appraisal roll against industrial's ~$803K/ac†correctedderived — ETJ; HCAD jurs lacks 054 and commercial's ~$1.07M/ac†correctedderived — F1. Add the expense side and it inverts:
| Land use | Net fiscal productivity per acre |
|---|---|
| Industrial (in-lieu ETJ) net fiscal productivity per acrederived — City of Deer Park FY2025 ACFR · 2026 Industrial District Agreement § 1.01 · FY2025 PILOT $14,884,571 (Industrial District Valuation, Billing, Collections, and Percentage Collected — printed p.116 / PDF p.124) over 2,830.3 district acres (HCAD 2025 certified appraisal roll); zero city services allocated per IDA § 1.01; derived via net_fiscal_productivity.md §Result (Basis A) Zero city services allocated per IDA §1.01; net = PILOT revenue/ac. Robust net-positive across every basis ($3,232-$5,259/ac). correction on the record: 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. |
+$5,259/ac |
| Residential (single-family, homesteaded) net fiscal productivity per acrederived — derived: Basis A on the jurisdiction-corrected base · scripts/m28_rederive.py: sf (A/Z) 2,082.4 ac, appraised 2,809,832,481, taxable-corrected (full wedge on homesteaded sf); rev/ac - cost/ac 14,669. sf count 10,029 (was 9,942). Same method as rev 2; only the base changed. correction on the record: 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). |
-$6,244/ac |
| Commercial (F1) net fiscal productivity per acrederived — derived: Basis A on the jurisdiction-corrected base · scripts/m28_rederive.py: com (F1, city-taxed) 1,134.1 ac, appraised 1,211,226,866; rev/ac - cost/ac 14,669. com count 519 (was 488): +25 seam parcels ($134.5M appraised, incl. the Walmart and Monument Business Park) plus 054-membership swaps. correction on the record: rev 1 (-$7,634/ac) was computed on the GIS-city parcel base, which omitted the commercial seam parcels (coverage correction #24). |
-$6,980/ac |
| Residential (multi-family) net fiscal productivity per acrederived — derived: Basis A on the jurisdiction-corrected base · scripts/m28_rederive.py: mf (B) 146.6 ac, appraised 216,584,774 (no wedge); rev/ac - cost/ac 14,669. mf parcel set unchanged by the repair; the rate moves because the served-acre cost denominator grew. correction on the record: 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). |
-$4,033/ac |
We tried to break it. Credit residential with the entire sales tax base ($10,416,522printed p.25 / PDF p.31) — the most generous assumption available, as if every retail dollar in town existed only because houses do — and residential still comes out at -$1,425/ac†correctedderived — derived: taxable-basis residential rate + full FY2025 sales . Negative. No allocation basis, no overhead treatment, no assumption rescues it.
Technical — why correction #24 moved two figures in opposite directions: the aggregate is the levy on analyzed value minus a fixed $49,333,606 service cost, so capturing $157,700,968 more analyzed value (the jurisdiction repair: +$23.2M residential, +$134.5M commercial) adds $157.7M × 0.0072 = $1,135,447 of levy against the same cost — the gap shrinks. The negative-land share is measured in acres, and the captured parcels belong to net-negative classes: +153.3 negative acres (+21.4 residential, +131.9 commercial) against the fixed 2,830.3-acre net-positive district — 3,363.1 of 6,193.4 analyzed acres = 54.3%, up from 53.1%. More land in the red, a smaller total deficit; both follow from the same repair, to the dollar. derived: the Council’s re-derivation of the HCAD 2025 certified roll, and its coverage gate
Deer Park's refineries pay for its neighborhoods. Not as a slogan — as arithmetic. Which produces a conclusion nobody wanted, including us: replacing the plants with housing would make the city's finances worse, not better. The town would trade its only self-funding land use for its most subsidized one — on land it cannot annex until the contract ends (2027-01-01 to 2041-12-31 (15 yr)term clause; Deer_Park_IDA_One_Page_Summary_2026-07-12 §2).
In plain language: this is not the city running $21.5M in the red on its books — the city's books balance. It is a per-acre model, and it says one thing: the houses, apartments, and shops inside Deer Park cost more to serve than the property tax they pay, by about $21.5M a year.
So where does the money come from? Two sources this land map does not credit to any acre. The industrial district's in-lieu payment — $14,884,571printed p.25 / PDF p.31 from refineries that sit outside the city — and sales tax, $10,416,522printed p.25 / PDF p.31. Those two alone are $25.3Mcomputed: dp.fund.pilot + dp.fund.salestax, more than the gap. The land inside the city does not pay for itself; the plants outside it, and the sales tax, do. That is the whole finding above, restated as where the dollars actually come from.
One number, not two. Later this page shows a different shortfall — a −$4.44M budget coverage gap. Do not add them together; they answer different questions. This −$21.5M is a land model — does the ground inside the city pay for the streets and pipes that serve it? It is covered, and stably, by the refineries and the sales tax. The −$4.44M is the budget — does the town’s steady yearly revenue cover its steady yearly bills? — and it is covered only by volatile investment returns. Same town, two different tests, two different answers.
54.3%†correctedderived — res 2,229.0 + com 1,134.1 = 3,363.1 ac of the analyzed land area is net-negative — it costs the city more to serve than it pays. The slice that carries the rest is the district, and it is not in the city.
Here is the whole finding in one frame. Net-negative land renders flat and red, graded by how deep it runs; height is reserved for land that pays for itself. In Deer Park that means the entire city renders as a flat red carpet — and the only extrusion on the map stands outside the city limits, in the district. Land the analysis does not cover renders neutral, never guessed.
Hero map — net fiscal productivity per acre · class-level rates from the ledger · class membership = roll jurisdiction 054, not postal GIS labels · hatched ground = NOT IN DATASET (absence, not a category) · click any parcel · drag to orbit · right-drag / Ctrl-drag to rotate · compass = north · Analysis/Imagery toggle = USGS orthoimagery (NAIP, public domain)
And the outlier that wasn't: the district's biggest owner, Deer Park Refining (Pemex), carries $591,232/ac†correctedderived — scripts/m10_map_facts.py across its holdings — below the district average of $803,416/acderived — scripts/m10_map_facts.py. Normalize per acre and the monster parcel disappears into the middle of the pack. Per-acre normalization is the scaling rule.
The second map is the roll itself: every on-roll parcel graded by gross value per acre, and the district in gray — because its $2,273,908,892derived — counterfactual_no_plants.md §0(a) is not on the city's tax roll at all.
Taxable (graded by gross $/ac) vs off-roll (gray) · straight off the HCAD 2025 certified roll · hatched ground = NOT IN DATASET · click any parcel · right-drag / Ctrl-drag to rotate · compass = north · Analysis/Imagery toggle = USGS orthoimagery (NAIP, public domain)