Skip to content

How the rules are read and checked

Every setback, height limit, coverage cap and floor-area ratio in a Lot Report names where it came from. This page says what each source means, how a value read from the city’s code is checked, what a report does not model, and how the reading is measured.

A measurement on a set of districts, not a guarantee for any lot: the city’s code and its planning staff decide for yours.

What a number in a report can be

Each rule row carries a tag. A report takes, per number, the first of these that answers:

RegridA value published in Regrid’s zoning data (standardized by Zoneomics), where our plan carries one.
codeThe district’s own code, read by the research agent: the quote it cites was found on the page it names and holds the number.
AI readingRead by the agent, but the quote could not be confirmed on the page. Shown and coloured as an estimate.
estimateA generic US single-family assumption, used only where no source answers. Shown as an estimate.
youA value you set yourself, such as the front edge on the site plan.

Regrid’s value stands unless a checked quote is stricter; then the envelope takes the stricter value and the report names both. An unconfirmed reading never overrides a published value. A cap no source gives is “not known” and caps nothing: a report never assumes a floor-area ratio, and says so where that leaves the floor area open. Each report prints the day its code was read.

Where the code comes from

Only what a government publishes itself: a .gov host, a locality’s .us name with a government’s prefix, a domain in our registry of official government domains (CISA’s .gov list and the official websites of the Census Bureau’s active governments; every domain outside .gov kept only after its home page named the government), or a host checked by hand. Never the commercial code libraries (their terms forbid automated and AI use), a publisher’s platform under a city’s name, vendors or listing sites. And only the jurisdiction’s own government’s pages: a namesake in another county, or the county’s own ordinance, is not the city’s code.

The reader names itself (LotLensBot), obeys robots.txt, reads one page at a time per host and never waits out a bot check. A district whose code exists only in a commercial library gets no reading and keeps the labeled estimates; so does a city whose firewall refuses a named bot.

How a quote is checked

Our server reads the code pages in full. The agent returns, per rule, a value, the section, a verbatim quote and the page. A value counts as the code’s own only when its quote is found in the page text as the server read it and holds the number; fractions are compared as decimals; for a yard or the height, the clause must be about the main building, not an accessory building, a garage or a pool. A value from a bonus column (affordable or senior housing, a special permit) is refused. Of two editions of one document only the newest is kept, and where the newest read is more than two years old one more search looks for a newer one. A yard set as a share of the lot is computed from the lot’s own width and depth. Everything else, and every quote that fails these tests, is shown as an estimate.

What a report does not model

Overlay and historic districts, planned developments, subdivision plats, deed restrictions, association rules, easements, trees, utilities, soil, drainage and moratoria can restrict what may be built and are not in the envelope; the report lists the ones it can see from the district code and the record. A yard set by averaging the neighbours has no number and stays an estimate. The setback along a second street of a corner or through lot follows the code’s rule where it was read, and the front setback otherwise, so the envelope can come out too small, never too big.

How the reading is measured

The gold set is 184 values in 30 residential districts of 28 jurisdictions in 17 states, each value with its quote, section and page from the jurisdiction’s own site, proved on the page by script. It has not yet been checked by a person; that check is the next step, and this page will say when it is done. The live agent is run against it after every change and at least quarterly, with fresh lookups. The run of October 18, 2026:

Right, quote checked147 of 184 (79.9%): the report shows the code’s value as the code’s
Right, not confirmed11: the right value, shown as an estimate
Not found21: the report shows the generic estimate, marked
Wrong, quote checked4: a different value shown as the code’s
Wrong, not confirmed1: a different value, shown as an estimate
Of the values shown as the code’s own97.4% matched the gold set (147 of 151)
Districts without a reading1: Athol, MA (RB)

Every wrong value is read by hand after a run, and its cause goes into the next version of the agent. In this run the wrong values with a checked quote were in Denver, CO (U-SU-C) (the agent read the 2018 edition of the code's article, which the city has since republished with a higher coverage limit; the value is stricter than the current code); New York City, NY (R6B) (the agent took the city planning department's undated district profile over the code text, and the profile's height and coverage differ from the code as amended in December 2024; both are stricter, and the floor-area ratio reads 2.01 because the profile's footnote mark stands beside the 2.0).

The written part of a report is held to the same standard in another way: an AI model writes it from a fact sheet, every numeral in the text is checked against that sheet, a sentence that fails is rewritten, and what still fails is deleted and logged.

What a report holds, and a sample for an invented lot: pricing, the sample report.

Look up your own address

Enter an address: the Lot Report gathers the county record, the house’s condition, home values, schools, walkability, flood risk and the zoning rules, and draws the largest building they allow.

Find your lot