Not a screen. A product — its own routes, its own status values, its own data, and its own reason for looking the way it does. This is what one brief produced, and what an audit found in it.
Preview interactive design
Cargo arrives damaged, a customer files, and an adjuster has a year from delivery to investigate, decide and pay. Every screen in this product exists because that job needed it.
01The screens →Four mandatory documents — the surveyor’s report, the packing list, the commercial invoice, the delivery receipt. Until every one of them is on file, the decision surface stays shut.
illegible is its own state02DecideApprove in full, approve in part or reject, against a liability cap the bill of lading imposes. Past her own authority the adjuster is not blocked — the button changes to send it for signature.
the cap is derived, never typed03RecoverOnce the customer is paid, pursue whoever caused it — the terminal, the haulier, the packer, the lashing contractor — on a deadline that comes out of their contract rather than out of the law.
its own clock, its own setNineteen registered routes across five destinations, and every one of them lands. Nothing here is a dead end drawn to fill a slot in a sitemap.
02The status set →The queue promises a payable figure; this is the screen that owes an answer for it. Claimed, less depreciation and betterment, salvage and the deductible, then a hard rule at the liability cap. No other screen subtracts anything.

Four mandatory documents and one that is only supporting, so the count reads four of four against a five-row list. Nothing is ever deleted here: a document rejected as illegible stays on the file carrying its reason.

Approve in full, approve in part, or reject with a reason from the list and a justification in writing. The customer’s letter builds from the figures being typed rather than from a description of them, and nothing is recorded until it is submitted.

Two decisions over the adjuster’s authority are with the claims manager, longest wait first. Nothing on this screen is hers to approve, and it says so — her two actions are to chase one or to take it back.

Every value a claim can hold, declared once and stored. Time-barred is not among them: it is computed at render from the delivery date, and the enum file lists it under the values that are deliberately absent because they are derived.
03The awkward cases →Demo data arranged to look good proves nothing. These are the records that break a screen, and they were in the set from the first pass.
04The audit →Each aggregate matched against the array it claims to summarise. It found a recovery holding its own copy of what the claim had paid — so when a liability cap bit and the settlement fell to meet it, the two figures disagreed for a build. This file stores neither of them now.
05Back to the top →
Reckon
This is one of several. Each has its own routes, its own status values, and its own awkward cases waiting to be found.