Not an emergency service. Danger: 911. Crisis: 988, any hour.
HEAT HMIS study
Language
Color theme

What HEAT said when it was run over 297,069 real HMIS records

A retrospective study: HEAT was fed facts that four real HUD HMIS exports already held, and its answers were compared against HUD's own derivation from the same fields.

Public beta in development. Not for production decision making.

Read this first, because it changes what every number below means. This is not validation. None of these records carries an independent measure of who needed help, so nothing here shows that HEAT finds the right people. What it shows is narrower and still worth publishing: fed the facts an HMIS record already holds, HEAT computes the chronic homelessness definition the way HUD's own reporting computes it, and where it cannot compute it, it says so instead of guessing.

The 99.4% figure, stated so it cannot be quoted as more than it is. It is agreement between two systems on the 177,741 records where BOTH of them reached a determination about chronic homelessness. It is not overall accuracy, because neither system is a ground truth and there is no ground truth in this data. It says nothing about the support planning band, which is mostly unreachable from an HMIS export and is reported separately below. It says nothing about housing outcomes. And it is silent on the 81,271 sessions where HEAT returned "unable to determine", which is the part of this study a community should read most closely.

The four communities are not named. They are CoC A to D below, with the state and the CoC number removed, because the data agreements that allowed this analysis do not cover naming them. Every figure is an aggregate. No person-level record, date of birth, hash or identifier of any kind was copied out of the source data, and none exists in this repository. Counts under eleven print as "fewer than 11" and rates built on them are not printed at all.

What was run

Two runs are reported, and each names the software it tested. The first ran on HEAT version 0.74.0, instrument 0.35.0-pilot, chronicity rules r0.5.0, local configuration beta-public-0.3.0. The second, the before-and-after in the last section, ran on HEAT version 0.76.0, instrument 0.36.0-pilot, chronicity rules r0.5.0, local configuration beta-public-0.4.0, over the same four exports.

The denominator, in full

Enrolment rows read: 610,329 across four HUD HMIS CSV exports, all declaring CSV specification 2026 v1.0 (FY2026 HMIS Data Standards)

In the CoC: 598,643

Assessed: 297,069. One HEAT session was built per head-of-household enrolment into a project typed emergency shelter (entry-exit or night-by-night), transitional housing, street outreach, safe haven, or coordinated entry. The date used is the project start date, the mode is assessor administered, and every session went through the real engine with the shipped instrument and the shipped configuration

In scope and not head of household: 51,632, excluded

Excluded because the relationship to head of household is absent: 8,785. Reported rather than assumed, because a pre-fill driven from HMIS would meet the same wall

What this does not contain: No name, no date of birth, no Social Security Number, no hash, no identifier. The data was read in place and never moved

One composition fact that shapes everything below

CoC A: Its export is dominated by Runaway and Homeless Youth Act basic center shelters: 1,012 of its 1,935 assessed heads of household are unaccompanied minors in single-person households. Chronic homelessness is a finding about adults and heads of household with a long history and a disabling condition, so CoC A's chronic rate is near zero for reasons that have nothing to do with HEAT

Chronic homelessness, against HUD's own derivation

The comparator re-implements the HUD HMIS Reporting Glossary chronically homeless decision table, the one the CoC APR, the ESG CAPER and the LSA use, from 24 CFR 578.3 and the FY 2026 Data Dictionary Appendix A. It is three-valued, because HUD's own reporting carries a missing bucket and collapsing that into "no" would inflate the agreement being measured.

Agreement where both systems reached a determination

Pooled: 177,741 records, 99.4% agreement: 39,278 yes in both, 137,362 no in both, 1,101 disagreements

CoC A: 1,124 records, 100.0% agreement, 0 disagreements. Both yes is under eleven and is suppressed

CoC B: 108,665 records, 99.4% agreement, 660 disagreements

CoC C: 64,292 records, 99.4% agreement, 408 disagreements

CoC D: 3,660 records, 99.1% agreement, 33 disagreements

What it means: The 1,101 disagreements are 0.6% of the records where both systems decided. On this evidence HEAT implements the definition it claims to implement. It does not follow that either system is right about any particular household

The disagreements, in both directions

HEAT more inclusive than HUD's derivation: 589 records. 445 where HEAT returns "likely meets, documentation incomplete" because the current situation is unconfirmed and HUD's derivation returns no, and 144 where a HEAT pathway rule fires and HUD's derivation returns no

HEAT less inclusive than HUD's derivation: 512 records, every one of them a HEAT "does not currently appear to meet" against a HUD yes

By rule, on the disagreeing side: 445 CH-R10, likely meets with the situation unconfirmed, against a HUD no. 344 CH-R8, the current situation on the record is housed or staying with others, against a HUD yes. 229 CH-R1b, the recall tolerance applied, against a HUD no. 151 CH-R8b, transitional housing, against a HUD yes. 144 CH-R4, a pathway met, against a HUD no. 15 CH-R9b, a facility stay of 90 days or more, against a HUD yes. A session can carry more than one rule, so these counts sum above the total

