Problems & solutions · Custom Software

Transplant Coordination Software Problems: The 5 That Cost Organs, Time and Credibility

Organ Transplant Coordination Software architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure in transplant program software is a hold with no review date. A candidate goes inactive in March for a dental clearance, the reason lives in a progress note, the person who set it moves services, and nothing in the system is counting the days. Nobody sets out to do that. It happens because the status was modelled as a field rather than as a state with an owner and an expiry, and the result is a patient who sat past their window while the record said inactive. In Digital Heroes delivery experience, that single modelling choice causes more harm than any interface failure in the category.

Why does the scope of a transplant build get set too small so often?

The brief that reaches a development team is usually a tracking brief: coordinators are keeping candidates in a spreadsheet, so build a better list. What arrives is a candidate table with a status column, filters and a nice export. It is prettier than the spreadsheet and it fails at the same point, because a status column cannot hold the information anyone actually needs.

This is specific to transplant because a candidate is not an encounter and not a task. She is a status that persists for years, changes without a visit, and has to reconcile daily against an external registry your center does not control. Every other clinical service in the building is episodic, which is why Epic and Cerner do not fit the problem: they model encounters correctly and were never designed for a register with a queue attached to it. A status column inherits none of what matters. Who set this hold. For what reason. On what date. When should someone look at it again. What was the state on the day of the offer six months ago.

The fix is to insist on a state machine before any screen is designed. Every transition carries an owner, a typed reason, a timestamp and, where relevant, a review date mandatory at creation. Nothing sits open silently. Ask a candidate developer to model candidate status on a whiteboard, and if they draw a patient table with a status column, the conversation is finished. You want reason codes, effective dates, review dates and an event log, plus a developer who asks unprompted what happens when the registry and your record disagree.

What goes wrong when candidate data and registry reconciliation are set up?

The reconciliation against the national record is the piece everyone underestimates and the piece that produces most of the value. Coordinators currently do it by eye, which is why senior coordinators spend hours each week comparing their own tracking spreadsheet to what is actually in the national system, and why that logic leaves the program when they do.

Migration goes wrong in two ways. First, teams import the spreadsheet's current view and lose the history behind it, so the system starts life unable to answer what the record said on any past date, which is the exact question a review asks. Second, they match candidates on names and dates of birth and inherit every duplicate and every transcription difference the spreadsheet accumulated, then discover that the local record and the registry record disagree for a set of patients and nobody can say which is right.

The fix is to treat reconciliation as the first release rather than a later feature. Run it as a scheduled job against your registry export and produce one list every morning of the candidates where your record and the national record disagree. That list is unglamorous, it is the first thing a program director asks for, and it prevents the failures that hurt. Before go live, work the backlog of disagreements down deliberately with a named owner rather than importing them and hoping. Every disagreement resolved during migration is a submission finding that never happens.

Why do EHR and HLA laboratory interfaces break after launch?

They are three different problems quoted as one line called integration. Epic and Cerner interfaces, message feeds carrying results and demographics, and a human leukocyte antigen laboratory system each have their own failure modes, and the last one is genuinely awkward because typing and crossmatch results are a difficult data model and every lab system exposes them differently.

What breaks after launch is usually content rather than connection. A lab changes how it reports a result, a message adds a segment, an outside facility starts sending creatinine results in a different unit. The interface keeps running and reports itself healthy while values land unmapped, which matters more here than elsewhere: a missing or stale crossmatch date is exactly the field a coordinator relies on at two in the morning to answer an offer.

The fix is to give every inbound feed an owner, an exception queue and a volume monitor rather than only error alerting, because a source that stops sending is invisible to an error based alarm. Show data age on the screens that matter, so an offer packet displays the crossmatch date rather than only the result. And insist the developer names what they have integrated inside a hospital before you sign, because interface work is mostly negotiation with other teams rather than code, and a team that has only built web products will learn it on your timeline.

What happens when recipient and living donor follow up is not covered?

Follow up is where programs quietly accumulate risk, and it is the first thing cut when a scope needs to shrink because it feels administrative. Recipient follow up runs for years on patients who moved away, changed nephrologists or stopped attending clinic. Living donors carry their own mandated follow up at fixed intervals after donation, on healthy people who have no reason to come back.

Left out of the build, this stays with whoever has capacity, which means it falls behind, and the program's data completeness is what takes the hit. The living donor queue loses every time it shares a list with sicker patients, because a human triaging one list will always work the acute case first. That is not a discipline problem, it is a design problem.

The fix is to generate the due schedule the moment a transplant or donation is recorded, assign an owner, and present a queue sorted by days remaining rather than by whoever shouted most recently. Escalate before the deadline rather than after. Give living donor follow up its own queue and owner so it never competes with recipients. Then pull outside laboratory results wherever an interface exists, since a creatinine drawn at a community laboratory is the item that most often makes a form late, and route outreach through text and patient portal instead of phone tag.

