True Lifestyle Cost Index™ — Methodology (internal)
TL;DR
- TLC% = 12×(H+U+C)/income. v1 per Krishna's five decisions (2026-06-12, all RESOLVED): name fully spelled out 'True Lifestyle Cost Index'; income basis is a USER CHOICE (median / HUD AMI default / HUD 80% / custom); TWO U scopes (u_energy LEAD-comparable + u_full product number); C on a household basis (× B08202 workers/HH); 48% line AND percentile tiers.
- u_energy = DOE LEAD 2022 county/tract energy by AMI bracket, trended per fuel by OUR energy_prices EIA indices (2022→now: NJ elec ×1.37, gas ×1.14, oil ×0.85) — 82,833 rows staged+loaded as `utility_baselines` with elec/gas/fuel splits. u_full adds water/sewer + cell (BLS CEX 2024 by hh size), broadband (FCC URS 2026, $89/$95 national medians), trash (NJ norm $0, toggle); quality tiers A/B/C documented; NJ American Water tariff anchor $50.95/mo.
- Income: HUD FY2026 limits staged+loaded as `hud_income_limits` (319 rows NY/NJ/CT/PA; CT = town rows under planning-region FIPS). HUD AMI is median FAMILY income (4-person) — avg +47% above CBSA median HOUSEHOLD income in the pilot; published 80% limits are capped (Jersey City's EXCEEDS its own MFI). CNT benchmarking stays on CBSA median HH (CNT's own construct).
- C is the moat: door-to-door, mode-specific, fare/toll/parking/CRZ-accurate monthly commute cost from the GPU RAPTOR pipeline + commute DB — computed leg-by-leg, not modeled; now × county workers-per-household (1.17–1.38), matching CNT's Regional Typical Household precedent (H+T Methods Nov 2022 p.25).
- Shelter is basis-INDEPENDENT (double-counting guard v1): H = ACS gross housing − LEAD ALL-bracket energy − CEX water/sewer, once per county; bases differ only via bracket utilities + denominator. CT planning-region FIPS now line up across ACS 2024, CNT 2022, LEAD 2022 AND HUD FY26.
True Lifestyle Cost Index™ — Methodology (internal)
True Lifestyle Cost Index — Housing + Utilities + Commute.
Author: TLCengine / Krishna Malyala (broker, NMLS #1875937)
Status: v1, 2026-06-12 · NYC tri-state pilot · name fully spelled out per
decision #3 (13 years of public "True Lifestyle Cost" use at TLCengine; repo
slug stays tlccosts)
Lives at: commutingcost.com/TLCcosts · computed on the gpu-pilot stack (geocoder)
Code: tlccosts/fetch_acs.py · fetch_b08202.py · stage_utility_baselines.py ·
stage_hud.py · compute_tlccosts_v1.py (v0 preserved) · staging
acs_housing / utility_baselines / hud_income_limits {tsv,sql,load*.sh}
Press version: PUBLIC_METHODOLOGY.md — quotable framework + sources +
validation, no model coefficients. This file is the internal spec.
0. Legal & ethical frame (non-negotiable)
- "H+T® Index" is a registered trademark of the Center for Neighborhood Technology (CNT), and the H+T Index dataset (htaindex.cnt.org) is CNT's copyrighted work. The True Lifestyle Cost Index does not republish, rebrand, or pass off CNT data or the H+T name as ours — ever.
- The True Lifestyle Cost Index is an independent, original index: our
own formula, computed end-to-end from primary sources — U.S. Census ACS,
EIA/DOE energy data, HUD income limits, FCC/BLS utility surveys, and
TLCengine's own door-to-door commute-cost engine (the
commuteDB + GPU RAPTOR pipeline in this repo). - CNT's H+T Index is cited as prior art (see §1) and used only as a validation benchmark (see §6), always with attribution: "H+T® Index data © Center for Neighborhood Technology, used for comparison."
- Every public True Lifestyle Cost Index page carries the disclaimer: TLCengine and the True Lifestyle Cost Index are not affiliated with, endorsed by, or sponsored by the Center for Neighborhood Technology. H+T® is a registered trademark of CNT.
- We studied https://htaindex.cnt.org/about/ for the landscape (fetched 2026-06-12); facts from it are paraphrased and cited below, never copied.
1. Prior art and the gap we fill
The traditional affordability rule says housing should cost ≤ 30% of income. CNT's H+T® Index (first developed 2006 for Minneapolis–St. Paul under the Brookings Institution's Urban Markets Initiative) argued that transportation — typically a household's second-largest expense — must be added, and set a combined H+T benchmark of ≤ 45% of income. By CNT's own published numbers, adding transportation drops the share of "affordable" US neighborhoods from roughly 55% to 26%. (Source: CNT, "About the Index," htaindex.cnt.org/about/, accessed 2026-06-12; paraphrased.)
How CNT models T: a regression model driven by built-environment and household variables (residential density, income, household size, commuters per household...), calibrated on regional averages — auto ownership costs from the Consumer Expenditure Survey, VMT and transit-use models, 2022 ACS inputs, 2021 LEHD jobs data, and AllTransit™ schedule data (per their 2025 release notes). It is a modeled estimate of total household transportation spend, not an observed price of any specific trip.
What the True Lifestyle Cost Index does differently (the differentiators):
- C is computed, not modeled. We price the actual door-to-door commute —
mode-specific (rail / drive / park-&-ride / kiss-&-ride / ride-hail
access), with real posted prices: GTFS zone fares
(
transit_zone_fares), peak tolls including NYC congestion pricing CRZ $9 (toll_rates), station parking (parking_rates), and EIA/AAA fuel — from TLCengine's productioncommuteDB, routed by our GPU multi-source RAPTOR kernel (535K-origin NYC run in 73 ms). CNT models what the average household spends on all travel; we compute what a specific commute costs, leg by leg. - U is broken out. H+T folds utilities implicitly into H (ACS gross rent and SMOC include them) and does not report a utilities component. The True Lifestyle Cost Index makes U explicit — energy prices move independently of rents (CT electricity at ~30.8 ¢/kWh vs NJ ~23.1 ¢/kWh, Feb 2026, EIA) and matter to relocation decisions.
- Freshness. v1 uses ACS 2020–2024 (released Dec 2025/Jan 2026), HUD FY2026 income limits, FCC 2026 Urban Rate Survey and 2026 fare/toll/ energy tables; CNT's current release uses 2022 ACS inputs.
- Resolution roadmap. CNT publishes at block group and above; our C component is computed at H3 hex resolution 9/10 (≈ 0.1–0.01 km²), enabling address-level commute realism under block-group H/U.
Heritage: "TLC" in TLCengine stands for True Lifestyle Cost — the MLS-integrated affordability analytics TLCengine has shipped to brokerages since the 2010s. The True Lifestyle Cost Index is that heritage — now fully spelled out as the public name (decision #3) — rebuilt on the GPU commute engine.
2. Index definition
For a geography g (county / town / tract / block group / hex), an income basis I, and a utilities scope U:
TLC%(g, I, U) = 12 × ( H(g) + U(g, I) + C(g) ) / I
- H — monthly housing shelter cost (market-priced; basis-independent; utilities stripped — see §3).
- U — monthly home utilities, two displayed scopes (decision #1, resolved 2026-06-12):
u_energy— home energy only (DOE LEAD construct) — used in all CNT benchmark comparisons;u_full— u_energy + water/sewer + broadband + cell phone + trash (where separately billed) — the product number. See §4.- C — monthly door-to-door commute cost, chosen (cheapest sane) mode, on a household basis: × ACS B08202 workers-per-household (decision #5; see §5).
- I — gross annual income, a user choice (decision #2, radio buttons; default HUD AMI):
median— the geography's own median household income (ACS B19013);hud_ami— HUD area median family income (100% AMI), FY2026 income limits (huduser.gov) — the housing-industry standard. HUD AMI is a median family (4-person benchmark) figure and runs far above median household income: avg +47% vs CBSA median HH across the pilot (quantified in RESULTS.md);hud80— HUD's published 80% limit (l80_4) — capped/adjusted, not always 0.8 × MFI (Jersey City HMFA's 80% limit exceeds its MFI);custom— "enter your income" (product only). CNT benchmarking stays on CBSA median household income — CNT's own "regional area median income" construct (H+T Index Methods, Nov 2022).
Thresholds (decision #4 — both): a place is TLC-affordable when TLC% ≤ 48% (the classic 30% housing + 15% transportation envelope + 3% explicit utilities allowance), and every geography carries percentile tiers: metro quintile (1 = most affordable fifth, computed at the product default HUD-AMI × u_full) now, national tiers when the national run lands; CNT's national ht_ami percentile shown as context meanwhile (CNT-vs-CNT, no construct mixing).
Double-counting guard (v1): ACS "gross rent" (B25064) and "selected monthly owner costs" (B25088) include utilities by definition. v1 defines shelter once per geography — H = tenure-weighted gross housing cost − LEAD ALL-bracket energy − CEX water/sewer — so H + embedded utilities stays ACS-consistent, shelter does not move with the income basis, and the income bases differ only via their bracket-specific utilities (LEAD) and their denominator. Broadband/cell/trash are additive (never inside ACS housing costs). Direct shelter measures (B25058 contract rent + B25094/B25087 SMOC splits) remain the v2 upgrade.
3. H — housing (ACS, primary source)
ACS 5-year estimates, vintage 2024 (2020–2024) — the latest, fetched 2026-06-12 via the Census table-based Summary File (see Data Access note below). Tables, at block group + county (+ state, CBSA):
| table | use |
|---|---|
| B25064 median gross rent | renter housing cost (incl. utilities) |
| B25058 median contract rent | renter shelter cost (v1 H) |
| B25088 median selected monthly owner costs (total / with / without mortgage) | owner housing cost (incl. utilities) |
| B25094 aggregate SMOC components | v1 owner shelter split (not yet pulled) |
| B25077 median home value | context + buyer affordability variant |
| B25003 tenure (owner / renter counts) | tenure weights |
| B19013 median household income | denominator (per-geography + CBSA) |
H_gross(g) = pct_renter(g) × B25064(g) + pct_owner(g) × B25088_001(g)
H(g) = H_gross(g) − U(g) # v0 decomposition, see §2
- Tenure weights from B25003 (
pct_owner,pct_renterof occupied units). - ACS jam/sentinel values (−666666666 family) → NULL; geographies missing a median fall back to the parent geography with a flag.
- Connecticut wrinkle: from ACS 2022 onward CT's county-equivalents are the nine planning regions (FIPS 09110–09190), not the eight legacy counties. CNT's 2022 H+T county file still uses legacy CT counties (e.g., Fairfield 09001) — county-level CT benchmarking therefore uses a name-based crosswalk or CBSA level (see §6).
Data access note (changed June 2026): api.census.gov now enforces API
keys (keyless requests redirect to missing_key.html). fetch_acs.py
defaults to the keyless table-based ACS Summary File bulk downloads on
www2.census.gov (identical estimates, one national pipe-delimited file per
table, every summary level included) and uses the API only when
CENSUS_API_KEY is set.
4. U — utilities (u_energy: LEAD × EIA · u_full: + FCC/BLS components)
Decision #1 (RESOLVED 2026-06-12): DOE LEAD blessed for v1 energy-U, EIA-price-trended; U expanded beyond energy with TWO displayed figures.
4a. u_energy — DOE LEAD, EIA-trended (Tier A)
LEAD Tool 2022 update (lead.openei.org → data.openei.org submission 6219;
{ST}-2022-LEAD-data.zip, fetched 2026-06-12): census-tract average annual
household energy cost (ELEP electricity + GASP gas + FULP other fuels,
ACS 2018–2022 calibrated with utility tariffs), by AMI income bracket
(0–30 / 30–60 / 60–80 / 80–100 / 100–150 / 150%+) — which gives U at the
HUD-AMI income bases for free. Covers renters and owners. Staged for
NJ/NY/CT/PA at tract + county + state into utility_baselines (82,833
rows) with per-fuel splits, AMI files only.
u_energy(g, basis) = [ elec_2022(g, bracket) × EIA_elec_trend(state)
+ gas_2022(g, bracket) × EIA_gas_trend(state)
+ fuel_2022(g, bracket) × EIA_oil_trend(state) ] ($/mo)
EIA trend factors = latest-12-month avg ÷ CY2022 avg, residential, from
our energy_prices (computed live, embedded fallback as of 2026-06-12):
elec NJ ×1.368 / NY ×1.219 / CT ×1.176 · gas NJ ×1.144 / NY ×1.086 /
CT ×0.925 · heating oil ×0.83–0.87. Per-county fuel mixes make this
material: Hudson is urban-gas ($180/mo), Nassau/Western-CT carry oil heat
($412–508/mo). Bracket boundary convention: a household earning exactly
the basis income is the top of its bracket (median → ALL, hud_ami →
80–100%, hud80 → 60–80%); bracket-to-bracket spread is ±15%.
CT note: LEAD 2022 already uses planning-region FIPS (09110–09190) — direct join with ACS 2024, CNT 2022, HUD FY26.
Rejected option (kept as cross-check): ACS gross−contract rent gap (B25064−B25058) — renters only, conflates landlord bundling, nothing for owners.
4b. u_full — the product number
u_full = u_energy + water_sewer + broadband + cell + trash, all staged in
utility_baselines (component, level, geoid, cohort, year):
| component | source | cohorts staged | tier |
|---|---|---|---|
| water_sewer | BLS CEX 2024 Table 1400 "water and other public services" ($68.83/mo all-CU; includes trash collection where separately billed) | hh_size 1–5+ & ALL, national | B — no free national rate DB (AWWA paywalled; Circle of Blue 30-city survey ended 2019); local rates vary 2–3× |
| broadband | FCC Urban Rate Survey 2026 (DA 25-1088, Dec 2025): weighted national median standalone fixed broadband $89.00 (all) / $95.00 (≥100/20 Mbps); state medians NJ $95 / NY $100 / CT $85 / PA $110 | ALL + 100_20_mbps; national + state | A national / B state (thin n, national-urban weights) |
| cell | BLS CEX 2024 "cellular phone service" $113.25/mo all-CU | hh_size 1–5+ ($61–179) & ALL, national | A construct, national geography |
| trash | NJ norm: predominantly municipal collection funded via property tax (already inside SMOC/rent, NOT a separate bill) → $0 default with product toggle; private-hauler townships ~$25–45/mo | state default | C |
NJ anchor (cross-check): NJ American Water, BPU No. 8 tariff (current sheets): 5/8" meter $19.85/mo fixed + $7.7752/1,000 gal → $50.95/mo at 4 kgal, water only (sewer typically municipal; NJ investor-owned water is BPU-regulated). Magnitude-consistent with the CEX national mean.
County v1 uses the ALL/hh-ALL cohorts; the hh-size cohorts are staged for the product's household-size input. Honest-gap register: metro-level water rates (scrape program, NJAW-anchor pattern), NE-region CEX cut, and the trash-toggle UI are v2.
5. C — commute (our engine, the moat)
C is the monthly out-of-pocket cost of the household's actual commute, computed by the TLCengine stack:
- Routing: GPU multi-source RAPTOR kernel (this repo) over Golden-Source GTFS (MTA subway + LIRR + Metro-North + NJT + PATH, 1,491 platforms), multimodal access/egress legs (walk / bike / drive / ride-hail; cuGraph SSSP walk matrix), OSRM drive times × calibrated peak factor.
- Pricing (all DB-authoritative,
commuteDB on gtfs3 @ 172.26.1.152:5433):transit_zone_fares(NJT/LIRR/MNR zone tariffs, peak),toll_rates(Hudson crossings peak/off-peak + NYC CRZ $9),parking_rates(per-station P&R + Midtown garages),energy_prices(fuel), EPAvehicle_fuel_economy. - v0 input: the validated 30-town tri-state matrix
(
raptor-design/output/commute_towns_tristate.parquet, seeraptor-design/COMMUTE-TOWNS.md): every town's best rail option vs drive-the-whole-way at 08:00 peak; rail cheaper 30/30, avg $15.07 vs $58.80 one-way.
C(g) = oneway_cost(g, chosen_mode) × 2 × 22 # round trip, 22 work days
× workers_per_HH(county) # v1: ACS B08202 (1.17–1.38)
Decision #5 (RESOLVED 2026-06-12): household basis — this is "the
household's index". workers_per_HH = (1·one-worker + 2·two-worker +
3·three-plus-worker households) / households (B08202, county; the 3+ bucket
counted as 3.0, slight undercount, flagged; fetched by fetch_b08202.py).
Precedent verified: CNT's H+T models a "Regional Typical Household"
that fixes income, household size and commuters per household at regional
values (H+T Index Methods, CNT, Nov 2022, p.25 — local copy
data/cnt/method-2022.pdf). v1 flags: every worker treated as CBD-bound;
no remote-share discount yet (B08303/B08301 staged); observed mode mix
(B08134) to blend modes in v2; hex-level C + LEHD destination sets at the
national run (CONTINUE.md Phase 2).
6. Benchmark protocol vs CNT H+T® (validation only)
CNT's 2022 H+T release (all 8 geography levels, 359,924 rows) is staged into
the commute DB as hta_index (PK (year, level, geoid); loaded by a
parallel task — table created, load pending approval as of 2026-06-12; the
staged TSV at gpu-pilot/hta/hta_index.tsv is used until then).
| comparison | ours | CNT | level | expectation |
|---|---|---|---|---|
| transport share | 12×C/I (ami & 80ami & median variants) |
t_ami, t_80ami, t_nmi |
county, CBSA | Ours < CNT, strongly correlated. CNT T = all household travel incl. auto ownership, errands, second cars; ours = commute only, chosen mode. The delta is itself content: "non-commute travel + car ownership overhead." |
| combined | TLC% | ht_ami |
county, CBSA | directionally aligned rankings (Spearman ρ reported); levels differ by U breakout + commute-vs-all-travel scope |
| housing share | 12×(H+U)/I |
h_ami |
county, CBSA | close (both ACS-derived; vintages differ 2022 vs 2024) |
Join keys: county/tract/blkgrp by FIPS GEOID; CBSA by NAME (CNT's CBSA
files carry no numeric codes — e.g. 'New York-Newark-Jersey City, NY-NJ-CT';
note our 2024-vintage CBSA delineations differ for CT, §3). Every published
comparison carries: "H+T® Index data © Center for Neighborhood Technology
(htaindex.cnt.org), used for comparison. The True Lifestyle Cost Index is an independent index and
is not affiliated with or endorsed by CNT."
7. Pipeline & storage
fetch_acs.py → data/acs/raw/*.csv → acs_housing.tsv
fetch_b08202.py → data/acs/raw/b08202_county.csv (workers/HH)
stage_utility_baselines.py → utility_baselines.tsv (LEAD + URS + CEX + anchors)
stage_hud.py → hud_income_limits.tsv (HUD FY2026, NY/NJ/CT/PA)
{acs_housing,utility_baselines,hud_income_limits}.sql + load_*.sh
→ commute DB tables (idempotent upsert loaders)
compute_tlccosts_v1.py → output/tlccosts_v1_nyc.csv + RESULTS.md tables
All tables follow the house pattern (hta/hta_index.sql): snake_case,
created_at/updated_at, natural-key PKs (acs_housing
(vintage,level,geoid) · utility_baselines (component,level,geoid,cohort,
year) · hud_income_limits (year,fips)), geoid = bare FIPS.
8. Versioning & roadmap
| ver | H | U | C | income | geography |
|---|---|---|---|---|---|
| v0 | county, gross−U(state) | state EIA placeholder | 30-town matrix, rail, 1 commuter | CBSA-median "ami" proxy | 11 pilot counties |
| v1 (this) | county, gross − LEAD ALL energy − CEX water/sewer (basis-independent) | u_energy (LEAD county×bracket, EIA per-fuel trended) + u_full (+water/sewer, broadband, cell, trash) | × B08202 workers/HH | median / HUD AMI (default) / HUD 80% / custom | 11 pilot counties (tract energy staged) |
| v2 | blkgrp shelter (B25058 + SMOC split) + buyer variant (B25077 + rates) | metro water rates, NE-region CEX, remote/mode-mix interplay | mode mix (B08134) + remote discount + LEHD destinations | + custom income UI | tract/blkgrp tri-state → H3 res-9/10, top-100 metros |
Open methodological questions for Krishna are tracked in RESULTS.md §Open
questions (income variant naming, HUD AMI adoption, commuters/HH treatment,
utilities scope, affordability threshold).
9. Sources
- U.S. Census Bureau, ACS 5-Year Estimates 2020–2024 (table-based Summary File + API: B19013/B25058/B25064/B25077/B25088/B25003/B08134/B08303 + B08202 workers-per-household) — public domain.
- U.S. DOE, LEAD Tool 2022 update (lead.openei.org; data.openei.org submission 6219, state zips + data dictionary, fetched 2026-06-12) — tract/county energy cost by AMI bracket.
- U.S. EIA — residential electricity, natural gas, heating-oil price series
(via our
energy_pricesingest) — the 2022→current trend factors. - HUD, FY2026 Income Limits (huduser.gov/portal/datasets/il.html, Section8-FY26.xlsx, file dated 2026-04-16) — MFI/100% AMI, 80%, 50%, 30%.
- FCC, 2026 Urban Rate Survey — fixed broadband (DA 25-1088, released
2025-12-19; data file
2026_urs_broadband_website_data_final.xlsx). - BLS, Consumer Expenditure Survey 2024, Table 1400 (consumer-unit size) — cellular phone service; water and other public services.
- NJ American Water, B.P.U. No. 8 water tariff (amwater.com, current sheets) — NJ residential water anchor. NJ BPU regulates investor-owned water utilities.
- TLCengine
commuteDB (gtfs3) — fares, tolls, parking, energy, isochrones; GPU RAPTOR pipeline (this repo) — routing. - CNT, "About the Index" + "H+T Index Methods" (Nov 2022; local copy
data/cnt/method-2022.pdf) — prior art + the Regional Typical Household precedent, cited §1/§5; H+T® data © CNT, benchmark use only. - Circle of Blue, "The Price of Water" 30-city survey (2010–2019; discontinued) — water-rate landscape reference only.
- Delling, Pajor, Werneck (2015), "Round-Based Public Transit Routing" — the RAPTOR algorithm.