Three of these are deliberate readings, not errors: CH-R8b: HEAT holds that transitional housing is category 1 literally homeless and that transitional housing time does not count toward chronic homelessness, because 24 CFR 578.3 names only the street, a safe haven and an emergency shelter. CH-R10: HEAT will not print a clean "meets" when the current situation is unconfirmed. CH-R8: where the record's living situation field is a housed situation and the dependent fields nonetheless establish literal homelessness at entry, the two systems read the same three fields differently. That last one is the clearest difference in the study and is open in the register rather than left silent

The unresolved count, which is the part worth reading closely

HEAT could not determine: 81,271 sessions, 27.4%

HUD's derivation could not determine: 81,357 sessions, 27.4%. The two are close in size and they are not the same people

Unresolved in both: 43,300

Unresolved in HEAT while HUD's derivation says yes: 17,234

A clean HEAT "does not meet" where HUD's derivation cannot decide: 36,526

What drives it: 39,262 sessions where the two timeline answers contradict each other, 28,837 where the entered information is insufficient, 8,540 where the duration test is met and the disabling condition is absent, 4,103 in a facility with the stay length or prior situation absent, 126 where a tolerance would have produced a definite no

The finding inside the finding: 38,254 of those unable results, 47%, arrive on records where not one of the five relevant HMIS fields is absent. Every field is filled and HEAT still cannot answer

What the study does not cover

Support planning bands are mostly unreachable from an HMIS export

The finding: Eight of the eleven items the support-need rules read have no HMIS counterpart, so 242,283 (81.6%) of sessions land on "indeterminate" and 54,786 reach "very high", which is the one band the indeterminate rule may not overwrite. This is the single largest coverage finding in the study

What the study reports instead: A floor band: the band the mapped facts alone reached, read off the rules that fired. It is a lower bound on the band a completed session would produce, and never the band itself

Why it matters here: The 99.4% agreement figure is about chronic homelessness and nothing else. No part of it transfers to support planning

HUD homeless category

Pooled: 188,754 category 1 literally homeless, 6,412 not HUD homeless, 101,903 unable to determine

Category 2 and category 4 are never returned from this mapping: Neither is a defect in HEAT; both are absences in HMIS. The item behind category 2 corresponds to a field not collected at project start. Category 4 is conjunctive and HMIS answers the first element and neither of the other two: 4,969 sessions reached the test and returned unable to determine on elements no HMIS field holds

Housing outcomes

What was run: Descriptive association only: exit to a permanent destination, return within twelve months of a permanent exit, and time to a permanent-housing exit

What it establishes: Nothing causal, and nothing about whether HEAT helps. Housing outcomes in this data are driven by what a community had available, which is not a property of an assessment instrument. No number in this study should be read as evidence that HEAT improves an outcome

The equity check, run from the community's data because HEAT holds none

What can be said, and it is stronger than a rate comparison

The test: Every session was stratified by the facts the band's rules can read from an HMIS record. That produced 1,494 distinct strata, of which 0 contain more than one floor band

What follows: The band is a function of those facts alone. No residual difference between demographic groups is possible at fixed facts, so every difference in a marginal rate is a difference in the recorded facts and not in how HEAT treats a person

What it does not settle: Whether the recorded facts are themselves evenly distributed. They are not, and that is a finding about housing and about recording practice rather than about this instrument. HEAT collects no race data and therefore cannot monitor this in its own results, which is why the monitoring belongs to the community's HMIS data

What the study changed

Before and after, measured on the same four exports

The defect: An HMIS record can say "more than 12 months" and nothing finer. That is an interval of 13 to 36 whose bottom is the only figure the record establishes, and the engine was reading it as a point. 95,484 sessions, 32.1%, carry one

What moved: 15,666 sessions, 5.3%, all of them out of "unable to determine": 10,507 to meets on entered information, 4,876 to does not currently appear to meet, 283 to likely meets. Not one determination moved INTO unable to determine, and no session that already had a determination changed to a different one

Measured: Unable to determine fell from 81,271, 27.4%, to 65,605, 22.1%. Sessions carrying a hard conflict fell from 39,262 to 22,524

What it does not show: It does not show that the 10,507 people newly recorded as meeting the duration test are chronically homeless. It shows that HEAT stops refusing to answer on records where the refusal was an artefact of how the question was stored. The documentation checklist is unchanged and 24 CFR 578.103 still governs the file

How this was kept safe

Every figure on this page is an aggregate. No person-level record, hash, date of birth or identifier of any kind was copied into the repository, into an output file or into a log. Counts below eleven are suppressed and rates whose numerator or complement falls below eleven are not published. The source data was read in place on the owner's machine and never left it. The four communities are not named and their CoC numbers are not published, because the agreements under which the data was read do not cover naming them.

Where to check this

The mapping between a HEAT answer and an HMIS field, with every place the mapping loses something, is published at HEAT and HMIS. Why each question exists is on the Evidence Register, question by question. How HEAT reads the HUD coordinated entry rules is at HUD alignment, and what HEAT claims the authority to do is on Governance. Disagree with anything here? Use the Feedback button, bottom left. A study nobody can argue with is a claim, not a check.