Industry guide · Custom Software

Substance Abuse Treatment Software: What Breaks at Multi-Site Scale, and What to Build Instead

The short answer

If you run one site, one state and standard workflows, buy Kipu or Alleva and stop reading. If you run multiple sites and have staff whose whole job is retyping between the CRM (Customer Relationship Management), the census sheet, the lab portal and the chart, build the layer around your EMR, not a replacement for it. In Digital Heroes delivery, that first release lands at $60k to $130k and ships in 12 to 16 weeks; a full admissions, census, UR and outcomes platform runs $150k to $400k phased over 6 to 12 months.

Why treatment software is the operation, not the back office

Run 60 licensed beds across three sites and your software is not a back office concern. The bed board decides revenue. The chart decides whether the day gets paid. The urine drug screen decides clinical response and, in most markets, a meaningful slice of collections. Each of those lives in a different system, and the glue between them is a person with a headset.

Here is the scene we keep walking into. Kipu or Alleva or Sunwave holds the chart. Admissions works leads in Kipu CRM or a Salesforce Health Cloud instance a consultant built in 2021 that nobody has touched since. Inbound calls sit in CallRail. Verification of benefits is a coordinator on hold with Aetna, or four people sharing one payor portal login, pasting results into a Google Doc. The census the CEO actually trusts is a Google Sheet named something like CENSUS MASTER v9 USE THIS ONE, rebuilt every morning at 7:15 by the clinical director from a photo of the whiteboard the night tech texted her. Lab results arrive from Quest Diagnostics or Averhealth as PDFs in a portal, and a nurse retypes the lines that matter into the chart.

None of this is anyone's fault. Each tool does one job well. The job you actually have, moving a human being from a 1:40am phone call through detox, residential, PHP and IOP while getting authorized, screened, documented and paid, spans all of them. What leaks is never dramatic. It is a bed sitting empty for two days because nobody knew a discharge was coming. It is four denied residential days because the note said "patient attended group, affect appropriate" instead of documenting Dimension 5 risk. It is a family that got a callback at 9:40am Monday after driving to a competitor at 8. Every operator we build for can quote their revenue per bed-day to the dollar. Multiply that by the empty days plus the denied days, and you have the budget for this conversation.

Problem 1: the inquiry lands at 1:40am and gets a callback at 9:40am

Sunday night, a father in Columbus calls the 800 number. The after-hours coordinator takes his name on a legal pad, promises a callback, and goes back to sleep. Monday the VOB coordinator spends 40 minutes with Aetna confirming benefits. By the time anyone calls back with a bed and a number, the window that family had the courage to act in has closed.

Kipu CRM and Salesforce track the lead. They do not know your bed inventory by license type and gender, they do not run eligibility, and they do not know your contracted rates. So the answer a family needs at 2am, yes, we have a detox bed, your plan covers it, arrive at 10am, requires a human with four logins who is asleep.

A custom intake layer makes that one object. Call, text or web form creates an inquiry, an automated 270/271 eligibility check fires through Availity or Waystar in seconds, and a rules engine maps plan plus requested level of care plus your open beds into a real answer. AI has a narrow role here: an after-hours voice and SMS agent that collects non-clinical triage facts (substances, last use, prior withdrawal history, location, who is paying), books an arrival window, and pages the on-call clinician only when answers hit your escalation criteria, such as reported alcohol or benzodiazepine withdrawal or suicidal ideation. Everything else waits for 8am with a complete record and a warm handoff. Document extraction handles the rest: the family photographs an insurance card and a hospital discharge summary, and the model parses member ID, group, plan and prior level of care into fields instead of a coordinator squinting at a fax.

Problem 2: three versions of the census, none of which agree

Tuesday morning meeting. Admissions says four open beds. Clinical says two. The UR tech says one of those two belongs to a client whose authorization ran out Sunday. Nobody is lying. They are each reading a different artifact.

Kipu and Alleva both have a census view, but it is an output of the chart. It updates when someone completes an admission or discharge in the chart, which happens hours after the human event. It has no concept of a hold, a deposit-backed arrival, a bed out for maintenance, your gender ratio constraint, your per-site license cap, or a step-down that clinical decided on Friday and will execute Wednesday.

The build treats a bed as a first-class object with a state machine: available, held, reserved with an arrival window, occupied, out of service, awaiting turnover. Every state has an owner and a timer, so a hold expires instead of quietly rotting. On top of that sits a projected census running 14 days forward off length-of-stay patterns and current authorization end dates, with alerts when projected occupancy crosses your break-even. The chart stays the record: you write back to Kipu through its API rather than fighting it. Forecasting is the unglamorous place AI is useful: model expected discharges from auth end date, payor, level of care and AMA risk signals, so your admissions director knows on Thursday what Monday looks like and markets into the gap instead of discovering it.