Should you build custom or configure what you already own?

If you are a single organ program with one or two coordinators and a stable caseload, do not build. CareDx OTTR or Transplant Connect iTransplant plus disciplined use of the electronic health record is genuinely enough at that size, and a custom build would be an expensive way to reproduce something you can license. If your institution has no appetite to own a clinical system, that is also a legitimate reason to buy, because ownership means someone internally makes decisions about it forever.

Be accurate about what the incumbents do. OTTR is the established system of record for centers and holds the longitudinal candidate structure the electronic health record does not, and for most single programs it is the right answer. The friction programs report is change velocity: adding a field to an evaluation checklist, altering a committee route or producing a report your quality director actually wants goes through the vendor and lands on the vendor's schedule. UNOS DonorNet is not a program management system and was never meant to be. It is the offer channel, and it knows the national queue rather than whether your candidate is medically clearable tonight.

The build case shows up when three or more organ programs have each invented their own spreadsheet around the product, when offer response depends on a specific coordinator being reachable, when a submission finding produced a corrective action plan amounting to trying harder, or when two change requests you paid for are still queued. In those cases the coordination logic has outgrown a configured product, and that logic is the program.

How do hidden costs get into the quote?

A first release covering candidate status with the reconciliation job, offer decision packets and one organ program's evaluation checklist and committee workflow runs $90,000 to $180,000 over 16 to 22 weeks. A full platform adding recipient and living donor follow up, multi organ support, outcome and submission reporting and interfaces to the electronic health record and the tissue typing laboratory runs $250,000 to $600,000 phased over 9 to 18 months. The drift between those is predictable.

Organ program count is the first driver and it is not a simple multiplier. Each program has its own evaluation logic, criteria and committee cadence, and almost none of it is shared. Laboratory integration is the second. Registry submission automation is the third, worth doing and real engineering against formats you do not control. Validation depth is the fourth, because this system touches a regulated process and your quality team will want traceability from requirement to test evidence, which is work whether or not it appears in the estimate.

The fifth is the one that catches schedules rather than budgets: discovery. Each organ program will find during discovery that its written selection criteria and its actual practice differ, and the build cannot proceed until that is resolved by people with authority. Budget three to five weeks with coordinators and surgeons before build starts, and treat documented criteria as a precondition rather than an output.

What separates a build that works from one that fails here?

Starting with the least glamorous thing. If the budget covers one phase, build candidate status with the daily reconciliation job. It produces one morning list of everywhere your record and the national record disagree, it takes that work off your senior coordinator, and it survives her leaving. Offer decision packets are the natural second phase, and they are where coordinators feel the difference at two in the morning.

Second, decisions have to be reconstructable. An offer decision made under time pressure may be reviewed six months later, and the question will be what the coordinator and surgeon knew at that moment, not what was true in hindsight. Assemble the packet automatically when the offer lands, capture the decision, the reason code and the person, and freeze the packet alongside it. Programs that do this also start seeing patterns in their own declines, which is the first honest input into an offer acceptance conversation with surgeons.

Third, build for audit from the start rather than retrofitting. Append only event logging so history cannot be quietly edited, reason codes on every status change, traceability from written requirement to test evidence, and role based access. Ask any developer how they handle those four before discussing features, and involve your quality department during design rather than at go live.

Finally, settle ownership in writing before kickoff: repository, cloud accounts and the unrestricted right to bring in another firm. At Digital Heroes the client owns the code from the first commit, and a developer who hedges on that question is building a dependency rather than a system.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  2. The federal government spends about 80% of its IT budget on operations and maintenance of existing systems rather than on development or modernization, with many critical systems being decades old. Source: U.S. Government Accountability Office (GAO) (2025) →
  3. SMS reminders that stated the specific cost of the appointment to the health system reduced missed appointments in Trial One, with the DNA (did-not-attend) rate falling from 11.1% (control) to 8.4% (specific-costs message) - an odds ratio of 0.74 (95% CI 0.61-0.89), i.e. roughly a 24-26% relative reduction - at no additional cost. (Trial Two replicated this at an 8.2% DNA rate.). Source: PLOS ONE (Hallsworth et al.) (2015) →
  4. 73% of surveyed businesses now use a headless architecture (up nearly 40% since 2019), and 98% of those not yet using it are evaluating or planning to evaluate headless within 12 months, with 82% saying it makes delivering consistent content easier. Source: WP Engine (2024) →
Jordan P. · Senior Growth Strategist · New York

Growth strategy at an agency means figuring out which lever actually moves revenue before anyone spends on it. Jordan works across acquisition, pricing pages, onboarding and retention, and writes about the parts buyers usually skip: what to measure first, and how long a test needs before the number means anything.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Candidates keep sitting on hold longer than intended. What actually fixes that?

