UThriveLabs

The full details behind the presentation

Everything the deck summarises, with the tables, assumptions and the reasons other options were set aside. Part 1 covers hosting. Part 2 covers where AI is used and what it costs.

Prepared 2 September 2026. All prices in US dollars at the providers' published rates on that date.

Part 1. Where the system should live, and what it will cost

The Blood Review Agent is a prototype on a hobby hosting service. To run it on real patient records it needs a proper home. This page explains three ways to set that up, what each costs per month, and which one we recommend.

Prepared 2 September 2026. Prices are DigitalOcean's published prices in US dollars, billed monthly, for their Sydney data centre. They change occasionally, so we will confirm them on the day we order.
Our recommendation is the Balanced option, about $67 a month.

One computer runs the app. DigitalOcean runs the database and backs it up automatically, so the records can be put back to any minute in the past week. If something goes wrong, the clinic loses minutes of work rather than months of records.

What we are planning for

QuestionOur assumptionWhat it means for the setup
How many records?Around 10,000 now, up to 100,000 over the next few years, counting patients, reviews, reminders and check-insSmall. The database plan we recommend could hold ten times this.
How many people use it?3 to 5 staff, with one doctor signing offSpeed is not the problem. Keeping records safe is.
What gets uploaded?Blood result PDFs and photos, about 1 to 3 MB eachFiles go into a separate locked file store, not onto the computer running the app.
How long does an AI review take?10 to 30 secondsIt runs in the background, so nobody sits watching a spinning wheel.
What does it connect to?Cliniko, GoHighLevel and the AI providerThe system reaches out to these. Nothing on the internet reaches in.
What kind of data is it?Identifiable health information, covered by Australian privacy lawEverything, including backups and files, stays in Australia. Access is controlled and every look at a record is logged.

The three options

All three run the same app. The difference is who looks after the database and how much spare capacity you pay for.

Quick
$36a month
A trial with a handful of patients, where your own tech person backs up the database by hand.
  • One computer runs the app and the database
  • A snapshot of that computer is taken daily
  • A separate store for uploaded results
Balanced Recommended
$67a month
Running the clinic day to day, with DigitalOcean responsible for the database.
  • One computer runs the app
  • DigitalOcean runs and backs up the database
  • Records can be restored to any minute in the past 7 days
  • A snapshot of the app computer is taken daily
  • A separate store for uploaded results
Big
$233a month
When an outage during clinic hours is unacceptable, or the clinic grows well past 100,000 records.
  • Two app computers, so one can fail without anyone noticing
  • A larger database with a spare copy that takes over in seconds
  • Daily snapshots of both computers
  • A separate store for uploaded results

What the money buys

ItemWhat it isQuickBalancedBig
App computerThe computer that shows the screens and runs the background work. Big uses two larger ones.$24.00$24.00$96.00
Daily snapshotA copy of the app computer taken every day, so it can be rebuilt$7.20$7.20$28.80
DatabaseWhere the records live. In Balanced and Big, DigitalOcean runs it and backs it up. In Quick, it shares the app computer and your team backs it up.$0.00$30.45$60.90
Spare databaseA live copy that takes over automatically if the main one fails$0.00$0.00$30.00
Traffic splitterShares visitors between the two app computers$0.00$0.00$12.00
File storeLocked storage for uploaded blood results, 250 GB included$5.00$5.00$5.00
Private network, monitoring, firewallIncluded by DigitalOcean at no charge$0.00$0.00$0.00
Monthly total$36.20$66.65$232.70
Not in these totals. The AI provider's usage bill, covered on the next page. A web address and email sending, a few dollars. An optional test copy of the system with made-up patients, which is a second Quick setup at about $36. For whoever places the order, the exact products are a Basic Droplet with 2 vCPU and 4 GB, Managed PostgreSQL at 2 GB or 4 GB, a matching standby node, a small Load Balancer and Spaces.

What you get, and what you accept