Problem 3: UDS results arrive as PDFs and nobody owns the clock

Saturday 6am, point-of-care cup shows presumptive fentanyl on a client nine days in. Confirmation ships to the reference lab. The definitive result posts to the lab portal Tuesday. The nurse who checks that portal is off Tuesday. The primary counselor finds out Thursday. Five days of clinical response, gone, on the exact event the whole program exists for.

EMRs treat lab as an attachment. Some support an HL7 feed with one or two national labs, but your regional toxicology partner is not on that list, and your point-of-care cups never enter the system at all except as a scanned form nobody queries.

A custom pipeline makes results an event, not a document. Standing order templates by level of care and risk tier. Orders out via HL7 v2 to the labs with an interface, plus parsers for the ones that only drop a PDF or a CSV. Results normalized to LOINC and mapped to your own panel definitions, so a fentanyl positive from Averhealth and one from Quest are the same fact in the same field. Then the part that changes outcomes: every result carries an SLA and a named owner. Positive fires a notification to the counselor within minutes, opens a clinical response task, and templates the note. Document extraction is the right AI here: parse the result PDF into structured analyte, value, cutoff and units, route low-confidence extractions to a human, never auto-file below threshold. The same pipeline flags ordering patterns likely to draw an audit, like the same definitive panel on every client every week, before a payor flags them for you.

Problem 4: utilization review is a memory game, and you eat the days

3pm concurrent review call with Carelon or Cigna. Your UR tech has been copy-pasting notes into a Word doc since noon. The reviewer asks what has changed since Friday. The notes describe attendance, not medical necessity. You get three more days instead of seven, and the four days you already delivered while waiting are now yours to absorb at your full bed-day rate.

The UR modules in Kipu and Sunwave give you a place to log the call and the auth number. They do not tell the clinician, at the moment of writing, that this note will not hold up for continued stay at 3.5 with this specific payor.

Custom moves medical necessity to write time. Note templates structured against the ASAM dimensions with real fields, not free text a human re-reads later. A payor rules layer, because what Aetna wants documented for a 3.5 continued stay is not what Carelon wants: encode it per payor, per level of care, as a checklist that lights up in the note editor before signature. The concurrent review packet assembles itself from the last 72 hours of structured data: vitals, CIWA and COWS scores, med changes, UDS results, participation, dimension evidence. AI checks the drafted note against the payor's criteria and tells the clinician what is missing. It does not write clinical content and it does not decide medical necessity. Then every denial reason gets tracked back to the template that produced it, so your documentation gets better against the payors that actually deny you rather than in general.

Problem 5: your outcomes are a spreadsheet nobody believes, including you

A CARF or Joint Commission surveyor asks for post-discharge outcomes. Or better, you are trying to negotiate a rate and want to bring evidence. Your alumni coordinator has a spreadsheet and calls people at 30, 60 and 90 days. Most do not answer. The number you report is whatever the people who picked up said, which is the people who are doing well. Meanwhile the website quotes a success rate you could not defend under oath.

Bolt-on tools like Vista Research Group or Trac9 collect instruments during treatment. They do not join the pre-admission inquiry, the UDS timeline, the actual length of stay, the discharge type (completed, AMA, administrative) and post-discharge contact into one record you can slice by referral source, payor, primary substance, clinician or site.

Build outcomes as a longitudinal record keyed to the person, not the episode, so a readmission eight months later attaches to the same story instead of starting a new one. Automated multi-channel follow-up over SMS and email at defined intervals, with contact consent captured properly at discharge under 42 CFR Part 2, escalating to a human call for non-responders and for anyone whose answers hit a risk trigger. What the executive gets is the dashboard that actually moves decisions: 90-day contact rate by site and clinician, AMA rate by day of stay (yours clusters in a window, and once you can see it you can staff it), and readmission by referral source. That last number is the one that changes what you are willing to pay for marketing.

What this costs and how long it takes

These are Digital Heroes delivery bands across 2,000+ projects, not vendor pricing. A focused first release, typically admissions plus live census plus a projected bed board wired into your existing EMR, runs $60k to $130k and ships in 12 to 16 weeks. A full platform covering admissions, VOB, census, lab pipeline, UR packets and outcomes runs $150k to $400k phased over 6 to 12 months, delivered in slices that go live as they finish.

