Where every
number comes from

One page to hand a skeptic. It names the sources, states the coverage rule as the predicate it actually is, gives the current count for each of the three match states, and lists the limits we know about rather than waiting for someone to find them

Appraisal rolls: 13 counties, 2,117,593 parcels, 147,384 in scope, roll year 2025 to 2026
Registry lookup: complete, newest answer 2026-08-06 08:13
Data read into this page: 2026-08-06 08:17

1. The two sources

The first source is the county appraisal roll: who the county bills for a property, what the county thinks it is worth, its floor area, its class code and its legal description. A roll is published once a year, so ownership here can lag a sale by months

The second source is the Texas Comptroller's franchise tax registry: the business filing behind a company name, its taxpayer number, its right to transact business, its registered agent, and the officers and directors named on it. That read has run to completion for the parcels in scope

Nothing here is geocoded and there are no coordinates in either source, which is why this tool has no map. ZIP is the finest geography we can honestly claim, so ZIP is what the filters offer

The 13 county rolls loaded right now

Parcel file parcel_roll_5county.csv, written 2026-08-06 08:14 · roll year 2025 to 2026 · 2,117,593 parcels, 1,172,494 distinct parcel IDs

2. What "in scope" means

The registry lookup was never run against the whole roll. The pipeline picks its targets with one filter, and this is that filter, leg for leg:

((is_financialized = TRUE AND is_owner_occupied = FALSE) OR property_units > 4) AND property_units != 0

In plain words: a parcel the owner does not live in that the roll flags as investor-held, or any building the roll sizes at five units or more. A parcel with no floor area on the roll is outside, because there is no size to judge it by, and that is not the same claim as the building being small

That predicate selects 147,384 of the 2,117,593 parcels on the rolls, which is 7.0% of them, and 71,641 of the 1,672,568 distinct owners. An owner counts as in scope when any one of its parcels is

Owner identity is the pair of owner name and owner mailing address as printed on the roll, because that pair is what the registry read was keyed on. Two companies with the same name at different addresses are two owners here, and one company that changed mailing address mid-roll can appear as two

Every count on this site is quoted against one of those two populations, and says which. Coverage is quoted against owners in scope, never against all 1,672,568 owners: dividing by the whole roll would flatter the coverage figure by counting owner-occupied houses nobody ever intended to look up

3. The match states, and their counts

A registry lookup ends in one of these. They are different claims about the world and the site never lets one wear another's clothes. All four shares below are of the 71,641 owners in scope

25,386matched · 35.4%

A Texas business filing lines up with the name on the roll. Both names are printed side by side on the parcel page so you can reject a bad match yourself

37,841no_record · 52.8%

The registry answered, and the answer was that nothing is filed in Texas under this name. This is a finding. Plenty of rentals are held by a person, a trust, or an out-of-state entity that never registered here

7,605not_resolved · 10.6%

Our lookup was rejected. The query was malformed or unresolvable and the registry returned nothing usable. It is not a statement that Texas has no record, and collapsing it into the column to its left would invent 7,605 findings that do not exist

809not_looked_up · 1.1%

No registry row reached this owner at all, or the rows that did carry no status. Unknown, same as the column beside it, and drawn the same dashed and open way

A fifth case is not a match state at all: 1,600,927 owners are outside the coverage rules and were never queried on purpose. They are reported as outside, never as pending, and that share is of all 1,672,568 owners on the roll

Underneath the owner states, the registry read produced 153,536 rows joined to a parcel, by status: no_record 68,218 · matched 67,609 · not_resolved 17,709. One owner can carry several rows, and an owner counts as matched when any row matched

4. The limits we know about

not_resolved is our failure, not Texas's silence. 7,605 owners in scope sit in that state. Every one of them is a lookup the registry rejected. If you need to know whether one of those names has a Texas filing, the honest answer is that this tool does not know and you should search the Comptroller directly

A bare parcel ID is ambiguous. The counties number their parcels independently and this roll is a dozen of them stacked together, so 466,956 of the 1,172,494 distinct IDs loaded here are carried by more than one county. Every parcel link on this site carries its county for that reason, and a registry answer is only ever placed on the candidate whose situs address agrees. 0 registry rows name an ID no roll here carries and 2 carry an ID whose candidates all sit at another address; both sets are held back rather than joined to the wrong building

agent_address is empty upstream. The rolls carry a tax agent name but the counties do not publish the agent's mailing address, so that column arrives blank and nothing here is built on it. Deed transfer dates are unreliable for the same kind of reason and are shown only as the roll's own recent purchase date

Unit counts are estimates, everywhere. The rolls do not publish a unit count for most buildings, so property_units is floor area divided by 900 square feet, corrected by class code only for houses and small duplex-to-fourplex classes. It is the sq ft column restated, not a second fact, and it is marked with a ≈ wherever it appears. The five-unit line in the coverage rule inherits that estimate

Market value is the county's value, not a price. It is what the appraisal district put on the roll, which is neither a sale price nor an offer

No coordinates, so no map. Neither source carries a latitude or a longitude and nothing here is geocoded. ZIP-level filtering and the ZIP column are the honest substitute

People are deliberately not searchable. Officer names appear on the filing they belong to and nowhere else. Their home addresses are in the source records and are never shown, and there is no search by person name. This tool answers who owns a building, not what a named human owns

Everything on this page is checkable. The full load report, including the rows this process refused to join and why, is at /health

How to read the end of a chain

A chain can end three ways, and the difference matters. Two of them are answers. One of them is a gap in what we know, and it is drawn as a gap so you never mistake it for an answer

Matched

The name on the roll lines up with a Texas business filing. We show both names side by side so you can reject a bad match yourself

25,386 owners of the 71,641 inside the coverage rules, 35.4% so far

No record

We searched and Texas has no business registration under this name. That is a finding, not a miss: plenty of rentals are held by a person or an out-of-state entity that never registered here. The line stops on a hard bar because the search finished

37,841 owners so far

No answer

No usable answer came back for this name. Almost all of these are lookups the registry rejected outright, which is our query failing, not Texas reporting that nothing is filed. That claim is the middle column, and this is not it. We do not know either way here, so the line trails off dashed and open

8,414 owners in scope: rejected lookup or never queried

One more case borrows that same dashed ending: a parcel outside the coverage rules. The registry was never asked about it, on purpose, so the chain is a gap here too, and the page names the rule that put it outside instead of implying an answer is on its way. 147,384 of the 2,117,593 parcels on the rolls are inside the rules

11.7%

of the 71,641 owners inside the coverage rules have no registry answer. The scrape has finished, so these are not owners waiting in a queue: almost all of them are lookups the registry rejected. Read them as unknown, never as unregistered