How it works
One case, end to end
From the referral landing to the hours being approved — and who can see what at every step.
The path
Eight stages, enforced in order
The status state machine is the single arbiter. The Kanban board, the admin screens and the REST API all call the same advance() method, so there is no back door that lets a case skip a gate.
01
Referral
A referral record is created with its source, funding source and referring contact. The 24-hour welcome-contact window opens immediately and is tracked as a compliance metric, not a sticky note.
02
Welcome contact
First contact is logged against the referral. Missed windows surface on the manager dashboard and on the responsible staff member’s follow-up calendar.
03
Intake & assessment
The referral bridges to a consumer record. Discovery call and pathway assessment are their own records, each a required gate before the case can advance.
04
Barrier plan
Identified barriers become a plan with dated follow-up tasks. Tasks generate notifications and appear on the calendar for whoever owns them.
05
Visits
Each contact is a dated visit record, scored for field completeness and available as proof of service on a timecard entry.
06
Billing readiness
A gate checks that the case has what billing requires before hours against it can be submitted. Nothing bills on vibes.
07
Timecards
Staff assemble their own semi-monthly card from documented visits and submit it. The card locks; an hours-only PDF is generated.
08
Approval & closure
Owners approve or return cards from the approval queue. Cases close with an outcome and a final report record, which feeds the executive rollup.
Who sees what
Eight roles, one capability map
Every record type registers against the same central capability table, so a role change is one edit — not fourteen.
| Role | Data scope | What they see |
|---|---|---|
| CHW | Own caseload | Staff dashboard, own timecard, follow-up calendar, directory |
| Instructor | Own caseload + training | Staff dashboard, training records, own timecard |
| Intake Specialist | Own caseload | Referral intake, staff dashboard, own timecard |
| Referral Coordinator | Own caseload | Referral queue, welcome-contact compliance, own timecard |
| Supervisor | Supervised team | Manager dashboard, pipeline board, training dashboard, team calendar |
| Program Coordinator | Supervised team | Manager dashboard, pipeline board, training dashboard |
| Org Admin | Whole org | All manager screens, settings, directory visibility — but no billing math |
| Owner | Whole org + dollars | Everything, plus the executive dashboard and the timecard approval queue |
Guardrails
The rules that do not bend
- Dollars are Owner-tier. Staff and manager screens show hours. The money query returns null without the capability, so a direct URL gets you nothing.
- Ownership is re-checked server-side. Timecard add, delete and submit all verify the caller owns the card — the UI is not the security boundary.
- Sensitive identifiers are encrypted. Reveals need a capability, a reason, and land in the PII access log.
- The directory is staff-only by default. Making it public requires a separate risk acknowledgment in the same save.
- AI drafts, humans file. The documentation assistant never auto-files a note.
Walk it yourself
The live demo puts every front-end screen on its own page, in role order.