What drives price up in this specific category: every lab partner is its own project (an HL7 interface with Quest is a different animal from parsing a regional toxicology lab's PDF drop); claims and eligibility work through Availity, Waystar or Office Ally is fine until you hit a payor with a portal and no API; eMAR, med pass, EPCS and PDMP touch controlled substances and raise both the engineering bar and the QA bill; multi-state operations mean different documentation, staffing and bed rules per state; and 42 CFR Part 2 is not HIPAA with extra paperwork, it changes your data model with consent-scoped disclosure, record segmentation and redisclosure logging. Migrating years of charts out of Kipu or BestNotes is its own line item. Accreditation-grade audit logging and 24/7 uptime for a clinical floor are not optional and they are not free.

Build vs buy: when Kipu is the right answer

One site, 30 beds, one state, two payors, ordinary workflow: buy. Kipu, Alleva, Ritten and BestNotes are mature charts and building your own is an expensive path to a worse one. Take that seriously, because most centers that call us do not need a new EMR.

Here are the concrete signals it is time to build. First, you employ more than one full-time person whose entire job is moving data between systems: the VOB coordinator retyping, the UR tech assembling packets, the clinical director rebuilding the census sheet at 7:15am. That is a payroll line that is really a software line, and it compounds every year. Second, you have a workflow that is your actual edge (your step-down criteria, your own outcome instrument, a referral partner portal for interventionists and drug courts) and the vendor forces you off it. Third, your denials have a pattern you can name and the vendor's roadmap does not include fixing it. Fourth, you are at three or more sites paying per bed per month for a system that still gives you no cross-site view.

When those hit, build the layer, not the chart. The admissions, census, UR and outcomes system sits on top of the EMR's API. Rebuilding e-prescribing, MAR, scheduling and fifteen years of regulatory detail buys you nothing your competitors do not already have.

How to choose a developer for substance abuse treatment software

Put the data model on a whiteboard before you sign anything. Person, episode, bed, bed-day, authorization, claim, order, result. If they draw "patient" as one table and cannot tell you why an episode and an authorization have different lifecycles, or why a bed and a bed-day are different objects, you are buying a CRM with clinical words painted on it.

Ask what they have actually integrated, not whether they have healthcare experience. Have they moved an HL7 v2 ORU into a chart, run a 270/271, posted an 835, written back through Kipu's API, handled a lab that only sends PDFs? Ask for the ugliest one, the integration with no documentation and a support contact who answers twice a month. That story tells you more than any case study.

Ask them to explain 42 CFR Part 2 in their own words and say what it does to the schema. If the answer is "we are HIPAA compliant, we sign a BAA," they have not built in this category. The real answer talks about consent scoped to a named recipient and purpose, segmenting SUD records from the rest, and logging redisclosure. Get that wrong and the fix is a rebuild, not a patch.

Settle code ownership and data location in writing before kickoff. Repo in your GitHub organization from the first commit, infrastructure in your cloud account, full data export on demand, no runtime dependency on the agency's keys. The entire reason to build is to stop being captive to a vendor. A build that makes you captive to a developer instead is the same trap with a smaller support team behind it.

Research & sources

The evidence behind this guide

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

  1. McKinsey's Developer Velocity research finds best-in-class tools are the top contributor to software business success, yet only about 5% of executives ranked tools among their top-three software enablers, signaling underinvestment in developer tools (this finding originates in McKinsey's Developer Velocity study rather than the linked generative-AI article). Source: McKinsey & Company (2023) →
  2. This World Bank report argues that digital technology adoption raises SME competitiveness, productivity and resilience, while documenting that smaller firms consistently lag larger ones in digital adoption - a gap that constrains their growth and market reach. Source: World Bank (2022) →
  3. In the Flexera 2025 State of ITAM report, respondents reported roughly 33% of SaaS spend is wasted, underscoring how paying for off-the-shelf seats and tiers that go unused erodes the supposed cost advantage of generic SaaS. Source: Flexera (2025) →
  4. Workers can expect 39% of their existing skill sets to be transformed or become outdated over 2025-2030; 77% of employers plan to upskill their workforce, and 63% identify skill gaps as the biggest barrier to business transformation. Source: World Economic Forum (2025) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

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

FAQ

Frequently asked questions

