The situation
An authority takes applications from the public, checks documents, routes them for assessment and a decision, and publishes the outcome on a register that citizens and journalists read. There are statutory time limits. The fee schedule changes on a set date. Every decision has to be attributable years later, on appeal, and nothing still being drafted may ever appear on the public register.
These are illustrative scenarios showing how the products are used, not customer case studies.
Build-versus-buy lens
What this helps you decide
Use the example to find where product configuration ends and custom code begins — and whether the boundary leaves your team with less infrastructure to own.
- Model fit
- Can the record shape evolve without coordinating a migration, API and UI release?
- Workflow fit
- Can approvals, exceptions and deadlines move out of application code without losing control?
- Integration fit
- Can your existing APIs become reusable steps with retries, throttling and visible run history?
- Control fit
- Can your team reconstruct model changes, workflow runs and human decisions later?
What gets modeled
The structure as it would actually be defined — sections that repeat are marked.
- Applicationrecord type
- Applicantsection
- Premisessection
Address and use class
- Documentsrepeating section
- Typechoice
Read live from Document types
- Filefile upload
- Decisionsection
- Outcomechoice
- Conditionsrepeating section
A licence can carry many
- Register entryrecord type
The public view; publishes on save
- Fee schedulerecord type
Changes on a set date
How it gets built
In the order somebody would actually do it. Each step names the capability it rests on, so it can be checked against the product pages.
Model the application and its conditions
Documents repeat, and so do the conditions attached to a decision — a licence can carry many, and the number is not known in advance. The decision section is written by the case officer, not the applicant, and the form reflects that.
What it uses: Sections that nest and repeat to any depth
Take applications in through the API, work them in the screens
Publishing gives the application its own REST URL space and a form and table rendered from the same definition. The public intake portal writes through the API; case officers work in the generated screens with typed filters and saved layouts.
What it uses: Its own API on publish, plus forms and tables from the schema
Keep the case file from the first day
History is enabled on the schema, so every write keeps a snapshot and the state of a case on a given date is a lookup. On appeal, what the file said when the decision was made is answerable rather than reconstructed.
What it uses: Snapshot per write, restore to any retained point
Route the assessment against the statutory clock
A trigger starts the assessment run when an application is created, with filters so that minor applications take a shorter path. Deadline warnings fire against the statutory limit and escalation moves a case on when it is at risk, rather than the limit being discovered after it passed.
What it uses: Record triggers with filters, deadline warnings and escalation
Record the decision so it stands up on appeal
The decision is a human decision step with your own outcome vocabulary and reason codes, and the decision chooses the outgoing path. Where the decision warrants it, signing requires re-authentication and the signature is chained so alteration is detectable.
What it uses: Human decision steps with your own vocabulary, and chained signatures
Publish to the register, read-only, on purpose
The register entry schema opts into anonymous read — reads only, with anonymous writes refused outright, and available only for schemas that publish on save. It is opted into per schema and never on by default, so the case file behind it stays closed while the outcome is public.
What it uses: Opt-in anonymous read, per schema, reads only
Change the fees on the day they change
A fee schedule change waits for an approver, then for the date the ordinance names. Until it is published it stays a draft, and the draft is held apart from the published version. A fee somebody has proposed is never what the public API hands out.
What it uses: Publishing on approval and on a schedule, with separate draft and published states
Numbers used above, and where they come from
Every figure on this site is counted from the product itself. Nothing here is a performance or customer claim, because there is no measurement to cite for one.
- field types
- 9field typesCounted from egav/backend/app/api/v1/egav/schemas/entity_type_attribute.py — DataType
- places a choice list can come from
- 5places a choice list can come fromCounted from egav/backend/app/api/v1/egav/schemas/entity_type_attribute.py — OptionSourceType (file is reserved and not counted)
What changes
The public register shows decisions and never drafts, a statutory deadline is a warning before it is a breach, and an appeal years later is answered from the case file rather than from an archive nobody trusts.
Written for Regulated and compliance-driven organizations.