How Romeo reads a case.
Romeo isn't a chatbot with a clinical coat of paint. Every case runs through three separate layers — a model that sees, an engine that scores, and a model that explains — so the verdict is reproducible and the reasoning is always cited.

A model that sees, an engine that scores, a model that explains.
1 · Vision, not verdict.
One call sees the intra- and extra-oral photos, the x-ray, and server-rendered views of the STL scan. A forced tool schema makes it return structured subscores, override flags, a confidence for each category, and an evidence pointer back to the image it read.
It produces no prose and no classification. The image-derived categories are the only thing it's allowed to set.
- crowding_spacing
- 1
- rotations
- 2
- canine_rotation_>30°
- true
- confidence
- 0.86
- evidence
- occlusal view
2 · Deterministic, versioned, no ML.
A pure-TypeScript engine sums the rubric, folds in the intake-derived categories, and applies the override flags — any one of which forces Difficult regardless of score. It places the case on both axes and writes an audit record.
It's the same math every time. The thresholds are admin-configurable and the engine version is stamped on every result.
- raw subscores
- 0–36
- normalized
- /100
- severity band
- Mild
- override flag
- → Difficult
- predictability
- Low
3 · Plain language, every claim cited.
A second model receives the structured result and writes the rationale a senior orthodontist would — direction, what to watch, which records to pull. Every factual claim cites a subscore, a rubric clause, or a look-alike case.
From there, Case Companion takes your follow-up questions on the case in front of you.
Looks simple, but low predictability — the difficulty is the movement type, not the amount. Proceed with caution.
- Crowding is about 3 mm — an easy correction on its own. [cat. 01 · subscore 1]
- But a canine rotation clears 30°, where aligner accuracy drops off a cliff. [override flag]
- Look-alike Evenly cases needed one to two refinements to finish. [60,000-case library]
Twelve categories. One fixed standard.
- 01Crowding / spacing
- 02Rotations / tooth position
- 03Vertical — overbite / open bite
- 04AP relationship — overjet / class
- 05Arch form / transverse / crossbite
- 06Space-management complexity
- 07Movement type — aligner predictability
- 08Case-complexity stack
- 09Patient age modifier
- 10Periodontal status (BPE)
- 11TMD status
- 12Skeletal pattern / occlusal canting
- Impacted teeth
- Skeletal Class II/III
- Severe deep bite with trauma
- Open bite needing vertical control
- Multiple teeth outside the arch
- Extraction likely required
- Midline shift with AP correction
- Prior failed ortho with relapse
- Active perio (BPE 4+)
- Canine rotation over 30°
Severity is half the question.
Severity tells you how much work a case is — mild, moderate, or difficult. On its own it doesn't tell you whether aligners are the right tool. Predictability does: how reliably aligners deliver the specific movements this case needs.
Romeo derives both from the same inputs and resolves them into a single call. A mild case with a low-predictability movement surfaces as caution, not as an easy win.
What lands on your screen.
- Romeo's call
- The recommendation up top — strong candidate, take-with-staging, conditional, or refer — on the go / hold / stop palette.
- Twelve-category breakdown
- Every subscore, with the criterion it met and the evidence it came from.
- Cited rationale
- The written read, with each claim pointing to a subscore, a rubric clause, or a look-alike case.
- Case Companion
- A chat surface for follow-up questions on the case in front of you.
- Patient Copy
- A one-page, plain-language summary you can hand to the patient.
- Romeo Rounds
- A multi-perspective second look when a case sits on the line.
Common questions.
Does the AI decide the classification?
Are the thresholds clinically validated?
What does Romeo need as input?
Where does the data go?
See it run on your own case.
Request access and we'll set you up to pre-screen a real case end to end.