How much does custom substance abuse treatment software cost for a 60-bed multi-site center?
A focused first release covering admissions, verification of benefits and a live census wired into your existing EMR runs $60k to $130k in Digital Heroes delivery experience, shipping in 12 to 16 weeks. A full platform that adds the lab pipeline, utilization review packets and outcomes tracking runs $150k to $400k phased over 6 to 12 months. Bed count matters less than the number of integrations, states and payors you operate across.
Should we replace Kipu or build around it?
Build around it. Kipu, Alleva and Ritten are mature charts, and rebuilding e-prescribing, MAR, scheduling and the regulatory detail underneath them buys you nothing a competitor does not already have. The money belongs in the layer the EMR does not cover: real-time census with holds and projections, payor-specific medical necessity checks, lab result routing, and longitudinal outcomes, all writing back to the chart through its API.
Can we migrate our charts out of Kipu or BestNotes?
Yes, but treat it as its own line item rather than a footnote in the build. Structured data such as demographics, episodes, authorizations and lab results usually exports cleanly; scanned consents, faxed records and free-text notes are the expensive part. Most centers we work with migrate the last 24 months into the new system for live use and keep an archived read-only copy of everything older for audit and legal purposes.
How is 42 CFR Part 2 different from HIPAA when building this software?
Part 2 governs the fact that someone is in your building at all, and it changes the data model rather than just the paperwork. You need consent scoped to a named recipient and a stated purpose, the ability to segment substance use records from the rest of the chart, and a log of redisclosure, none of which a generic HIPAA-compliant stack gives you. If a developer answers this question by mentioning a BAA and stopping, they have not built in this category.
How long before we see anything working?
12 to 16 weeks for a first release that people actually use, and you should insist on seeing usable slices earlier than that. A reasonable sequence is the bed board and census in weeks 4 to 6, the intake and eligibility flow by week 10, then hardening and training. Anyone quoting a full platform live in six weeks is either underscoping the payor and lab work or planning to hand you a prototype.
Who owns the code and the data if we pay for a custom build?
You should, and it should be in the contract before kickoff, not negotiated at the end. The repo belongs in your GitHub organization from the first commit, infrastructure runs in your own cloud account, and data is exportable on demand with no runtime dependency on the developer's keys or accounts. Digital Heroes works this way by default, and if any agency resists it, that resistance is the answer.
Can AI safely handle after-hours admissions calls at a treatment center?
It can handle the non-clinical part safely, which is most of the volume. An after-hours agent can capture substances, last use, prior withdrawal history, location and payor information, book an arrival window, and hand a complete record to the morning team. It should never assess medical necessity or acuity, and it should page the on-call clinician immediately on defined triggers such as reported alcohol or benzodiazepine withdrawal history or suicidal ideation.
Can custom software pull UDS results directly from our lab?
Yes, though every lab is its own integration. National labs like Quest Diagnostics and LabCorp generally support an HL7 v2 result feed; regional toxicology partners often give you a portal PDF or a CSV drop instead, which needs a parser plus document extraction with a human confirmation step for low-confidence reads. Once results are normalized to LOINC and mapped to your own panels, a positive becomes a timed, owned event with a notification rather than a document nobody opened for five days.
Will custom software actually reduce insurance denials?
It reduces the denials caused by documentation, which in most centers we work with is the largest addressable slice. The mechanism is moving the payor's criteria to the moment the note is written: structured fields mapped to the ASAM dimensions, a per-payor per-level-of-care checklist that flags gaps before signature, and concurrent review packets assembled from structured data instead of copy-paste. It will not change a payor's clinical policy, and no software should promise that.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
What does a $50,000 custom software budget actually buy?
One core workflow done properly: 10 to 15 screens, two or three user roles, a couple of integrations, an admin panel, and automated tests, delivered in roughly 12 to 14 weeks. What it does not buy is that workflow plus a mobile app plus AI features plus five more integrations. The discipline of picking the one workflow that matters is what separates $50,000 projects that ship from $50,000 projects that stall at 70% complete.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
How long does it take to build a custom web or mobile app from scratch?
Plan on 8 to 16 weeks for a focused first version and 4 to 9 months for a larger platform, which is the typical spread across Digital Heroes builds. The first 2 to 3 weeks go to discovery and design before any production code ships. The two things that stretch timelines most are integrations with legacy systems and slow feedback from your side, not developer speed.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
Will custom software work with the tools we already use, like QuickBooks and Stripe?
Yes, and this is one of custom software's genuine advantages: QuickBooks, Stripe, Shopify, and most mainstream business tools publish documented APIs built for exactly this. Expect each standard integration to add one to two weeks of build time, and be suspicious of any quote that lists five integrations without asking what data flows in which direction. The hard cases are legacy systems with no API, which is a question to raise in discovery, not in week nine.
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?