Module 07 · the human stays in charge
Decide
Clean cases clear automatically. Doubtful ones reach a human — with the reasons attached.
Priya’s claim scored 78 — high. The policy lapsed before the loss, and the estimate doesn’t match the photos. Decide does not reject her claim. It routes the case to an investigator with every flag and figure attached, pauses durably — for hours or days — and records whatever the human decides. The engine informs; the human owns the call. That principle is engineered, not just stated.
What we're going to build
Threshold policy engine
Pack-supplied thresholds over the risk and estimate signals: auto-clear below, route above, with per-client overrides. Clean claims settle without a human touch — that’s the speed promise.
Hard caps, enforced
Legal and client-set limits above which nothing auto-clears, ever — enforced in the engine, not left to configuration discipline. The IRDAI sub-₹50k context is a pack setting; the cap mechanism is platform.
Durable human-in-the-loop
A routed case parks, durably, until the Review Console returns a decision — days later if needed. Webhooks fire on every transition so the client’s systems always know where the case stands.
Decisions as audit objects
Every decision — automated or human — lands in the event log with its inputs, thresholds, and model versions. Regulator-grade replay is a query, not an archaeology project.
Corrections close the loop
When the investigator overturns a flag, that correction becomes a label. Decide is where the learning loop starts, not just where the case ends.
For engineers & architectsimplementation notes
- Hard caps are enforced in the engine as invariants (a decision above cap without a human event is unrepresentable), not validated in pack config — config review is not a safety mechanism.
- Routed cases park as durable workflow timers/waits; the Review Console resolution is just another case event, so crash-recovery and audit come free from event sourcing.
- Every decision event embeds: threshold version, rule versions, model versions, input signal refs — regulator replay is
fold(events), no joins across mutable tables.
- Failure modes: webhook endpoint down → signed retries with backoff + a replay API; reviewer SLA breach emits an escalation event the client can route on.
Open questions — for the room
- Who tunes thresholds in a pilot — us, the insurer’s claims head, or jointly with a dashboard?
- Review Console v1: build minimal in-house, or is the insurer’s existing queue the UI?
- What is the SLA story for a case parked on human review — ours or the client’s?
- Appeal path: when a claimant disputes, what does the case replay owe them (DPDP)?