One ledger across every agency and every state you work in. The license that has to stay current, the invoice nobody chased, and the quarterly estimate that comes out of both, in one place. Built and used by a practicing neurosurgeon who works locums.
Example data. Four agencies, one year, one number. No agency app can build this screen, because it can only see its own assignments.
Nothing here is a product gap in any one tool. It is what happens when four companies each hand you a portal scoped to their own contracts.
Each agency app manages that agency's assignments, time and pay. None of them can show the year: what you billed everywhere, what is still unpaid, what you owe in tax because of it.
Different cycles, different CME hour counts, different mandated topics, different fees. A lapse does not cost you a fee, it costs you the assignment while credentialing restarts.
An agency paid $5,500 of a $7,031 invoice and the ledger in your head marked it paid. An unpaid balance is invisible until someone goes looking, and nobody is looking.
You worked in four states and live in a fifth. Guess high and cash sits idle all year. Guess low and you pay a penalty for the privilege.
CompHealth tells you to keep an Excel or Google sheet of licenses and expiration dates. Locumstory tells you to keep a sheet of assignments and hours for quarterly taxes. That advice is not wrong. A spreadsheet is a good list.
It does three things badly, and they are the three that cost money. It does not remind you. It does not do the multistate math. And it cannot attach the hotel receipt to the line on the invoice, so the proof follows in a second email or not at all.
Nine states means nine cycles, nine CME requirements and nine sets of mandated topics. The matrix puts all of it on one screen so a lapse is something you saw coming.
Example data. Wide on a phone: swipe the matrix sideways.
Behind the matrix, each state carries its renewal fee and cycle with a primary citation: Maryland Health Occ. sec. 1-209, 49 Pa. Code 16.13 and 25.231, Wisconsin DSPS RDAF rev. 08/07/2025, and so on, including the compact processing fee where a state's renewal carries one.
Every new assignment asks for the same set: driver's license, state licenses, DEA, board certification, ACLS and BLS, immunization records, COI. The request does not have to become its own project.
Send the credentialer's request to [email protected]. It lands in your requests inbox as a card, with whatever they attached.
Select from what you already have on file and reply straight from the app. They go out as real attachments, not links to a portal nobody wants an account for.
Mail is sent as Name, DO via CredentialDOMD with reply-to set to your own inbox, so their answer lands with you and not with us.
Upload the paper once. After that the day is priced, the invoice is built and the payment is tracked from the same set of numbers, so the invoice and the contract cannot drift apart.
PDF, photo, Word or Excel. The scanner pulls the pay model, day rate, call stipend, the hours the stipend covers, the overage rate, orientation rates, coverage date blocks, billing increment, the minimum per call, and a per-hospital call rate grid, then fills the contract form for you to review.
Example data.
Work logged before 7am belongs to the previous day's call coverage and its stipend, not to the new calendar date. The call day is frozen onto the entry in the timezone where the work happened, so opening the app in another state cannot re-partition your days and re-bill a stipend.
Example data.
Pick which days to bill and the app builds an itemized invoice from the contract's own rates: a branded PDF for the hospital AP department, plus Word and Excel versions of the same content for billing offices that re-key everything anyway.
Example data.
Every code comes back with units, the CMS work RVU and a one-line reason. You accept, adjust or delete each line before anything saves.
494 codes weighted to neurosurgery and hospital evaluation and management, carrying CMS CY2026 Physician Fee Schedule work RVUs, status and global period, from a generated data file with the source release named in its header. Every code the model returns is re-validated against that catalog, so an invented code is silently dropped rather than saved.
Example data.
Flights, hotels, rental cars, rideshares and parking, each with the receipt photo or PDF attached, invoiced to the agency in one tap. Everything else becomes a Schedule C line.
CSV and Excel parse on the device. PDF and photos go through the scanner. Every row lands in a review screen already categorized, de-duplicated against the ledger you already have, with credits and payments excluded before you approve the batch.
Example data.
Income counts when a payment actually lands, gets allocated to the state where the work physically happened, and is modeled as either S-corp with a W-2 salary plus K-1 or sole proprietor on Schedule C.
Example data. Wide on a phone: swipe the panel sideways.
Three states are modeled today: California, Colorado and North Dakota, plus the nine states with no income tax. Work in any other state shows the income sourced there, labeled state model not loaded yet. It is never estimated with another state's brackets, because a confident wrong number is worse than an honest gap.
This is a planning estimate. Reasonable compensation for an S-corp and final apportionment are your preparer's call. The job here is that you walk into that conversation with the year already sorted.
Six things that ship today and only make sense to someone who has worked a locum contract.
For agreements that pay per day worked plus a flat rate per accepted call period, one row per date records whether the day was worked and which hospitals were covered as primary or backup, priced from the contract's own rate grid.
Every contracted coverage block across every agreement in date order, marked active, upcoming with a countdown, or done, each carrying the facility, agency, location and call stipend terms.
Assign future days per contract with an expected amount, project the year forward, and reconcile every past month, estimated against actually billed, over or under.
Tap an agreement's name and see everything it produced: billed and collected, the days and hours on the ground, the RVUs logged, the cases done there, and the signed agreement itself.
The RVU log defaults to the agreement whose coverage period contains the entry date, and a contract you picked manually stops holding as soon as the date moves outside its term.
A call comes in mid-case. Capture it in one line and move on. When you come back, enter the real start and end times and it becomes a billable work entry.
The agency app is good at what it is for. So is the sheet. These are the jobs neither one can do, listed as jobs rather than features.
| The job | Your agency's app | Spreadsheet and Drive | CredentialDoMD |
|---|---|---|---|
| Show every agency at once | Only its own assignments | Only what you kept typing | Billed, collected and awaiting across every agency and direct contract |
| Warn you before a license or DEA lapses | Not its job | No reminders at all | Days remaining on every state you hold, with unmet CME topics named |
| Price a day from your signed agreement | Its own rates, its own timesheet | You redo the math each time | Reads the agreement, then prices stipend, included hours and overage on a 7am call day |
| Track a partial payment on one invoice | Its remittance, not your ledger | A cell you have to remember to edit | A payment ledger per invoice, with the open balance on the card and aging past 30 days |
| Tell you what you owe and to whom | No | No | Federal, resident state and each work state, estimated minus paid, per jurisdiction |
| Keep the receipt with the bill | Reimbursement submission, one agency at a time | In a Drive folder somewhere | Receipt files go out attached to the expense invoice itself |
| Hand your CPA a clean ledger in March | One 1099 per agency | Whatever you typed | Categorized deduction ledger as CSV, plus billing by month attributed to the work date |
| Stop a day being logged to the wrong contract | Cannot see your other contracts | No | Checks the date against your coverage blocks and warns, without blocking you |
Wide on a phone: swipe the table sideways.
The app holds credential paperwork and billing data. That is a deliberate design choice, not a gap waiting to be filled.
The note saying which patient a two-minute phone call was about stays in this device's own storage and is never uploaded. The billing description that reaches the invoice stays free of identifiers. Dictation routes any patient name it hears into the private note rather than the synced billing field.
Those private notes do not follow you to another device. The app says so, in the app. The only way to make them follow you is to send them to a server, and that is exactly the thing this design refuses to do.
The document scanner warns when an upload reads like a chart rather than a credential, because the fastest way to create a PHI problem is to photograph the wrong page in a hurry.
Not "minutes". You are moving a career's worth of records, and the honest number is under an hour because almost nothing is typed by hand.
Work, RVUs, Sched., Invoices, Contracts, Exp. and To do.
Tax Prep and the Deduction Memo, including the statement import.
The multi-state license, DEA, CME and privilege matrix.
Access is invited from the list, which is how the beta stays small enough to fix things quickly.
One email when your invite is ready. Paid pricing is being finalized, and every beta member sees the number before anything is ever charged.
30 seconds · no card · founding-member perks by signup order
Get on the list, and the first thing the app does is tell you which one it is.
Free beta, every feature on, no card. Founding-member perks for the earliest names on the list.