Skip to content

Add permits profile for permits and licences - #2

Merged
lukefretwell merged 1 commit into
mainfrom
permits-profile
Sep 7, 2026
Merged

lukefretwell merged 1 commit into
mainfrom
permits-profile

Conversation

@lukefretwell

Copy link
Copy Markdown
Member

Building permits and business licences are the highest-volume records most governments hold. schema:GovernmentPermit is a real type and supplies the grant itself - issuedBy, validFrom, validUntil, validIn - but nothing about the application that produced it: who applied, when, what was decided, what it concerns, what it cost, on what conditions. That is where nearly all the public interest lies, so those fields are minted here.

permitType is deliberately generic. The same permission is a building permit in the US, planning permission in the UK, a permis de construire in France and a Baugenehmigung in Germany, so a code list of national names would not travel. BLDS is the closest existing standard and is US-only, which is why this profile takes the _core scheme-qualified identifier approach rather than adopting it.

Refusals, withdrawals and revocations are in the status list, not only the happy path: a dataset containing only granted permits cannot answer what proportion of applications succeed, which is one of the main questions asked of this data.

Processing time is enforced rather than assumed. applicationDate with decisionDate is what makes 'how long does this take' answerable, so the validator rejects a permit decided before it was applied for, completed before it was decided, expiring before it becomes valid, or marked issued or completed with no decisionDate.

applicant is optional by design. A business licence names a business and that is public; a residential building permit ties a named private individual to their home address, which is a disclosure decision the authority must take deliberately rather than one the schema forces. The fixtures show both - a company named on a commercial conversion, and a residential repair published with the works, value and dates but no applicant and no street address.

10 profiles, 29 schemas, 32 code lists, 292 namespace URLs.

Building permits and business licences are the highest-volume records most
governments hold. schema:GovernmentPermit is a real type and supplies the grant
itself - issuedBy, validFrom, validUntil, validIn - but nothing about the
application that produced it: who applied, when, what was decided, what it
concerns, what it cost, on what conditions. That is where nearly all the public
interest lies, so those fields are minted here.

permitType is deliberately generic. The same permission is a building permit in
the US, planning permission in the UK, a permis de construire in France and a
Baugenehmigung in Germany, so a code list of national names would not travel.
BLDS is the closest existing standard and is US-only, which is why this profile
takes the _core scheme-qualified identifier approach rather than adopting it.

Refusals, withdrawals and revocations are in the status list, not only the happy
path: a dataset containing only granted permits cannot answer what proportion of
applications succeed, which is one of the main questions asked of this data.

Processing time is enforced rather than assumed. applicationDate with
decisionDate is what makes 'how long does this take' answerable, so the
validator rejects a permit decided before it was applied for, completed before
it was decided, expiring before it becomes valid, or marked issued or completed
with no decisionDate.

applicant is optional by design. A business licence names a business and that is
public; a residential building permit ties a named private individual to their
home address, which is a disclosure decision the authority must take
deliberately rather than one the schema forces. The fixtures show both - a
company named on a commercial conversion, and a residential repair published
with the works, value and dates but no applicant and no street address.

10 profiles, 29 schemas, 32 code lists, 292 namespace URLs.
@lukefretwell
lukefretwell merged commit 641d7ff into main Sep 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant