Karyio Cost PlanningInternal planning preview
Planning estimates built from public prices and assumed usage. Not AWS bills, quotes or production measurements.

What will Karyio cost to run?

Karyio's estimated monthly operating cost for the November 2026 demo and the pilots after it. Every figure comes from one bottom-up model: verified unit prices × assumed usage. No billing history was used. Usage numbers are judgment values until the pilot produces real data.

12-month trend by scenario

Base case for each preset. The shaded band shows the Growing pilot's Low–High range. Small pilot has no growth, so it stays flat.

Where the money goes

Small pilot, month 1 and Growing pilot, month 12, by cost type. Fixed infrastructure dominates early; de-identification and AI grow with use.

Largest cost drivers

Top line items in the Growing pilot, month 12 (base case).

What's uncertain

Prices are mostly verified. The forecast will mostly miss on usage, not prices.

See Validation & Sources →

Try your own numbers

Change users, growth, voice minutes, chat, care logs, RAG share and infrastructure, and every chart updates.

Open the Cost Simulator →

Cost Simulator

Change how people use Karyio and see monthly cost move. Use the sliders on the left. Token sizes, text lengths and prices are on Assumptions & Pricing.

Scenario:
Uncertain assumptions:

Total monthly cost, next 12 months

Stacked by type. Infrastructure is mostly fixed; AI, de-identification and storage grow with users and activity.

What's in month 1 vs month 12

Voice cost

Speech-to-text and read-aloud run on the iPhone (Apple, no per-minute charge). Voice adds cost only because each spoken message becomes a chat turn: AI, de-identification and storage. Voice turns are counted once, not again as typed chat.

Voice cost by component (month 1)

Voice in numbers (month 1)

AI and de-identification cost (month 1)

Usage-based costs by provider, model and feature. Shared infrastructure is not included here.

By provider
By model / service
By feature

Care logs & memory, 12 months

Log processing (AI-assisted entry, summaries), memory embeddings, chat summaries and background Care Insights runs. Weekly reports currently make no AI call of their own.

Database and log storage growth

Estimated database size against the allocated RDS storage and its auto-grow ceiling. Row sizes are assumptions until measured.

Scenario comparison

Three preset usage levels, using the same prices and the uncertainty band chosen above. Month 1 and month 12.

Cost sensitivity: low / base / high

Uses the sidebar settings. Base uses every base assumption. Low and High set all uncertain inputs low or high together, so they are the outer limits, not likely outcomes. Four kinds of uncertainty are combined: how often people use the app, token counts, how much text DetectPHI scans, and prices that aren't verified. Verified (official) prices stay fixed.

What moves the month-12 cost most

Each bar moves one kind of uncertainty from its low to its high value while everything else stays at base. Longer bars are the numbers most worth measuring first.

Usage frequency: messages, voice minutes and logs per day, multiplied by the factors above. AI token counts: every token-size assumption. DetectPHI text volume: message, reply and log lengths, plus re-scans. Usage mix & triggers: RAG and recall shares, summaries, sessions, Care Insights runs. Storage & infra sizing: row sizes, logs, load-balancer capacity. Unverified prices: every price not marked Official.

Comprehend Medical on its own

How much DetectPHI adds in each scenario, under three settings: as the code works today, a what-if where each user message is scanned only once (would need a code change; nothing has been changed), and off (a privacy decision, not a cost decision). Uses the uncertainty band selected at the top.

DetectPHI calls by step (month 1)

One DetectPHI request each time text is de-identified. There is no cache. Each request is billed at a minimum of 1 unit (100 characters).

Cost Breakdown

The same monthly total, seen two ways. By service is how invoices arrive: AWS, Anthropic, OpenAI and so on. By feature is what each part of the product costs. Shared infrastructure (servers, database, load balancer) runs whether or not a feature is used, so it gets its own line and is never split into features. That way the two views add up to the same total and nothing is counted twice.

Showing the current Simulator settings:
Change in Simulator

By feature (product view)

Usage-based costs follow the feature that triggers them. Voice isn't listed separately here because spoken turns are chat turns. The voice share is shown in its card above.

By service (billing view)

Who sends the invoice. AWS includes infrastructure, storage and Comprehend Medical.

Line items

Every line in the model, with the service that bills it and the feature it is attributed to. Totals match the Simulator.

Architecture Map

The parts of Karyio that can cost money, how they connect, and how each feature reaches them. This is a simplified public view. It shows cost-relevant components only, not deployment or security configuration. Click a box to see what it does and what it costs at the current Simulator settings.

Planned / future requirements

Not built yet, or only partly built, and not in the monthly totals. Click a card to highlight what it depends on. A card lists possible cost sources, not a commitment to a new paid service.

Always every time Conditional only on some paths Async later, in the background Planned not built yet Local runs inside our own service
    Shared infrastructure: count once, not per feature

    Every feature runs on these, but their cost depends on uptime and size, not on which feature is used.

    Assumptions & Pricing

    Every price and usage assumption the model uses, where it came from and how sure we are. Edits here feed the Simulator and every other page directly; there is no second copy of the numbers. Use Reset at the top to restore the defaults.

    Active column for uncertain assumptions:

    How the cost is calculated

    Monthly cost = Σ (unit price × usage volume). Users × daily-active share × activity per user × 30.4 days gives the month's chat turns, voice turns and care logs. Every usage cost scales from those volumes. Fixed infrastructure is priced for 730 hours a month.

    Prices (verified 2026-10-28 unless noted)

    Edit any price; every chart updates. Official read on the provider's own pricing page or price list. Secondary the official page didn't show it, so a third-party source was used. Team-recorded recorded by the team from AWS on 2026-09-15, not re-checked. Assumed no source found.

    Usage assumptions (low / base / high)

    The highlighted column is active. Measured from team eval runs or content data. Synthetic eval measured on synthetic evaluation questions, not real patient traffic. From code set in configuration. Assumed a judgment value; replace when measured.

    One-time & optional costs (not in the monthly totals)

    Validation & Sources

    How much of the model is verified, what has been measured, and what still needs checking before and during the pilot. Unit prices are mostly verified; usage volumes and text lengths mostly aren't. The gap between forecast and actual cost will come mainly from how people use Karyio.

    Verified and measured

    Pending and missing

    Where the forecast could miss (Small pilot)

    One factor at a time, from its low to its high value, everything else at base. Computed live from the model. These are hand-picked bounds, not statistical confidence intervals. Real use could fall outside them.

    Remaining work and ownership

    The short list that closes the biggest gaps. None of it needs a deployment or a paid call to plan.

    Pilot calibration plan

    Calibrate on usage quantities, not dollars: replace each assumption with its observed value and let the model recompute cost from verified prices. That keeps "we misjudged usage" apart from "we misjudged prices."

    1. Freeze the forecast before the pilot starts: save the base inputs and per-driver forecasts with the date and cohort size.
    2. Week 1 smoke check: confirm every collection path returns numbers, and that no text or identifiers leave the environment.
    3. Compare weekly, driver by driver. Flag any driver outside its Low–High bound, or more than 25% off base.
    4. Update at weeks 2 and 4, and at pilot end. Set base to the observed median. With at least 5 users and 2 weeks of data, set Low/High to the observed 10th/90th percentiles.
    5. Cross-check observed AWS usage quantities (compute hours, DetectPHI units, GB stored) against the calibrated model. A gap over 20% points to a missing path or formula.

    Measurement collects aggregates only: counts, sums and percentiles, never message, note or transcript text. Groups smaller than 5 users are suppressed.

    Pricing sources

    Change log