A list of codes is easy to generate and slow to trust. You still have to open the note, find where each diagnosis was documented, decide whether it was confirmed or only considered, and check that the code is specific enough. If a suggestion saves you typing a code but costs you a minute of checking, it has not saved you anything.
So we designed Terra's coding suggestions around one idea: every suggested code arrives with the sentence that supports it. Checking becomes reading one line.
How a suggestion is built
Open a saved visit, go to Visit workflow → Coding worksheet, confirm the date of service and choose Suggest codes. Terra shows the credit estimate and how many sources it will read, and you confirm.
By default, Terra sends only the saved note sections and any signed amendments. The transcript is included only when you tick it. That is deliberate: the note is what you will sign and what a reviewer will read. A diagnosis mentioned in passing in the conversation but never documented in the note is not something to code.
The model returns documented diagnoses or problems, not codes plucked from thin air. Each candidate has:
- the phrase as documented,
- a documentation state: confirmed, possible, history or ruled out,
- an exact excerpt from the cited section,
- a plain-language description,
- up to three ICD-10-CM codes, and
- a specificity note when the documentation lacks something the code needs.
The excerpt must be exact
The excerpt is not a summary. It must be a word-for-word substring of the source it cites. If the model paraphrases, cites a section that was not sent, or invents a source, the whole response is rejected. We would rather show nothing than show a suggestion whose evidence you cannot find.
When you choose Add to worksheet, the excerpt comes with the code, and the worksheet checks again that it appears in the saved record. That check is mechanical: it proves the words are there, not that they clinically support the code. The judgment stays with you, but the evidence is one glance away.
Possible stays possible
Clinical notes are full of hedges for good reason. "Possible community-acquired pneumonia, will treat empirically and reassess." "Likely viral." "Rule out DVT." These are not confirmed diagnoses, and outpatient coding guidelines generally do not code them as if they were.
Models do not always respect that. So Terra does not rely on the model alone. If a candidate is labelled confirmed but its excerpt contains uncertainty language such as "possible", "likely", "rule out" or a question mark, Terra shows it as possible, with a note explaining why. Terra never upgrades a possible diagnosis to a confirmed one.
The other states are kept visibly apart:
- History items, such as "history of breast cancer, completed treatment 2019", are shown separately from current problems, so you can choose the right history or status code rather than an active one.
- Ruled-out findings are shown so you can see the model noticed them, but they cannot be added to the worksheet.
- Transcript-only findings cannot be added until they are documented in the note.
Asking for the missing detail
Much of the work in ICD-10-CM is specificity: which side, which episode, which type, which stage. A note that says "knee pain" supports a less specific code than one that says "right knee pain". A note that says "diabetes" leaves type and complications open.
When the documentation is missing something a more specific code needs, the suggestion says so in plain words: laterality not documented, type not documented, acuity not documented. This is a prompt for you, not a correction Terra makes. If the detail is known, add it to the note (with an amendment, if the note is signed) and run the suggestions again. If it is not known, the less specific code may be the honest one.
Terra never infers laterality, acuity or type that is not written down.
Codes checked against the right release
ICD-10-CM changes every year, with new codes effective October 1 and occasional mid-year updates. A code that is valid for a visit on September 30 may not be valid on October 1, and the reverse.
Every code Terra proposes is checked against the official release that applies to the date of service you confirmed. If a proposed code is not in that release, or is only a category header that cannot be submitted, Terra drops it and offers up to three valid codes nearby, from the children of the closest existing code or from a search of the documented phrase. The original proposal is shown next to the replacement, so you can see exactly what changed.
Search also understands the abbreviations clinicians actually write. HTN, T2DM, COPD, CHF, GERD, CKD, LBP and afib expand to their official descriptions before matching.
Approval is a clinician's attestation
Suggestions only ever pre-fill unsaved worksheet lines marked "Suggested — review". From there, the worksheet works exactly as it does for codes you search for yourself. You save a draft, and a clinician approves it with an explicit attestation against the signed note.
Approval is tied to exactly what was reviewed: the signed text and its hash, the supporting documents and the code release. If an amendment is added later, or a supporting document changes, the approval becomes stale and needs a fresh review. Saved codes do not silently migrate to a new release.
What Terra does not do
Terra does not submit claims, sequence codes for billing, determine coverage or medical necessity, or decide that a diagnosis is present. It reads what you documented and shows you, sentence by sentence, which codes that documentation could support.
Credits and limits
Each suggestion run reserves its estimate, calls the model once and settles the actual usage, even if the output is rejected because the visit changed in the meantime. An unclear provider outcome keeps the reservation held rather than retrying. A visit allows up to 50 runs, which is far more than any real note needs.
The coding guide in the Help Center walks through each step. If you code for a living and see something we have wrong, we would genuinely like to hear it: hello@useterra.si.