Make a review date mandatory when a hold is created, and make the hold an object with an owner and a typed reason rather than a value in a status field. Then surface holds past their review date as a daily work queue rather than as a report someone runs. Most programs find that a handful of long standing holds surface immediately in the first week, and those are usually the ones causing real harm.

Should we replace OTTR or build alongside it?

For a single stable program, keep OTTR and configure it properly, because it holds the longitudinal candidate structure that the electronic health record does not. The signal to build is when several organ programs have each grown their own spreadsheet around the product, or when routine changes such as a new checklist field or a committee route sit in a vendor queue. In that case the coordination logic has outgrown configuration, and that logic is what differentiates your program.

How do we handle disagreements between our record and the national record?

Produce them as a single list every morning from a scheduled reconciliation job, with an owner and a resolution state, rather than leaving a coordinator to compare by eye. Work the existing backlog down deliberately before go live rather than importing it, because each unresolved disagreement carried into the new system is a submission finding waiting to happen. This is the highest value first phase in the whole category and the least impressive to demonstrate.

Why does our tissue typing data keep arriving unmapped?

Because typing and crossmatch results are an awkward data model and every laboratory system exposes them differently, so a content change on the lab side passes through an interface that still reports itself healthy. Give the feed an exception queue with a named owner and a volume monitor, and display data age on the screens where it matters, so an offer packet shows the crossmatch date rather than only the result. A coordinator can then see that a value is older than expected.

Can a custom system connect directly to the donor offer channel?

That depends on what access your center is granted, so scope it with your organ procurement contacts early rather than assuming it. The value does not depend on it either way, because most of the two in the morning work is on your side of the offer: assembling status, holds, crossmatch, labs, insurance authorisation and surgeon availability into one view on the on-call phone. Build that first and treat direct connectivity as an improvement rather than a prerequisite.

Our evaluation checklist differs from what we actually do. Does that matter?

It is the most common cause of schedule slip in this category. Each organ program discovers during discovery that its written criteria and its real practice diverge, and no one can build a checklist until someone with authority decides which version is correct. Budget three to five weeks of discovery with coordinators and surgeons, and treat documented, agreed criteria as a precondition for the build rather than something the project will produce along the way.

Where should living donor follow up live?

In its own queue with its own owner, never in a shared list with recipients. A person triaging one combined list will always work the acute case first, so healthy donors with no reason to attend fall behind regardless of intent. Generate the schedule when the donation is recorded, escalate before the deadline rather than after, and pull outside laboratory results where an interface exists, since a missing creatinine is the most common single cause of a late form.

Will a custom system survive a quality review?

It can, if it is built for that from the start rather than retrofitted. The four things that matter are an append only event log so history cannot be quietly edited, reason codes on every status change, traceability from written requirement to test evidence, and defined roles and access. Ask a developer how they handle each of those before you discuss features, and bring your quality department into design rather than into go live.

Is a solo freelancer enough for my project, or do I really need an agency?
A solo freelancer is a fine choice for a well-defined build under roughly $15,000 to $20,000 with a limited lifespan: an internal calculator, a scripted integration, a prototype. Above $50,000, or for any system your business will depend on for years, you are buying continuity as much as code: enforced code review, cover when someone is ill, and support that outlasts one person's career plans. Price the risk of a single point of failure, not just the hourly rate.
How many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
If we build for 20 users now, will the software cope with 500 later?
It should, without a rewrite, if it was built on a standard cloud stack; going from 20 to 500 users is mostly a hosting configuration change costing hundreds a month, not a second project. What actually breaks under growth is sloppier work: database queries never indexed for volume and features designed assuming one office's worth of data. Before signing, ask the vendor what happens to the system at ten times today's data, and listen for a specific answer.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
How do I work out whether custom software will pay for itself?
Do the arithmetic on hours before anything else: if the system saves three staff eight hours a week at a $35 loaded hourly cost, that is about $43,700 a year against, say, a $70,000 build plus 15 to 20% annual maintenance, a payback around two years. Add revenue effects only if you can name them specifically, like faster quotes or fewer abandoned orders, not as vague growth. In our delivery experience the businesses that see payback inside 24 months are the ones automating a process they already measure.
What happens if I stop paying for maintenance after launch?
Nothing breaks on day one, which is what makes it dangerous. Within 6 to 18 months, unpatched dependencies accumulate known vulnerabilities, an integrated API like Stripe ships a breaking change, and the first fix requires a developer to relearn a stale codebase at full price. Budget 15 to 20% of the build cost per year for upkeep; it is the difference between a $500 patch and a $15,000 emergency.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
The reliable signals are re-typing the same data into multiple tools, one employee acting as human middleware between systems, and errors appearing in handoffs between teams. Hard limits force the issue too: Airtable's Team plan caps at 50,000 records per base, and Business costs $45 per seat per month, so a 20-person team pays about $10,800 a year for a tool it has already outgrown. When workarounds consume more hours than the tools save, the spreadsheet era is over.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?