Custom Software for Mental Health Group Practices Outgrowing SimplePractice and TherapyNotes
If your group practice runs 12 or more clinicians on SimplePractice or TherapyNotes and your waitlist, compensation, and supervision workflows have moved into spreadsheets, a custom operations layer is usually worth building. Based on Digital Heroes delivery experience, a focused first release runs $40,000 to $90,000 and ships in 10 to 14 weeks. Keep your EHR for notes, telehealth, and claims, and build around it rather than replacing it.
What actually breaks in a mental health group practice running on SimplePractice and TherapyNotes
Both tools are genuinely good solo practice software. SimplePractice, at about $99 per clinician per month on its top plan, gives you notes, telehealth, a client portal, and claim filing in one place. TherapyNotes, at roughly $59 a month for the first clinician and $30 for each additional one, handles insurance billing arguably better. Neither was designed for what a group practice actually is once it passes 10 or 12 clinicians: a routing and matching business with a clinical back end.
Here is the shape of the mess. Your intake coordinator keeps the waitlist in a Google Sheet because the built-in waitlist cannot hold payer, specialty, age range, telehealth preference, and clinician gender preference at the same time. Your practice manager loses the first three days of every month exporting payment reports and running VLOOKUPs to calculate 60 percent splits on collected revenue. Your clinical director chases six pre-licensed associates by email over unsigned notes. And you, the owner, cannot answer "who has capacity next Tuesday for an Aetna teen client" without opening eleven calendars.
None of this appears as a line item, which is why practices tolerate it for years. It shows up as a 40-name waitlist converting at half the rate it should, a biller quitting over reconciliation fights, and clinicians leaving because their pay statements never match their session counts. Below are the five failures we see most often, what a custom build does about each, and honest numbers.
Problem 1: the waitlist lives in a spreadsheet and your intake coordinator is the matching engine
A client terminates on Thursday and a Tuesday 4pm slot opens with a clinician credentialed on Cigna who works with adolescents. Someone on your 40-name waitlist has been waiting six weeks for exactly that. In practice, nobody notices for a week, the coordinator calls three wrong people first, and the right client already booked elsewhere.
SimplePractice's waitlist is a flat list attached to a calendar. It does not know which clinicians sit on which payer panels, who treats OCD versus couples, or which associate is two clients from her capacity target, so it cannot match. No configuration changes that, because the data model has no concept of clinician panels or fit.
A custom build treats intake as a pipeline. A web intake form captures presenting concern, payer, schedule windows, and preferences. A matching engine holds a profile per clinician: panels, specialties, modalities, capacity target, supervision status. The moment a recurring slot frees, the engine scores it against the entire waitlist, texts the top matches a booking link, and logs every offer for the record. Practices we have built this for stop losing referrals to response time, and the coordinator manages exceptions instead of memorizing forty cases.
Problem 2: compensation splits on collected revenue eat three days a month
Most group practices pay clinicians a percentage of collected revenue, not billed: 55 percent for associates, 60 to 65 for licensed staff, sometimes tiered by monthly session volume. Collected is the hard word. A January session might pay in March after a resubmission, minus a copay adjustment and a partial write-off. Your practice manager exports transaction reports, reconciles them against sessions in a spreadsheet, and still fields disputes from clinicians every payday.
Neither SimplePractice nor TherapyNotes models compensation plans at all. Their reports show payments received, not clinician-level splits with retroactive adjustments across pay periods. That is not a missing feature you can request; it is outside what an EHR is for.
A custom comp engine ingests payment and adjustment data on a nightly schedule, applies each clinician's rules including supervision deductions and no-show policies, and handles retro adjustments by restating the affected period automatically. Each clinician gets a login showing sessions, collections, and the math behind their number, and the manager exports a payroll file for Gusto or ADP. Three days of spreadsheet work becomes an hour of review, and the disputes mostly stop because the math is visible.
Problem 3: associate supervision and licensure tracking do not exist in either tool
If you employ pre-licensed associates, you carry board obligations the EHR ignores: supervisor co-signatures on notes, weekly supervision hours logged in board format, hours accrued toward licensure, and supervisor-to-associate ratio caps. TherapyNotes offers note co-signing and SimplePractice something similar, but neither accrues hours toward a state board requirement or warns you when a supervisor is over ratio. So it lives in Word documents and the clinical director's memory, which is exactly what a board auditor does not want to hear.
A custom supervision ledger feeds itself from calendar and note events: each supervision session accrues hours by category, each co-signed note is stamped, and the system produces board-formatted logs on demand. Dashboards flag associates whose unsigned notes are older than 7 days and supervisors approaching ratio limits. When an associate applies for licensure, the hour report is an export, not a two-week archaeology project.
Problem 4: you cannot see capacity, utilization, or outcomes across the group
Try answering these from inside SimplePractice: what is each clinician's utilization against their capacity target this month, which referral source produces the highest no-show rate, and what is our average PHQ-9 change at session eight? You cannot, short of exporting CSVs and building the analysis by hand, because the built-in reports are billing summaries for a single practice, not operational analytics for a group.
This matters beyond curiosity. Payers increasingly ask for outcome data in contract negotiations, and an owner deciding whether to hire clinician number 18 is guessing without utilization numbers. A custom build stands up a small reporting warehouse fed by scheduled exports of appointment, transaction, and outcome-measure data. On top sit dashboards: utilization versus target per clinician, no-show and cancellation rates by referral source and payer, waitlist age and conversion, and PHQ-9 and GAD-7 deltas across the caseload. That last one has directly supported rate conversations with regional payers for practices we have worked with.
Problem 5: the EHR is an island, so referrals get typed in twice
Referrals arrive from Psychology Today profiles, EAP portals, psychiatrist offices, and your own website contact form, and every one lands in an inbox. Someone re-types each into the EHR, loses the source attribution, and nobody can later say which channel actually fills caseloads. SimplePractice has no public API, and TherapyNotes exposes only a narrow one, so the usual integration answer does not apply and the vendors are not going to open up for your practice.
The custom answer is a referral hub in front of the EHR: every channel feeds one queue with source tagging, consent and intake packets go out for e-signature from there, and staff push a completed record into the EHR once, with scheduled export files reconciling the two systems overnight. You lose the double entry and gain the marketing answer every group practice owner wants: cost and conversion per referral source.
What this costs and how long it takes
These bands come from Digital Heroes delivery experience across 2,000+ projects, not industry surveys. A focused first release, typically the intake and matching pipeline plus the compensation engine, lands in the $40,000 to $90,000 range and ships in 10 to 14 weeks: roughly three weeks of discovery and data mapping, seven or eight of build, then migration and a parallel-run month where the spreadsheet and the system produce the same payroll before you retire the spreadsheet.
A fuller platform, adding supervision tracking, reporting dashboards, client-facing scheduling, and multi-location support, runs $100,000 to $250,000 over five to nine months. What pushes price up: export-based sync with an EHR that has no API (more engineering than a clean API integration), compensation plans with tiers and retroactive restatement, supervision rules across multiple state boards, and any decision to replace EHR functions like claims, which drags in clearinghouse work you probably do not want.
Build vs buy: when staying on SimplePractice is the right call
Stay put if you are under about 10 clinicians, pay salary or one flat split, keep a waitlist under 20 names, and run one location with no associates. At that size the $99 per seat is a bargain and your problems are workflow discipline, not software. Custom software will not fix an intake process nobody follows.
Build when the signals stack up: 12 or more clinicians, an intake coordinator spending half her week on manual matching, comp consuming two or more days a month, unsigned associate notes becoming a compliance exposure, a second location or an acquisition on the horizon, or a payer asking for outcome data you cannot produce. Our position, having built both ways: do not replace the EHR first. Notes, telehealth, and claims are the parts these tools do well. Build the operations layer around them, and revisit full replacement only past 40 clinicians, if ever.
How to choose a developer for mental health practice software
Four filters that separate real candidates from generic web shops:
- BAA before discovery. A qualified firm signs a business associate agreement before seeing any data and can tell you exactly where PHI will live in development and staging. If they propose testing with your real client export, end the call.
- Ask how they get data out of SimplePractice. The credible answer names scheduled report exports, reconciliation logic, and a parallel-run period. Anyone who says "through the API" has not done this before, because there is no public API to use.
- Make them model your comp plan on the first call. Describe tiered splits on collected revenue with supervision deductions and a retro adjustment from a reprocessed claim, then ask them to repeat it back. If they cannot, they will get payroll wrong, and payroll errors are how you lose clinicians.
- Probe their replace-versus-surround position. A firm that leads with rebuilding your entire EHR, claims included, is selling scope. The right first project is narrow, measurable, and live within a quarter.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- 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) →
- In an RCT, text-message reminders (11.7% missed) were non-inferior to telephone reminders (10.2% missed; difference not significant, within the 2% non-inferiority margin) but far cheaper - total cost EUR 230 for SMS versus EUR 8,910 for telephone over 6 months - making SMS more cost-effective. Source: BMC Health Services Research / PubMed Central (Junod Perron et al.) (2013) →
- OECD research finds that digitalisation offers SMEs opportunities to improve performance, spur innovation, enhance productivity and compete more evenly with larger firms; it reports that increased use of online platforms produced significant multi-factor productivity gains in SME-heavy sectors such as hospitality and retail, while smaller firms lag in adoption due to skills, resource and financing gaps. Source: OECD (2021) →
- 88% of organizations are concerned about employee retention, and providing learning opportunities is respondents' #1 retention strategy; career progress is cited as people's top motivation to learn, yet only 36% of organizations qualify as 'career development champions.'. Source: LinkedIn Learning (2025) →
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.