For Virginia localities and applicants · Working name
Plan Intake
Plan Intake reads a drawing package before a person does and reports what the sheets show, what they do not show, what is unclear, what only a named human can decide, and what could not be read.
The locality's own staff: the Zoning Administrator, the Building Official, the erosion and sediment control administrator.
What it does
A queue of received packages and the same report, a deficiency letter drafted only from the MISSING and UNCLEAR items, the staff's own decision recorded by the staff, and release, which only staff control.
Each has its own surface in the demonstration, on fictitious packages.
The engineer of record, on a resubmittal
What changed, in five parts
Between this package and the one it revises: the sheets, the revision block, the text on each sheet, the revision marks located, and the items by rule. Counted and quoted, never judged.
The letter is ingested and split into comments, and a person links each one to the report: flagged by an item, outside the report's scope, or not raised by it. Plain counts, with a CSV per jurisdiction.
One box for each text box an item quotes, labeled with the item number and its bucket letter, written as standard PDF markups that stay editable. They say nothing the report does not say.
The pack builder reads the office's own checklist (PDF, XLSX, CSV, TXT or DOCX) into candidate lines. Staff adopt each line under a typed attestation, and every rule quotes its line from the stored file.
Nothing on a sheet without characters becomes a finding. A person checks it by hand with OCR hints of where to look, and whoever plotted the drawing gets a one-page re-export sheet.
One page per jurisdiction and project type, with the office's own list quoted and the offices to ask, readable before anyone is hired to draw the package. It reads no package and decides nothing.
Packages received, read and released, staff decisions, resubmittals, the time from received to released, and letters: plain counts and durations, never a score. It rates no plan, no package and no person.
A universal layer reads every package against itself, a state layer carries Virginia first, and each jurisdiction's pack is built from its own documents, by us or by the locality through the pack builder. A jurisdiction with no pack runs in a stated universal-only mode. Accounts and billing are not built yet.
A report is a list of items. Each item falls in one of five buckets and carries the same seven fields, and the report says plainly what it is not:
This report carries no score. A count of items is not a grade, and a measurement of a sheet is not a rating of the plan.
On every report
Demonstration · A fictitious sheet
A sheet, read in front of you
Sheet C2.0 of a fictitious three-sheet package, read by the real engine under the Town of Christiansburg pack. The boxes and tags are the report's own, and the five buckets count what they mark. Scroll, and they draw onto the sheet in the report's order.
M12PARKING SETBACK / MIN. 20' TO A PUBLIC R/W, site data tableMISSING · Who fixes it Engineer of recordOBSERVEDPARKING SETBACK
U10PARKING SETBACK: the same quantity stated two waysUNCLEAR, NEEDS VERIFICATION · Who fixes it Engineer of recordOBSERVEDPARKING SETBACK
U18Two different floor areas stated on sheet C2.0UNCLEAR, NEEDS VERIFICATION · Who fixes it Zoning AdministratorOBSERVEDGENERAL RETAIL, ONE SPACE PER 125 S.F. OF FLOOR AREA (3,000SF)
U40Interior parking lot greenspace and trees for lots with 20 or more spaces (Sec. 42-625(a)(24))UNCLEAR, NEEDS VERIFICATION · Who fixes it Engineer of recordOBSERVEDINTERIOR GREEN AREA IN THE LOT:
U51Dimensions, finished floor elevations, construction specifications and computations (Sec. 42-625(b)(1))UNCLEAR, NEEDS VERIFICATION · Who fixes it Engineer of recordOBSERVEDFFE 2,118.50
U83Plot date earlier than the latest revision, sheet C2.0UNCLEAR, NEEDS VERIFICATION · Who fixes it Engineer of recordOBSERVEDPLOT DATE: 02/15/2026
H23Private standard stated beside the Town standard, sheet C2.0REQUIRES A HUMAN AUTHORITY · Who fixes it Developer's counselOBSERVEDREQUIRED PARKING (PER DECLARATION OF COVENANTS):
H79Commercial entrance: VDOT land use permit routingREQUIRES A HUMAN AUTHORITY · Who fixes it VDOT Salem District land use permit officeOBSERVEDPROPOSED COMMERCIAL ENTRANCE PER VDOT CG-6 DETAIL
And 28ADDRESSED items on this sheet, each located with its page, its box and the words it quotes.
The whole report on this package lists 85 items across three sheets: 3MISSING, 14UNCLEAR, NEEDS VERIFICATION, 8REQUIRES A HUMAN AUTHORITY, 0NOT REVIEWABLE and 60ADDRESSED. An item that quotes no text on this sheet sits on another sheet, or in the report alone.
The check ran on a readable region and the item was not found, or the applicant's own numbers contradict each other.
UUNCLEAR, NEEDS VERIFICATION
The check ran and the answer is ambiguous: a non-numeric cell, a partial match, an arithmetic result that cannot be reproduced from the sheet's own numbers, a value present on one sheet and absent on another.
HREQUIRES A HUMAN AUTHORITY
Not decidable from the package by anyone reading only the package. Routed to a named authority.
NNOT REVIEWABLE
The region could not be read. No conclusion was reached in either direction, and the customer is not billed for that sheet.
AADDRESSED
Text satisfying this item was located, with a page, a box, and the verbatim string. It is a location result and nothing more.
The seven fields
Every item, the same seven fields
Here is item 12 from the same fictitious package, exactly as the report prints it. The last two fields are the product.
Who fixes itEvery item names who can act on it: the engineer of record, the Zoning Administrator, the developer's counsel, a VDOT office.
We did not determineEvery item says what the tool did not decide, in its own line, so nobody reads more into it than is there.
From a demonstration package (fictitious) · Run d3a0c0de0001
MISSINGLAYER APPLICANT DOCUMENT
ITEM
12. PARKING SETBACK / MIN. 20' TO A PUBLIC R/W, site data table
Your own tabulation states a required parking setback of 12'-0" and a provided cell of 11'-6" / 19'-0". The lower of the provided values is 6 inches under the required value stated in the same row. At least one stated provided value is below the stated required value. Which property line each value belongs to is not stated on the sheet and this tool did not determine it.
WHO FIXES IT
Engineer of record
WE DID NOT DETERMINE
What the ordinance requires, whether the plan satisfies anything, whether a variance or waiver is available, and any dimension not printed on the sheet.
rule SDT-ROW-PROVIDED-LT-REQUIRED v4
What it never does
It reports. People decide.
No score
No score, no percentage and no grade, anywhere. A count of items is never a rating of the plan.
No decision
A person releases every report and records every decision. The tool suggests none.
No unpinned quote
Every quote comes from a pinned source, the locality's own documents or the Commonwealth's own sources, such as the Code of Virginia, and is checked again every time the rules load. A quote that drifts quarantines its rule. No text is ever taken from a code-hosting site.
No finding from a sheet it cannot read
A scan, or a sheet whose text was plotted as outlines, stays NOT REVIEWABLE. OCR shows a person where to look, and nothing it reads becomes a finding.
No outside OCR service
Where it reads by OCR, the reading runs on the machine that holds the file, and nothing is sent anywhere to be read.
No deadline, no interpretation
It computes no deadline and interprets no ordinance. Clocks and fees are quoted as their sources print them.
Not a plan review
The registered design professional who sealed the drawings remains solely responsible for them, and only the office's staff say what a package needs.
Held to it
424 automated tests on September 27, 2026, a gate that refuses the words a report must never use, and the disclaimer on every printed page.
The workflow
From the first submittal to the last letter
One run record carries a package from the applicant's upload to the office's numbers. Here is where each surface comes in.
Before submitting · Applicant pre-check
The package is read first
The applicant can start from the jurisdiction's before-you-submit page, then uploads the PDF set with the intake facts. Until a person releases the report, its address says only that the set was read.
At the desk · Intake desk
Staff read the same report
The package lands in the queue with the same report. Staff read it, record their own decision and release it.
The letter · Intake desk
A draft, never sent by the tool
A deficiency letter draft, drawn only from the MISSING and UNCLEAR items.
DRAFT, NOT SENT. Staff edit a letter and send it; this tool does neither.
On the drawings · Markups
The items travel with the sheets
The report's items go onto the applicant's own drawings as editable PDF markups.
The resubmittal · What changed
Five parts, counted and quoted
The revised package opens on What changed: sheets, revision block, text on each sheet, revision marks located, and items by rule. It never says a change answers a comment; only a person links the two.
The office's letter · Letters
Every comment linked by a person
A person links each comment of the office's letter to the report. The page counts the links and rates nothing.
In the field · Field view
The released report, offline
The released report and its marked sheets on a phone, readable offline at the counter or on the site.
At renewal · The office's numbers
Counts and durations
For the County Administrator: what came in, what was released and how long it took. Never a score.
Sheets it cannot read
A sheet without characters is a place to look, never a finding
Some sheets carry no characters at all: a scan, or a drawing whose text a PDF printer driver turned into outlines. Nothing on such a sheet becomes a finding. It stays NOT REVIEWABLE, and three things happen instead.
Demonstration · fictitious sheet ES-1 · text drawn as outlines
Each outline marks where OCR read an item's own keywords on a sheet that carries no characters, as where to look for a person; every one here was read with high confidence. A hint is not a finding: it changes no item's bucket and adds to no count of findings, and it does not show that the item is on the sheet.
Where to look, on this sheet
Project description, with the area to be disturbed in acres (County checklist, Narrative)
PROJECT DESCRIPTION: CONSTRUCTION OF A FICTITIOUS 6,000 SQ. FT. EQUIPMENT STORAGE BUILDING WITH A GRAVEL DRIVE AND PARKING.as read by OCR, read with high confidence
The Commonwealth's minimum standards named on the sheets (County checklist)
MINIMUM STANDARDS: MS-1, MS-2, MS-4 AND MS-16 ARE SHOWN ON SHEET ES-2 (FICTITIOUS LIST FOR THIS DEMONSTRATION).as read by OCR, read with high confidence
Commercial entrance: VDOT land use permit routing
3. PROPOSED COMMERCIAL ENTRANCE FROM DEMO ROAD (FICTITIOUS STATE ROUTE); VDOT LAND USE PERMIT BY OTHERS.as read by OCR, read with high confidence
OCR reads a rendering of the sheet on the machine that holds the file, and nothing is sent anywhere to be read. Where it reads an item's own keywords, that item comes first on the sheet's check-by-hand page, with the words as read by OCR, how confidently they were read, and the place outlined.
Check by hand
A person looks at the sheet and records Seen, Not seen or Unsure under their initials. Those are observations by a person, never findings: they sit in no bucket and carry no count.
Re-export from CAD
Whoever plotted the drawing gets a one-page sheet: export the PDF from inside the CAD application, keep text as text, and search the new file for a word in the title block before sending it.
Measured on the in-house machine · September 27, 2026
5real Virginia packages
38sheets in them
0sheets carried text this tool can read as characters
1.4 to 7.2seconds for OCR to read each sheet as where to look
OCR read all 38 sheets as where to look. Every sheet stayed NOT REVIEWABLE, and nothing OCR read became a finding.
The packages, their projects and the people behind them are not named here.
Layers and packs
Built for Virginia first, anywhere next
Every rule sits in a layer, and every item names the layer its rule comes from.
Universal
APPLICANT DOCUMENT
The package read against itself, wherever it comes from: the sheet index against the sheets, a tabulation against its own numbers, a quantity stated two ways, a plot date earlier than the latest revision.
State
COMMONWEALTHVDOT
Virginia first: rows quoted from the Commonwealth's own sources, such as the Code of Virginia, and the VDOT routing any Virginia pack can include.
Jurisdiction
COUNTYTOWN
Each locality's pack, built from its own documents, by us or by the office itself through the pack builder.
A locality with no pack yet still gets a report, and the report says so in these words:
No jurisdiction rule set exists for this locality yet. Only checks of the package against itself and against Commonwealth of Virginia sources were run.
The first packs
PINNED
Carroll County
Erosion and sediment control plans, built from the County's own six documents.
WAITING ON THE OFFICIAL COPY
Town of Hillsville
Site plan review. Until the Town's official copy of its ordinance is pinned, its rules are referrals to the Town's Zoning Administrator.
PINNED
Town of Christiansburg
Commercial site plans, 73 rules.
A pack is built from documents the locality publishes. Building one is not an agreement with the locality.
A pilot puts the intake desk in front of the County's own staff for a year, against measures named before it starts.
The pack
The County's pack is built from its own published documents, or its staff build it with the pack builder. Every rule quotes its line.
The desk
The County's staff get the intake desk: the queue, the report, the letter draft, their own decisions and release. Nothing reaches an applicant before staff release it.
The field
Released reports and marked sheets on staff phones, readable offline.
The measures
The pilot agreement names its success measures and its renewal price before it starts. The office's numbers give plain counts and durations to read them against.
The term
Twelve months, then renewal at the price the agreement states.