If this happensQuickBalancedBig
Someone deletes the wrong thing, or the records get corruptedYour team restores last night's copy. Anything entered since is gone.DigitalOcean puts the records back to any minute in the past 7 daysDigitalOcean the same, with a spare copy already running
The app computer breaksDown for 30 to 60 minutes while it is rebuilt from the snapshotDown for 30 to 60 minutes. The records are untouched.Stays up the other computer carries on
The database computer breaksDown and the records are as old as last night's copyMinutes DigitalOcean replaces it. Nothing is lost.Seconds the spare takes over
Security updates for the databaseYour team does themDigitalOcean does themDigitalOcean does them
Can the database be reached from the internet?Only if your team keeps the door lockedNo. Only the app can talk to it.No. Only the app can talk to it.
Room to grow before an upgradeAbout 300,000 recordsAbout 500,000 records. Upgrading is a few clicks, no downtime.Millions of records
Time your tech person spends each month2 to 4 hoursUnder an hour1 to 2 hours

How the Balanced option fits together

Clinic staffWeb browser, two-step sign-in
secure link
App computer, SydneyThe screens and the background tasks, behind a firewall.
private link
Database, run by DigitalOceanBacked up daily. Restore to any minute. Not reachable from the internet.
File storeUploaded blood results. Private. Download links expire.
AI providerReviews run in the background. The provider keeps no copy of the data.
Cliniko and GoHighLevelThe system sends to them. They cannot reach in.

Why not the other ways

OptionWhy we set it aside
Two computers, one for the app and one for the databaseCosts about the same as letting DigitalOcean run the database, but your team still does the backups and updates. Two machines to look after and no extra safety. Splitting the two only makes sense once the app itself needs more power, which does not happen at 100,000 records.
Stay on ReplitFine for a demo. It cannot promise the data stays in Australia, the database is not sealed off from the internet, and there is no way to wind the records back to a point in time.
Let DigitalOcean run the app computer tooA fair alternative. It removes the last bit of server upkeep for about $1 a month more, with less control over background tasks and file handling. Worth choosing if nobody on the team wants to touch a server.
Amazon or Google cloudMore capable, and two to three times the cost and setup effort at this size. Both have Sydney data centres, so this is a future move if a compliance program ever demands certifications DigitalOcean does not hold.
A database from a different companyGood services exist with Sydney locations, but they split the setup across two companies. The brief asked for one provider with strong backups, and DigitalOcean covers both.
A different style of databaseSome databases are built for loose, unconnected data. The clinic's records are tightly connected, patients to reviews to reminders, and the standard kind of database handles that best.
A pay-per-use database that sleeps when idleThe first person each morning waits several seconds for it to wake up. The saving is tiny when the database costs $30 a month anyway.

Before it goes live

These are the things that make the system safe to hold patient records. Every one is required, whichever option is chosen.

Everything stays in AustraliaApp computer, database, backups and file store all in Sydney. The AI provider has confirmed in writing that it keeps no copy of what we send.
The database is sealed offOnly the app can talk to it. Nothing on the internet can reach it directly.
Data is scrambled in storage and in transitIf a disk or a message were ever intercepted, it would be unreadable.
A restore has been rehearsedWe restore a backup into the test copy and confirm the app works. We repeat this every three months. A backup nobody has tested is a hope, not a plan.
Each staff member has their own login with two-step sign-inNo shared passwords. Access is removed the day someone leaves.
A record of who looked at whatEvery view or change of a patient record is logged, kept for at least 12 months, and cannot be edited from inside the app.
Passwords and keys are kept out of the codeThe connections to Cliniko, GoHighLevel and the AI provider use keys stored separately and changed when staff change.
Someone hears when it breaksAutomatic alerts if the system goes down, runs out of space or runs hot, sent to the team within minutes.
A test copy with made-up patientsChanges are tried there first. Real records never leave the live system.
A plan for the worst dayWho to call, how to cut off access, and how to notify people under the data breach rules. Written down before launch, not after.

When to move from Balanced to Big

Each step happens in place. Make the computer bigger, raise the database plan, add the spare. No rebuild and no interruption.

What we need from UThrive


Part 2. Which parts need AI, and which are just rules

