Republic of South Africa · synthetic prototype · specification v1.1

National Case Ledger

A working demonstrator for the people who draft the instruments. Every button runs the real engines; every result says what was recorded and why.
taxonomy draft SIMULATED_AUTH · roles are selected, not authenticated synthetic data only

The journey of a case, and eight things the ledger must get right

A reported crime becomes a docket, moves between hands, reaches a prosecutor, reaches a court. The ledger records identity and movement — never contents — and the court records, independently of the police, whether the docket arrived.

Guided stories

Each step is executed against the ledger when you click it. Read the outcome, then the rule that requires it.

Roles, stations and courts are synthetic. The drafting rules A1–A8 are from policy/README.md; identifiers such as WF-002 or STAT-F08 are requirement IDs in the specification.

Capture

What a member sees at the counter, in the charge office, or in court. The permitted events depend on the selected role; the required fields depend on the event code.

Leave empty to submit with a provisional reference (DATA-003). Code 102 requires a verified reference.

More than five minutes in the future is quarantined (OPS-002).
Submitting an unchanged form again resends the same source event ID and returns the original receipt. "Resend under the last ID" sends whatever the form now holds under the previous ID: unchanged content replays, changed content is refused with 409.

Read a timeline as this role

Out of scope and absent look identical (IAM-005).

Reconciliation findings

What the ledger concludes when the court's observation and the police's records are compared — and what it refuses to conclude.

DOCKET-ABSENCE-v1 plus the §9.2 rules. Findings are data-integrity signals, never misconduct classifications.

DOCKET-ABSENCE-v1 (§9.1): one finding per hearing at which the court recorded the docket absent

Every 401 observation is preserved. MATCHED_MISSING_REPORT: the police had already reported the docket missing (107) before the hearing and had not closed it (108); the finding tracks recovery. WAITING_FOR_SOURCE: the police deadline plus grace has not yet elapsed, so no conclusion is drawn. UNEXPLAINED_ABSENCE: the deadline elapsed, the station's stream was complete for the window, and no report exists; the station commander (R04) must explain within three working days and the court steward (R11) responds. SOURCE_INCOMPLETE: the deadline elapsed but the station's feed was not complete for the window, so absence of a report is not evidence. DISPUTED and RESOLVED_WITH_EVIDENCE are set only by a human (R12) and never changed by the rule.

Other rules (§9.2): custody gaps, referral gaps, reason gaps, late bulk entry, residual reasons, feed silence, intake integrity

Each row is a data-integrity signal with a fingerprint, so re-running the rules updates the row rather than duplicating it. A signal names a unit or a docket and what is missing; it does not name a person and it is not a misconduct classification.

Finding history (append-only)

Custody

The movement register as a system record: every handover is two attestations by two people, a dispatch never names the recipient as custodian, and an open handover stays visible until someone scans the docket in.

Click a docket to open its register.

The paper backlog

The 1.9 million open paper dockets are never scanned. A census gives the denominator, enrolment on touch gives the numerator, and the gap between them is the first honest number. A station with no census rows is reported as not reported — never zero.

Six months without a ledger event moves a census case to DORMANT_LEGACY (legacy/README §3, layer 3).

L4 legacy-population report, by station

The census roll

Each row asserts that a record existed in a source system at the census instant, in the exact format the station held it. It does not assert that a physical docket exists.

What the paper produces, and what the ledger records

Nothing in the right-hand column requires reading the docket.

Publication

Only a package that passed every automated check, was cleared by the Information Officer and approved by a different person is copied — byte for byte — to the public store and the independent archive.

Click a release to read what it says, what it passed, and where its copies are.

Public status entries

The ledger itself

Append-only streams, hash-chained envelopes, signed checkpoints held elsewhere, and an audit record for every allow and every deny.

Streams

Audit (latest 25)

The rules, and whether the system keeps them

Built from the sources every time the page loads: every requirement identifier in specification v1.1, the eight drafting rules and seven instrument checklists in the policy guide, the traceability matrix, the verification report and the decision register. Each item carries one status. Absence is listed, never omitted.