Before you file, the Plan Exam check shows you how NYC DOB actually interprets and enforces the building code — flagging the objections your filing is most likely to draw. It is built on the department's complete record of plan-examiner objections, so it reflects the code as it is applied in review, not merely as it is written. Every figure on this page comes from a held-out test — filings the model never saw while it was built — so nothing here is asserted; it can be checked.
Plan examination returns objections — items an examiner marks as missing, incomplete, or non-compliant, each adding days to weeks of re-submission. The check predicts which objections your specific filing is most likely to draw, ranked by confidence.
It deliberately does not try to predict who reviews your job. DOB assigns examiners by workload, not by anything on the filing, so the reviewer is effectively a lottery. Predicting the person is a losing game; predicting the objections is not.
Every figure comes from DOB's own records, queried from BuildNYC's database (never a live public API at read time):
The forecast comes from DOB's enforcement record — not from a model's opinion about the code. Every one of the 588,000 objections is parsed into the requirement it enforces, the code section behind it, and how it was resolved. When your filing runs through the check, it identifies which of those requirements the department is most likely to cite it on — ranked by how consistently that requirement is applied and how strongly the signal is corroborated. The output is a confidence-ranked list: a trustworthy top, and a broader "also verify" tail.
The building code is one thing; how NYC DOB examiners actually apply it is another — and the gap between the two is what costs filers time. A requirement can look satisfied on paper yet still get cited in review; another can pass where the letter of the code might suggest otherwise. Because the check is built entirely on what examiners actually cited — the department's real, requirement-by-requirement enforcement pattern — it reflects the code as it is practiced, not just as it is stated. That practiced interpretation is exactly what you can't get from reading the code, and exactly what decides whether your filing clears.
Back-test numbers are only worth the discipline behind them. Ours were produced on a held-out set of 79 filings — chosen so that none of them were used while building or tuning the model. Because these are separate filings, each reviewed by whoever DOB happened to assign, the set spans 51 distinct examiners and every plan-exam discipline — so the numbers reflect the department broadly, not one reviewer's habits.
For each held-out filing we generate the prediction, then compare it against the 273 objections those filings actually received. A prediction counts as correct only when it covers the same substantive requirement as a real objection — paraphrasing is allowed, naming the wrong requirement is not. That yields two numbers:
| Output tier | Precision | What it means |
|---|---|---|
| High-confidence flags strongest, corroborated matches | 54% | The items you'd act on first — the top of the ranked list. |
| Full check complete ranked list | — | Surfaces 81% of the objections the filing actually drew. |
A prediction is only worth acting on if objections actually cost time. They do — and the effect is large. Using DOB's own filing-to-permit dates, we measured how long filings took to be permitted, grouped by how many objections they drew — controlling for construction floor area (a far more reliable size measure than declared job cost) to rule out the obvious confounder that bigger projects both draw more objections and take longer.
| Construction area | 0 objections | 1–2 | 3–5 | 6+ |
|---|---|---|---|---|
| Under 2,500 sq ft | 18 d | 82 d | 100 d | 149 d |
| 2,500 – 10,000 sq ft | 31 d | 122 d | 140 d | 201 d |
| 10,000 – 50,000 sq ft | 24 d | 154 d | 185 d | 235 d |
| 50,000+ sq ft | 19 d | 286 d | 265 d | 316 d |
Median days from filing to first permit · DOB NOW filings, 2022–2025 · 550,000+ permitted filings.
That is the whole point of the check. Find the objections before you file, fix them, and file clean — so your filing clears on the first pass instead of cycling through re-review. The relationship is correlational, but the mechanism is direct: every objection triggers a resubmission and another round of review.