Permits & Zoning Compliance
Country-aware permit applications, zoning & land-use rules, and legal contracts & liens for every jobsite.
Overview
Permits & Zoning Compliance is Construction's legal paperwork group — three screens that track everything a jobsite needs on file with a regulator, a municipality, or a subcontractor's insurer, all sharing the same jurisdiction-aware form engine so no screen hand-codes a country's paperwork rules.
Permit Applications
Building, environmental, and scaffolding permits per jobsite — issuing authority, submission/expiry dates, status, and which permits are critical enough to gate site work.
Zoning & Land Use Rules
Each parcel's legal building envelope — floor area ratio, lot coverage, height and setbacks, seismic classification — compared against what's actually being designed.
Legal Contracts & Liens
Master contracts, insurance policies, mechanic's liens, and lien waivers held against subcontractors and suppliers, plus the financial exposure they carry.
Jurisdiction-Aware
Every form is generated by the Compliance Engine from the jobsite's own country — a Turkish site sees Ada/Parsel/SGK fields, a US site sees parcel/OSHA/contractor-license fields.
Quick Start
- Open any of the three screens from the Permits & Zoning Compliance sidebar group.
- In the toolbar, confirm or override the jurisdiction — it's pre-filled from the active jobsite's country, but can be changed with the Globe/ChevronDown dropdown.
- Click New Record and pick the jobsite the record belongs to.
- Inside the modal, click Generate Form to pull the jurisdiction-specific field set from the Compliance Engine, or fill in the standard fields directly.
- Save the record — it appears immediately in the screen's ledger with a monospace ID (
PRM-,PAR-, orCTR-prefixed). - Watch the health/risk gauge at the top of each screen — it flags expiring permits, overbuilt parcels, or unresolved legal exposure at a glance.
Different Countries, Different Regulations
Construction jobsites operate under different legal regimes depending on where they are — Turkish sites file Ada/Parsel/SGK paperwork, US sites file parcel/OSHA/contractor-license paperwork. Rather than hand-coding a separate form per country per screen, all three screens in this group ask the Compliance Engine for a schema built from the jobsite's own jurisdiction, and render whatever comes back through a shared dynamic form renderer. Permit Applications tracks the permits themselves and their expiry dates; Zoning & Land Use Rules tracks each parcel's legal building limits against what's actually being designed; Legal Contracts & Liens tracks the paperwork trail with subcontractors and suppliers and the financial exposure it carries.
Permit Applications, Zoning & Land Use Rules, and Legal Contracts & Liens share a common data model and a shared set of cross-screen behaviors for expiry checking, zoning-variance calculation, syncing to Real Estate, risk exposure totals, subcontractor compliance checks, and deriving the subcontractor registry. All three screens share the same jurisdiction-picker pattern: a toolbar-level searchable dropdown styled with a Globe icon and a ChevronDown (so it reads as a dropdown filter rather than a search box), pre-filled from the selected jobsite's country/region and overridable per-record inside the Add/Edit modal.
1. Permit Applications
Purpose: The register of building, environmental, and scaffolding permits for every jobsite — issuing authority, submission and expiry dates, status, and whether the permit is critical enough to gate site work.
Key features
- Monospace permit IDs — auto-numbered as
PRM-2026-0001and up, scoped per calendar year. - Three permit categories —
building/environmental/scaffolding, each mapped to a dynamicpermitTypevalue ({category}_permit) that's sent to the Compliance Engine when generating the form. - Four-state status —
pending/approved_active/expired/revoked. - Critical flag — a permit can be marked critical, meaning its expiry or revocation should block site work; the compliance health gauge in the toolbar shows the number of days to the nearest critical permit's expiry across every critical permit.
- Country-aware "Generate Form" button — inside the Add/Edit modal, this pulls the jurisdiction-specific field set from the Compliance Engine and renders it in place — a Turkish jobsite gets Ada/Parsel/Pafta/SGK/TAKS/KAKS fields, a US jobsite gets Parcel ID/Contractor License/OSHA fields, anything else gets the generic fallback form.
Integration triggers
| Action | What it does |
|---|---|
| Mark a critical permit expired/revoked | The jobsite is flagged as having an invalid critical permit — the check exists and is correct, but as of this session it is not yet actually consulted by Daily Site Logs or Subcontractor Tasks in Site Execution, so nothing in those two screens currently reacts to a blocked jobsite. This is a real, acknowledged gap, not a hidden one. |
| Change the jurisdiction picker | Re-generating the form schema for the newly selected country replaces the dynamic field set shown in the modal — the stored form data from a previous jurisdiction is not automatically migrated. |
2. Zoning & Land Use Rules
Purpose: Each parcel's legal building envelope — zoning district, floor area ratio, lot coverage, height and setback limits, seismic classification — compared against what's actually being designed for that parcel.
Key features
- Monospace parcel IDs — auto-numbered as
PAR-2026-0001and up. - Legal maximums vs. designed values —
maxFloorAreaRatio/maxLotCoverageRatio/maxHeightMeters/three setback fields hold the legal limits;designedFloorAreaRatio/designedLotCoverageRatiohold what the architect is actually proposing. - Overbuild variance meter — the screen takes the larger of the FAR ratio and lot-coverage ratio (designed ÷ legal max) and flags an overbuild whenever that ratio exceeds 1.
- Seismic classification — reuses the same seismic classification categories Real Estate already defines, rather than inventing a parallel set.
- Fixed permit type — every zoning record's Compliance Engine request uses the same fixed permit type internally.
- "Sync with Property Valuation" action — pushes this parcel's zoning district, FAR, lot coverage, height, and seismic classification onto a matching Real Estate property's zoning constraints, and records which property the parcel was synced to.
Integration triggers
| Action | What it does |
|---|---|
| Sync with Property Valuation | Writes the zoning constraints onto the matched property in Real Estate. As of this session, Real Estate's Property Valuation screen does not yet read this field back into its appraisal math — the sync only writes today; feeding it into valuation is known future work, already surfaced to the user earlier this session, not something this doc should imply is finished. |
| Design exceeds a legal maximum | The variance calculation returns a ratio above 1, which the screen renders as an overbuild warning next to the record. |
3. Legal Contracts & Liens
Purpose: The paper trail of master contracts, insurance policies, mechanic's liens, and lien waivers held against subcontractors and suppliers — and the financial exposure that trail represents.
Key features
- Monospace contract IDs — auto-numbered as
CTR-2026-0001and up. - Two entity types —
subcontractororsupplier; a subcontractor's name is a free-text name, since Construction deliberately has no dedicated Subcontractor Root Entity — the subcontractor list is instead derived as a unique, sorted name list from existing Subcontractor Task records, the same "derive from usage" pattern already used for vendors seen only in material deliveries. This is a deliberate architectural choice made this session, not an oversight. - Four document types —
master_contract/insurance_policy/mechanics_lien/lien_waiver. - Four-state status —
active/disputed/settled/breach_notice. - Risk exposure gauge — sums the value at risk across every
disputed/breach_noticecontract, plus anyinsurance_policydocument that isn't currentlyactive. - Fixed permit type — every legal record's Compliance Engine request uses the same fixed permit type internally.
- Subcontractor compliance check — returns true only when the subcontractor has an active master contract, valid (active or settled) insurance, and no unresolved lien — or when no legal record exists yet at all.
Integration triggers
| Action | What it does |
|---|---|
| Subcontractor fails compliance | The compliance check returns false. As of this session, Equipment Allocation and Daily Site Logs do not yet consult this check before allowing a subcontractor or crew to be assigned — the check is real and correct, but the cross-screen enforcement wiring in those two screens hasn't been built yet. This is a real gap, stated plainly rather than implied as finished. |
| Log a disputed contract or breach notice | Its value at risk is immediately counted on the next render of the toolbar gauge. |
End-to-end data flow
| Source screen | Action | Target screen / record |
|---|---|---|
| Permit Applications | Critical permit marked expired or revoked | Jobsite flagged as having an invalid critical permit — not yet consumed by Daily Site Logs or Subcontractor Tasks in Site Execution (known gap) |
| Zoning & Land Use Rules | "Sync with Property Valuation" action | Writes the zoning constraints onto the matched property in Real Estate — not yet read back by Property Valuation (known gap); see Real Estate |
| Legal Contracts & Liens | Subcontractor fails the compliance check | Not yet consumed by Equipment Allocation or Daily Site Logs (known gap) |
| Permit Applications / Zoning / Legal Contracts | "Generate Form" in the Add/Edit modal | Compliance Engine builds a jurisdiction-specific field schema, rendered in place |
AI Assistant on every screen in this group
Permit Applications, Zoning & Land Use Rules, and Legal Contracts & Liens each carry an embedded AI Assistant — the same right-edge panel used across TotalApp, opened from the vertical AI Assistant tab. Every panel reads the live rows on screen (or your current selection), can summarize permit and contract status, flag critical permits nearing expiry or zoning-ratio violations, and answer natural-language questions in Markdown (Turkish or English), and ships with Save as Report and Add Knowledge.