Documentation

What's in the data, how it's organized, and how to plug it into your stack.

EntitleHQ is a structured, queryable model of U.S. land-development permitting — the permits, the agencies, the forms, and the rules that decide which apply. This page explains what we hold, how it's shaped, how a project resolves to a permit set, and how EntitleHQ connects to the tools AEC teams already run.

The data

Four layers, one project graph: what's required, who runs it, what form to file, and where the jurisdiction lines fall.

241
Permit definitions
Federal, state & local permits with trigger logic, agency, timeline, cost, and dependency notes.
700+
Official forms
Application forms mapped across the major permit types, linked to the authoritative agency source.
317
Agency contacts
Verified permitting-office entries — all 50 states plus federal (USACE, EPA, USFWS).
380
Jurisdictions / AHJs
Cities and building departments resolved from ZIP so local permits attach to the right office.
51
State env. profiles
Per-state stormwater, wetlands, water-rights, land-use, and species regimes (50 states + DC).
5
AI actions
Scope, pre-fill, fill-PDF, document-read, and agentic execution over the project's live data.

How it's organized

Everything hangs off a single primitive: the permit definition. Each one carries the logic that decides whether it applies to a given project, plus the metadata a filer needs.

// A permit definition — the core object
{
  id:      'cgp',
  name:    'NPDES Construction General Permit (CGP / SWPPP)',
  agency:  i => ST_ENV[i.state] || 'State Environmental Agency',
  level:   'state',        // federal | state | local
  time:    '7–14 days',     // typical review window
  cost:    '$0 filing; SWPPP required',
  chk:     i => (i.over1ac || i.ms4_area) ? 'req' : null,  // the trigger rule
  why:     () => 'Ground disturbance >1 acre triggers the CGP.',
  trees:   ['consultant', 'owner']   // who typically holds it
}

The four data layers

  • Permit catalog — the 241 definitions above. A federal + base set applies nationwide; per-state extensions (currently AZ, CA, CO, FL, GA, IL, NC, NY, TX, WA) layer in state-specific programs.
  • Forms directory — maps each permit id to its official application form(s), tagged pdf (stable direct download) or page (agency page when the PDF URL is volatile). Re-verified monthly.
  • Agency & jurisdiction data — contact records keyed to permit IDs, plus a ZIP→city→AHJ resolver so "local grading permit" becomes "City of Boise Public Works."
  • State environmental profiles — the narrative + structured regime for each state: construction stormwater, §404 assumption status, wetlands, water rights, land-use review (e.g. Act 250, CEQA), and species overlays.

How it's queried

A project isn't a search box — it's a set of facts. EntitleHQ evaluates every permit's chk() rule against those facts and returns a ranked, deduplicated permit set.

1

Project facts

State (from ZIP), project type, and site triggers: acreage, waterway proximity, floodplain, contamination, utilities.

2

Rule evaluation

Each permit's chk() runs against the facts, returning req (required), evl (evaluate), or null.

3

Resolve & rank

Agency, forms, and AHJ are attached; results ordered by level and review timeline; duplicates collapsed.

4

Structured output

A trackable permit set — each with agency, form link, timeline, cost, and the "why it applies" rationale.

// Query = facts in, permit set out
input = { state:'ID', projectType:'land_dev', over1ac:true, waterway:true, floodplain:true }

result = PERMITS
  .map(p => ({ ...p, status: p.chk(input) }))   // evaluate every rule
  .filter(p => p.status)                          // keep req + evl
  .map(p => resolveAgencyFormAHJ(p, input))       // attach agency, form, office
  .sort(byLevelThenTimeline)

Because triggers are declarative functions rather than a static list, the same project entered in Idaho and Florida returns different sets — Idaho surfaces the state CGP + ACHD ROW; Florida adds the SWFWMD/SJRWMD Environmental Resource Permit.

The AI layer

On top of the structured model sits an AI layer that reads documents, drafts applications, and executes in-portal. It always operates against the project's live permit set — never a blank prompt.

  • Scope & explain (chat) — plain-English Q&A grounded in the active project's permits and agencies.
  • Document read (permit_doc) — upload a plan set, agency letter, or issued permit; the model extracts status, dates, fees, conditions, and updates the tracker.
  • Pre-fill (prefill) — maps project data onto an application's fields and flags what's still missing.
  • Fill PDF (fill_pdf) — writes the mapped values into the actual government PDF via the form's field schema.
  • Agentic execution (agent) — tool-use loop that can make changes in-portal; every action is shown and reversible, so you stay in QA.

AEC integrations

EntitleHQ is designed to sit inside the stack you already run, not replace it. Below is the integration surface — what's live, what's in beta, and what we'll build with design partners. Live Beta Planned

Design & BIM

ToolWhat connectsStatus
Autodesk Civil 3DPull disturbed-area, grading, and drainage quantities from the model to auto-populate CGP/SWPPP and grading-permit triggers.Planned
Autodesk Construction Cloud / BIM 360Sync issued permits and conditions into the project's docs; push agency correspondence back.Planned
Bentley OpenRoads / MicroStationRead alignment & earthwork data for corridor and ROW permit scoping.Planned

Project & document management

ToolWhat connectsStatus
ProcoreTwo-way sync of the permit log — EntitleHQ owns scoping & filing; Procore holds the field record.Planned
Bluebeam RevuExport the permit set + submittal checklist as a Studio session; ingest marked-up plan sheets.Planned
Deltek Vantagepoint / AjeraPush permit fees & agency milestones into the project financials and schedule.Planned
Monday / Asana / SmartsheetMirror permit deadlines and conditions as tasks with assignees.Beta

GIS & e-permitting portals

ToolWhat connectsStatus
Esri ArcGISOverlay parcels against FEMA floodplain, wetlands, and jurisdiction layers to sharpen trigger detection.Planned
Accela · Tyler EnerGov · OpenGov · ProjectDoxSubmit applications directly into municipal e-permitting portals and read back review status.Planned
EPA NeT · state NOI systemsFile Construction General Permit Notices of Intent and pull authorization numbers.Beta

Platform & automation

SurfaceWhat connectsStatus
REST APIProgrammatic access to the scoping engine, forms directory, and project permit sets.Planned
WebhooksFire on permit status change, deadline approaching, or new condition — into Slack, Teams, or your PM tool.Beta
Zapier / MakeNo-code connectors to 6,000+ apps for teams without engineering.Planned
SSO (SAML / Google)Firm-wide single sign-on and seat provisioning for Team plans.Planned

Building on our data?

The scoping engine and forms directory are the pieces most teams want to embed. If you're a firm or a proptech platform that wants API or portal access, we build integrations with design partners first. Book a call →

Accuracy & sourcing

The data is only worth what it's right about. Three commitments hold the model honest.

  • Authoritative sources. Every form links to the issuing agency's official page. State profiles cite the governing statute or program (e.g. NPDES CGP number, Act 250, CEQA).
  • Human-in-the-loop. AI-drafted and AI-filed content is always shown and reversible before it leaves the portal — the app is your QA surface, not an autopilot you can't see.
  • Built by a licensed civil P.E. The trigger logic reflects how permitting actually works on real land-development projects, not a scraped keyword index.