Denver opens an AI completeness check for permit applications, using the CivCheck tool that caught 87% of in-scope intake errors in Seattle's test
StartSmart moves the completeness check to the applicant's side of permit intake, before the city receives the package. In Seattle's test on 29 past residential applications, CivCheck caught 48 of the 55 in-scope reasons reviewers had given for rejecting them.
- Seattle test, in-scope intake errors caught
- 87%48 of 55, March to October 2025
- Launched
- Nov. 5, 2026Building permits and site plans
- Cost to applicants
- FreeVoluntary during evaluation
- Denver contract
- $4.6 millionApproved 10 votes to 1, March
CivCheck caught 48 of the 55 intake errors its checks covered; 35 fell outside the checks
The City and County of Denver launched StartSmart: Application Intake Assistant on November 5, 2026. It is a free web tool that reads a building permit or formal site development plan application before it is submitted and flags missing or incomplete items against the city's intake requirements. Denver built it with CivCheck, the AI pre-screening product that Seattle tested on 29 past residential applications in 2025. In that test, CivCheck caught 87% of the in-scope reasons city staff had given for rejecting those packages at intake. The workflow it changes is permit intake, the gate a package has to pass before plan review starts.
What it doesStartSmart checks a package in four steps, and Denver says only the second uses AI
Today a permit coordinator, or the architect's team on a design-build job, uploads the plan set and forms to E-permits, Denver's online permitting portal, and waits for an intake screener to say whether the package is complete. Denver says an incomplete package comes back with a request to resubmit, and that exchange can run for days. StartSmart moves the completeness check to the applicant's side, before the city receives anything.
Only the extraction step uses AI; the checks run on fixed rules the city wrote
- Step 1UploadThe applicant creates a free account on CivCheck's Denver portal, using the same email as the E-permits account, starts a project and uploads the PDFs.
- Step 2Extract AIAI reads the plan sheets and forms and pulls out dimensions, labels and required data fields. Denver says this extraction is the only step that uses AI.
- Step 3CheckThe extracted data runs through fixed rules the city wrote for that project type. Each flag carries an explanation and a citation to the requirement behind it, and the applicant either fixes the document or explains the item.
- Step 4ReportThe tool writes a pre-screening report, watermarks the checked documents and creates the E-permits record, where the applicant finishes and submits. Intake staff read the report alongside the package and still decide whether it is ready for review.
Denver calls the rule checks deterministic, meaning the same sheet gets the same pass or fail every time. The city says the rules do not change with usage, and uploaded documents are not used to train AI models.
Denver lists architects, engineers, contractors and homeowners as users and says the person who knows the design best should run the check. On a GC-pulled permit that is usually the project engineer or design manager who assembles the package. The tool covers first submissions only. Reviewer corrections and resubmittals stay in E-permits.
Eligible applications are LOG building permits for commercial, multifamily, single-unit, two-unit, ADU and industrial work, including the Main, Intermediate and Walk Through tracks, plus residential interior remodels and formal site development plans. Denver says more application types are expected in 2027.
Evidence so farSeattle's test on 29 past applications is the closest measurement
The evidence is Denver's announcement and FAQ, a March 2026 Denverite report on the contract, and a June 2026 evaluation report from Seattle's Innovation & Performance team on its own test of CivCheck. Denver is in an evaluation period, and results from its own use of the tool are not yet public.
Denver's stated goal came up when the City Council approved a $4.6 million contract for the tool in March, 10 votes to 1. Robert Peek of the planning department told the council the city approves 37% of applications on first review and hopes to reach 80% with the new technology, Denverite reported. Councilmember Sarah Parady asked the planning department to review the contract after a year.
Denver approves 37% of applications on first review and hopes to reach 80%
Seattle's test is the closest measurement. From March to October 2025, CivCheck staff loaded historical applications for small residential projects, such as townhouses, single-family homes and ADUs, and Seattle Department of Construction and Inspections (SDCI) reviewers compared the output with their own decisions. Applicants did not use the tool during the test. These results come from Seattle's report:
CivCheck agreed with reviewers' final decisions on 91.7% of plan review checks
| Stage | Applications | What was compared | Result |
|---|---|---|---|
| Intake screening | 29 | 90 rejection reasons logged by SDCI reviewers | 35 outside the 34 configured checks |
| Intake screening | 29 | 55 in-scope rejection reasons | 48 caught by CivCheck (87%) |
| Intake screening | 29 | 55 in-scope rejection reasons | 7 missed by CivCheck |
| Intake screening | 29 | Extra flags | 4 topographic survey flags that screeners had waived |
| Plan review | 57 | 1,262 zoning and ordinance/structural checks | 91.7% agreement with reviewers' final decisions |
| Plan review | 57 | 1,262 zoning and ordinance/structural checks | 6.4% passed by CivCheck but sent back for correction by reviewers |
| Plan review | 57 | 1,262 zoning and ordinance/structural checks | 1.9% flagged by CivCheck but approved by reviewers |
The 87% figure is recall, the share of real intake problems the tool flagged. It applies to the 34 completeness checks Seattle configured. Another 35 of the 90 rejection reasons fell outside those checks, so a package that passed the pilot setup could still have come back. The four extra flags were topographic surveys that screeners had waived, including one for basement-only work on a steep lot.
Seattle then modeled what pre-screening would do to calendar time, assuming applicants fix every flagged item before they submit. Scenario A uses the checks from the pilot. Scenario B assumes every intake check is automated and removes one full plan review cycle.
With the pilot checks, Seattle's model cuts median intake time from 54.5 days to 29
| Measure | Actual, no pre-screen | Scenario A, pilot checks | Scenario B, all intake checks |
|---|---|---|---|
| Median calendar days to pass intake screening | 54.5 | 29 | 8 |
| Average intake review cycles | 2.55 | 1.75 | 1 |
| Average intake reviews (zoning plus ordinance/structural) | 3.86 | 3.34 | 2 |
| Median calendar days to pass plan review | 161 | 146 | 117 |
| Median correction cycles to pass plan review | 3.72 | 3.39 | 2.72 |
The intake rows are where the model moves most, from a median of 54.5 days to 29 with the pilot checks. Plan review moves less, because about six review teams work in parallel and the overall time only drops when the slowest review gets shorter. Seattle's authors say each review cycle takes about a month, and they recommended a production pilot limited to completeness screening.
The report also lists which code checks failed most often in the sampled applications. Smoke and carbon monoxide alarm issues each turned up in 8 applications in the ordinance/structural sample, an error rate of 44%. Maximum lot coverage was the most common zoning miss.
Maximum lot coverage turned up in 75% of the zoning sample, and smoke and CO alarms in 44% of the structural sample
| Check | ApplicationsApps. | Error rateRate | Bar | Issue type |
|---|---|---|---|---|
| Zoning review | ||||
| Maximum lot coverage | 9 | 75% | Code noncompliance | |
| Trees: caliper inches | 8 | 67% | Missing information | |
| Building height | 6 | 50% | Missing information, code noncompliance | |
| Front yard | 6 | 50% | Code noncompliance | |
| Floor area ratio | 5 | 42% | Code noncompliance | |
| Rear yard | 5 | 42% | Code noncompliance | |
| Ordinance/structural review | ||||
| Carbon monoxide alarms | 8 | 44% | Code noncompliance | |
| Smoke alarms | 8 | 44% | Code noncompliance | |
| Fire separation distance (non-sprinklered) | 5 | 28% | Code noncompliance | |
| Fire separation distance between buildings (detached ADUs) | 3 | 17% | Code noncompliance | |
| Required heating | 3 | 17% | Code noncompliance | |
| Stairway: handrail | 3 | 17% | Code noncompliance | |
How to measure it on your projectsDenver's dashboard showed 58 days from submittal to approval, so measure intake on its own
Track intake attempts per application and calendar days to intake acceptance. The first counts how many times a package goes to the city before it is accepted for plan review. The second runs from the first upload to the acceptance date in E-permits. Both come from E-permits records you already keep.
Capture the baseline from your last several Denver applications before your team runs its first StartSmart check, and list every intake rejection reason by sheet or form. Once you start using the tool, log how many flags led to a document change, how many the city waived, and what intake still caught after a clean report. Those last two counts match the misses and extra flags in Seattle's results.
Six counts, three to capture before the first StartSmart check and three after
| Metric | Definition | Baseline to capture |
|---|---|---|
| AIntake attempts per application | Times a package goes to the city before it is accepted for plan review | Your last several Denver applications from E-permits records |
| BCalendar days to intake acceptance | Days from the first upload to the date the city accepts the package for plan review | The same applications and their E-permits dates |
| CIntake rejection reasons | Each reason the city gave for returning a package at intake | A list by sheet or form for the same applications |
| DFlags your team acted on | Share of StartSmart flags that led to a document change | Starts with the first StartSmart submission |
| EFlags the city waived | StartSmart flags that intake staff set aside for the project | Starts with the first StartSmart submission |
| FItems intake still caught | Rejection reasons the city gave after a clean StartSmart report | Starts with the first StartSmart submission |
Keep intake separate from the rest of review time. Denver's review time dashboard showed an average of 58 days from submittal to approval over the prior 90 days in its opening view on November 8, a figure that counts city time and applicant time together. It also lists 90-day estimates by discipline, which is where most of a permit's calendar time sits after intake.
Initial review estimates run from 1 to 3 days for Landmark to 13 to 30 days for Forestry
| Review task | Initial reviews | Initial, est. days | Estimated days | Resubmittals | Resubmittal, est. days |
|---|---|---|---|---|---|
| Forestry | 93 | 13 to 30 | 77 | 12 to 31 | |
| Parkview | 11 | 16 to 28 | 4 | about 16 | |
| Fire | 480 | 15 to 22 | 156 | 9 to 15 | |
| Energy | 263 | 12 to 22 | 206 | 8 to 14 | |
| Architectural | 482 | 11 to 18 | 404 | 5 to 13 | |
| Urban Design | 82 | 8 to 18 | 31 | 5 to 10 | |
| Structural | 563 | 11 to 17 | 406 | 6 to 14 | |
| Zoning (Commercial) | 645 | 11 to 17 | 540 | 5 to 8 | |
| Plumbing | 285 | 10 to 17 | 156 | 5 to 12 | |
| Mechanical | 382 | 9 to 16 | 230 | 4 to 10 | |
| Transportation | 388 | 7 to 15 | 85 | 5 to 14 | |
| Access Control | 114 | 5 to 15 | 69 | 3 to 7 | |
| DDPHE | 393 | 9 to 14 | 50 | 7 to 12 | |
| Electrical | 813 | 8 to 14 | 455 | 4 to 8 | |
| SUDP | 1,396 | 7 to 14 | 1,369 | 5 to 8 | |
| Zone Lot Verification | 306 | 8 to 13 | 26 | 5 to 11 | |
| Residential | 757 | 6 to 13 | 504 | 5 to 13 | |
| Zoning (Residential) | 693 | 6 to 13 | 556 | 5 to 12 | |
| Landmark | 471 | 1 to 3 | 91 | 4 to 7 | |
0102030days |
The same before-and-after method appears in our post on measuring RFI turnaround before an AI pilot, and UpCodes' AI Plan Review runs a similar code check from the design side.
First step on one job
For your next Denver submission, write down the first upload date, every intake rejection reason and the acceptance date, then pull the same three items for the last three packages your office submitted without the tool.
Availability and costStartSmart is free to applicants, and CivCheck has worked with 13 jurisdictions
StartSmart is free for applicants, with no fee per account or per project. It is voluntary during Denver's evaluation period, and the city says any decision to require it would come with stakeholder engagement and advance notice. The StartSmart and E-permits accounts are separate.
Seattle's report says CivCheck, now owned by Clariti, has worked with 13 jurisdictions across North America. Seattle's 2026 budget includes funding for a production pilot of completeness screening.
Data behind this page: check accuracy, intake scenarios, common errors, Denver review times and pilot metrics (CSV).