Today the prototype asks the AI to do almost everything, including jobs that have one right answer. The rebuild uses AI for the four pieces that need judgement and plain rules for the rest.

Prepared 2 September 2026. AI prices are the providers' published prices in US dollars on that date. The volumes are estimates from how the prototype is used today. We will check them against the first month of real use.
Our recommendation is four AI tasks on the standard tier with reasoning turned on, and the top tier for one of them.

Claude Sonnet 5, given time to reason, writes the full blood report, the pre-consult brief for Dr Ashraf and the check-in summaries. Claude Opus 5 writes the 16-week review, the one job that weighs new bloods against months of symptom history. Eligibility, patient stages, reminders, emails, scores and PDFs are handled by ordinary software. A clinician still signs off every AI output, and every job has a spending cap.

Today versus the rebuild

AreaTodayRebuild
Which AIClaude Sonnet 4.5, a mid-range model from last year, answering in one pass with no time to reasonClaude Sonnet 5 with reasoning turned on for most jobs. Claude Opus 5, the top tier, for the 16-week review only.
Where the AI is called fromThe browser sends results to a Replit server in the United States, which passes them to the AIThe Sydney computer sends them straight to the AI provider under a signed data agreement
How blood results are readEvery result goes to the AI as a pictureThe system reads the text inside the PDF itself. Only photos and scans go to the AI, which hands back the numbers.
Deciding eligibilityThe AI reads the Free T value and writes its verdict as a sentenceThe system compares the number with the 400 pmol/L threshold. Same input, same answer, every time.
How results are keptAs a block of AI text. On the symptoms screen you can see raw code pasted into the notes.As separate fields on the patient record, along with which AI wrote it and who signed it off
Emails and notesWritten fresh by the AI each timeFill-in-the-blanks templates, reviewed once by the clinic and reused
Reminders and alertsWorked out in the browser from the whole patient list, every time a page opensWorked out once overnight and saved. Screens just read the list.
ScoresThe AI interprets the questionnaireThe system adds up the AMS score, picks the severity band and raises the standard flags. The AI writes only the summary.
Spending limitsNone. A job can write as much as it likes.Each job has a length cap and a reasoning depth. A monthly ceiling at the provider stops surprises.
PDF reportsA screenshot of the web pageGenerated from a fixed layout, identical every time
Record of decisionsNone. A note cannot be traced back to the AI version or the instructions that produced it.Every review records who ran it, which AI, which instructions, and who signed it off
When the AI gets it wrongA patient can land in the wrong stage, a reminder can be missed, a note can come out garbledThe doctor rejects a report. Stages and reminders are unaffected because the AI never touches them.

Every job the prototype does, sorted

JobTodayRebuildWhy
Read the numbers off a blood resultAI reads the pictureSoftware with AI for photos onlyMost pathology PDFs contain the text already.
Is Free T above 400 pmol/L?AISoftwareA comparison of two numbers.
Move the patient to the next stageAI, read from its sentenceSoftwareA fixed rule for each verdict.
Short note for Cliniko after the first panelAITemplateThree values, same layout every time.
Welcome, journey and stage emails, 7 kindsAITemplateA name, a stage and a booking link.
AMS score and severityAISoftwareSeventeen answers added up against fixed bands.
Check-in warning flagsAIRulesEach flag comes from one specific answer, such as blood pressure not checked.
Check-in summary for the doctorAIAI, standard tierA short write-up over answers the system has already checked.
Full blood reportAIAI, standard tier, reasoning onJudgement across every marker, then a doctor's sign-off.
Pre-consult brief for Dr AshrafAIAI, standard tier, reasoning onSame.
16-week reviewAIAI, top tierWeighs new bloods against months of symptom history. The hardest job in the system.
When the next blood check is dueWorked out on every page openOvernightFollows from the review type and date.
Waiver and new-patient follow-upsWorked out on every page openOvernightSame.
Alert countsWorked out on every page openSoftwareRead from the saved reminders list.
Sending through GoHighLevelA button someone pressesAutomaticSent on schedule, retried if it fails.
PDF reports and packsScreenshot of the pageSoftwareSame layout every time, prints cleanly.
The chat assistantAIOptionalThe filters on the patients screen answer most of what it is asked. Keep it only if staff use it every week.

Nineteen AI jobs become four, plus one we would let the clinic decide on.

Which AI, and is the top tier overkill?

For two of the three reports, probably yes. The doctor signs off every report, the numbers are checked by software before the AI sees them, and the standard tier from either major provider now reasons well enough for a structured clinical write-up. We would keep the top tier for the 16-week review only, because that one has to weigh a new set of bloods against months of symptom scores, and it is the report most likely to change treatment.

The honest way to settle it is a trial, not a benchmark. Run the first 20 full reports through both tiers, let Dr Ashraf compare them without knowing which is which, and keep the cheaper one unless the difference is obvious. The rebuild makes that a one-line change per job.

The candidates

AIMade byPrice per million words in, outOne full report, roughlyNotes
Claude Sonnet 5Anthropic$2 / $10$0.08Standard tier with reasoning built in. Price made permanent in August 2026. Our pick for most jobs.
Claude Opus 5Anthropic$5 / $25$0.20Top tier. Our pick for the 16-week review.
GPT-5.6 TerraOpenAI$2 / $12, rising to $2.50 / $15$0.09 to $0.11The equivalent standard tier. Comparable to Sonnet 5 on this kind of writing. Current price is a promotion.
GPT-5.6 SolOpenAI$4 / $20 until 21 November 2026, then $5 / $30$0.15 to $0.22The equivalent top tier. Same class as Opus 5.
Why we lean Anthropic rather than mixing providers. Quality between the two standard tiers is close enough that it will not decide this. What decides it is one signed data agreement, one set of instructions to maintain, and a no-retention promise for patient results confirmed in writing. Both companies offer that on request. Pick one, get the paperwork, and switch later if the trial says so. The system is built so that switching is a small job, not a rebuild.

Should we cap what the AI can spend?

Yes, in four places. Today there are no limits, so a confused job could write pages of nonsense and bill for all of it.

The costs that never appear on the AI invoice

The AI bill is the smallest cost in this system. The real cost is people's time when something comes back wrong, and today the prototype makes that time expensive.

What happens today when the doctor rejects a report

The patient list already shows the pattern. Several patients have five or six reviews at the same stage, which is repeat runs, not clinical history. Four patients exist twice under slightly different spellings, because a re-run with a typo creates a new person instead of matching the old one. Each duplicate splits a patient's history in two and cannot be merged without a developer.

What happens in the rebuild

What that costs, per 100 full reviews

We assume one in five reports is sent back today and one in ten after the rebuild, the doctor's time at $150 an hour and a coordinator's at $50. These are assumptions to confirm with the clinic, and the conclusion holds even if they are halved.

CostTodayPer 100 reviewsRebuildPer 100 reviews
Reports sent back20, each re-run in full10, each re-run as a revision
Doctor's second read12 minutes to re-read a full report$6004 minutes to read the changed parts$100
Coordinator re-running the job20 minutes to find, re-upload, re-run and check$333Nothing. The doctor's button does it.$0
Working out what went wrongAbout 1 in 4 rejections needs an hour of digging with no logs$25015 minutes reading the log, on 1 in 10$13
Fixing a stage or reminder that movedAbout 1 in 4 rejections, 20 minutes$83Cannot happen. The AI does not touch stages.$0
Duplicate patient recordsAbout 3 per 100, an hour each to untangle, and often never done$150Prevented by matching before creation$0
Repeat AI charges20 full re-runs at 9 cents$210 revisions at 5 cents$1
Hidden cost per 100 reviews$1,418$114
The point of this table. The AI charges on the first-run tables above come to $35 per 1,000 records. The rework on 100 reviews costs forty times that in people's time. Choosing a cheaper AI tier saves a few dollars. Cutting the rejection rate and the cost of each rejection saves over a thousand per hundred reviews, plus the risk of a patient sitting in the wrong stage.
Not counted. The doctor's first read, which happens in both systems. Patients who fall through because a reminder shifted. The clinic's exposure if a wrong note reaches a patient. None of these have a clean number, and all of them favour the rebuild.

