A coordination layer for the part of organ allocation that still runs on the phone — the scramble after the ranked centres say no, which is where kidneys are actually saved or lost.
Roughly one in four deceased-donor kidneys recovered for transplant in the US is never transplanted [1]. Not because it was unusable when recovered, but because the search for a recipient outran the organ's shelf life.
A kidney has perhaps 24–36 hours of viability on ice and degrades throughout. When the ranked centres decline, what happens next is a coordinator on the phone, one centre at a time, reading the same donor details aloud. Fax, email, portal logins, a spreadsheet. When they run out of time or centres, the organ is discarded.
Five things are wrong with that:
The metric is organs not discarded. Response time, acceptance rate and average ETA are instrumentation for that one outcome.
The national registry provides no API to third-party products. The original architecture — offers flowing in through a registry integration — was impossible.
That is not a footnote, it is the design. The product became a layer that runs beside the registry rather than through it: the registry stays the legal system of record, its IDs are typed in as reference fields, and the procurement organisation enters the donor and alerts centres directly.
And the reason it works: the scramble was always manual. A digital layer over a manual process is not a compromise forced by a missing API. It is a truer fit than the integration would have been.
Everything below is the running build, not a mockup. The clocks are live, the data is seeded, and you can open any of it in the demo.
A coordinator does not arrive at a screen wanting to browse. They arrive holding a donor and losing time. So the list leads with the clock and the distribution state, and the primary action — alerting centres — is one click from the row.
This is the screen the equity argument lives on, and section 04 is about the middle of it. The panel underneath it is the part I would show first in an interview: it is the difference between a product that helps you work and one that works when you have stopped.
The response table is the record. Not a report generated beside one — the thing the coordinator works in all night is the same object a regulator would read afterwards. That is the whole answer to the equity objection, and it only works if it is the primary surface.
Most of the hard decisions in this product are about what the other side sees. A centre that accepted and was not chosen used to find out by nothing arriving.
The practice this digitises — expedited, out-of-sequence placement — is not an uncontroversial good. It is under active criticism and increasing regulatory oversight [4].
Of out-of-sequence placements, 3 organisations performed 64% and 2 transplant centres received 25% of the kidneys [3].
When a process relies on informal relationships between organizations, there is potential for exacerbating existing inequity in access to transplantation by excluding some candidates when certain transplant centers are favored over others. [2]
The brief I was working from listed, as a feature: “favourite centres drive prioritisation.” That is the exact mechanism the research criticises, shipped as a selling point.
The criticism is fundamentally that out-of-sequence placement happens on the phone, with no record, between people who know each other. A system that logs who was offered, in what order, and why anyone was skipped converts an informal favour network into an auditable process — which is what a regulator tightening oversight is asking for.
So the pitch is not “place organs faster”. It is place organs faster, and make the fast path defensible.
Concretely: the favourites list is gone. Centres declare their own criteria in advance — KDPI ceiling, HCV and DCD appetite, distance limit — and the fast list is computed per donor. Nobody is picked by hand, and every centre not on the list says why.
Both of these shipped, looked fine, and were wrong. Drag to compare — the images are the real build before and after.


The useful part of checking your own work against the literature is not confirmation. It is the reversals.
I had the eligibility rules raise an amber caution at cPRA ≥ 80%: “crossmatch risk is high.” Wrong twice over.
80% is not a line allocation recognises — the sliding scale separates cPRA 80 and 89 by about two points, and 90 and 100 by more than 195. And the framing pointed the wrong way: KDPI's association with graft survival is not modified by how sensitised the recipient is, so there is no benefit in holding out for a better kidney on their behalf — while a compatible offer may not come again for years.
The fix was not a new threshold. It was noticing that “cautions” is a rhetorical category, not a severity level: everything in it argues against acting. A high cPRA is a reason the offer matters more. The verdict now carries a third list, rendered muted rather than amber.
I had concluded that the left/right laterality preference was over-modelled — outcomes are equivalent, so why let a centre rank them? True of long-term graft survival. The first six months are not: right kidneys carry higher delayed graft function (28% against 25.8%) and more technical failure, because the right renal vein is short and the anastomosis is harder [19].
And I had the actor wrong. The ranking is set by the centre's coordinator — the one whose surgeon has to sew that vein. When two kidneys go to two centres, a stated preference beats a coin-flip and leaves a record.
The feature stayed. What it was missing was its reason, which it now carries — both halves, because right runs worse without and the difference is gone by six months turns a preference into a refusal.
Twenty changes went in without stepping back. Every one was defensible alone, and the screens still ended up crowded — because a band, a column or a caption added in week three does not know about the two added in weeks one and two.
Rows in one table measured 62 / 48 / 48, because a legend wrapped inside a single cell. The open board's only action sat behind a horizontal scrollbar. Three stacked bands put 213px of chrome before a single row.
The one underneath the rest: the signed-in coordinator's shift was seeded to end 25 minutes after load so the demo would reach the handover prompt. The prompt fires inside thirty minutes — so it was on from the first render of every run she held, and the product's normal state was never once visible. A warning that is always showing is not a warning.
What I think is genuinely good: the derived-not-stored discipline, so the numbers cannot lie to each other; the constraint-as-layout idea on the assignment screen; the honesty rules — no fake registry, no fake proof-of-handover.
What honestly limits it:
This is a coherent, well-argued design that has never met a user. For a portfolio piece that may be exactly right. For a product it is step one of three.
Every clinical threshold in the build carries its citation in the code, so a reviewer can check it rather than trust it.