Why the rebuild is better

What the AI costs

AI is charged per job. Hosting is charged per month. They are shown separately because they grow differently.

AI cost to process 1,000 records

We assumed the mix the prototype shows today. Out of every 1,000 records, roughly 150 first panels, 100 full panels, 100 16-week reviews, 200 check-ins, and 450 emails, leads and reminders.

Kind of recordHow manyToday, Sonnet 4.5 for everythingRebuild, standard tier for everythingRebuild, recommendedRebuild, top tier for all reports
First panel150$4.50$0.90$0.90$0.90
Full blood report and brief100$8.50$8.20$8.20$22.00
16-week review100$9.00$9.60$23.00$23.00
Check-in200$6.00$3.20$3.20$3.20
Emails, leads, reminders450$6.30$0.00$0.00$0.00
Per 1,000 records$34.30$21.90$35.30$49.10
Reading the numbers. The recommended option costs about the same per 1,000 records as today, but the money now goes on reasoning for the clinical reports instead of on emails. Today about 18 cents in every dollar is spent on emails that need no AI at all. Two standard discounts from the provider, one for repeated instructions and one for overnight work, are not included above and bring every rebuild column down by roughly a third.

AI cost as the clinic grows

Records processedTodayStandard tierRecommendedTop tier for all reportsWhat that looks like
1,000$34$22$35$49About a year of the clinic as it is now.
10,000$343$219$353$491Several years of growth. Small next to hosting.
100,000$3,430$2,190$3,530$4,910The upper end of the brief. Spread over years, and the discounts above cut it by a third.
1,000,000$34,300$21,900$35,300$49,100A network of clinics. At this size a volume agreement with the provider would apply.

Monthly hosting as the records grow

Records storedTodayRebuildPer month
1,000Replit, one shared server, location not guaranteedBalanced option, Sydney$67
10,000The same. Pages start to drag because the browser downloads every patient.Balanced option, unchanged$67
100,000Barely usable. Each page waits on the whole list.Balanced option with the next database size up$97
1,000,000Does not work. The browser cannot hold the list, and working out reminders on each page open would take minutes.Big option, with a larger database and its spare$260 to $320

How good it is, as the clinic grows

MeasureRecordsTodayRebuild
How long a screen takes to open1,0001 to 2 seconds. The whole list is downloaded.Under a quarter of a second. One page of results at a time.
10,0005 to 15 seconds. Browsers start to struggle.Under a quarter of a second
100,000A minute or more, and some browsers give upUnder a quarter of a second
1,000,000Does not openUnder a third of a second
Getting eligibility and stages right1,000Mostly right. A handful of misreads a year, each needing a person to notice.Exact. The same rule every time, checked by automatic tests.
10,000Dozens of misreadsExact
100,000Hundreds of misreads. Finding them means re-reading every note.Exact
1,000,000Thousands of misreads, and no way to find them without an auditExact
Quality of the clinical reports1,000Adequate. A mid-range AI, no time to reason, numbers read off pictures.Better. Reasoning turned on, working from numbers the system has already checked, top tier where it counts.
10,000 to 100,000Same per report. No way to tell which reports came from older instructions.Same per report. Each one records its instructions, so a batch can be redone if the instructions improve.
1,000,000Same per report. No quality checks are possible.Spot-checking AI output becomes routine, because inputs and outputs are stored as separate fields.
Explaining a past decisionAnyNot possible. The AI version and instructions are not recorded.Yes. Which AI, which instructions, what it saw, what it wrote, who approved it.
100,000 and upA request from a regulator cannot be answeredAnswered from the records
Doctor's time per reviewAnyRead the AI's prose, find the verdict, check the numbers against the picture yourselfNumbers shown next to the source, verdict already worked out, one report to approve or send back
10,000 and upDoes not improveReports the doctor sends back feed into better instructions, so quality rises over time

What we need from UThrive