Tenant & Platform Operations
7 hospitals live · 3 in trial · 2 implementations in progress — last synced 18 Jul 2026 · 09:42 AM
All tenants (12)
| Attention ▼ | Hospital ▼ | Lifecycle | Plan | MRR ▼ | Contribution ▼ | Renews ▼ | Tickets ▼ | Schema |
|---|---|---|---|---|---|---|---|---|
| Act now |
Sunrise Children's Clinic
Miyapur, Hyderabad
−₹540/mo — AI is 68.4% of its ₹8,000 plan · two Hospital Plus workers left on after the pilot · DPDP clock running on INC-2026-071
|
Active since 03 Feb 2026 |
Clinic | ₹8,000 | −₹540 −6.8% |
200 d 03 Feb 2027 |
2 1 × S1 |
v2.4.0 rev 214 · canary |
| Act now |
Krishna Multispeciality Hospital
Sangareddy
Held on schema rev 213 · POOL_EXHAUSTED, 38 of the fleet's 71 daily errors · p95 412ms, 2.9× the median · ₹40,000 unpaid 9 days
|
Active · in dunning since 19 Sep 2025 |
Hospital Plus | ₹40,000 | ₹35,250 88.1% |
63 d 19 Sep 2026 |
1 TCK-4491 · S2 |
v2.3.2 rev 213 · held |
| Watch |
Vasavi Nursing Home
Nizamabad
Held on schema rev 213 · the month's one SLA breach (1h 48m against a 30-minute S2) · backup window deliberately moved to 23:45
|
Active since 27 Aug 2025 |
Hospital | ₹30,000 | ₹27,060 90.2% |
40 d 27 Aug 2026 |
1 SLA breached |
v2.3.2 rev 213 · held |
| Watch |
Sree Ramachandra Hospital
Hanamkonda, Warangal
₹40,000 renews in 18 days · NHCX claim submit timeouts, 9 in 24h · Discharge Drafter drift reported by a surgeon
|
Active since 05 Aug 2025 |
Hospital Plus | ₹40,000 | ₹34,310 85.8% |
18 d 05 Aug 2026 |
1 TCK-4489 · S3 |
v2.4.0 rev 214 |
| Watch |
Aadhya Multispeciality Hospital
Kompally, Hyderabad
₹32,000 renews in 15 days — the earliest in the fleet · ABHA link verify timeouts on the M2 sandbox, non-blocking
|
Active since 02 Aug 2025 |
Hospital | ₹32,000 | ₹27,950 87.3% |
15 d 02 Aug 2026 |
1 TCK-4488 · S3 |
v2.4.0 rev 214 |
| Decide |
Lotus Speciality Clinic
Karimnagar
Trial expires in 9 days — the fleet's nearest deadline · usage trending to Hospital ₹30,000 · has raised no tickets at all
|
Trial · day 22/30 started 27 Jun 2026 |
Clinic trial |
₹0 no invoice |
— CAC |
9 d expires 27 Jul |
0 | v2.4.0 rev 214 |
| Decide |
Prashanth ENT & General Hospital
Khammam
Trial expires in 16 days · measured usage fits Clinic ₹7,999 — the one tier that does not pay for itself yet
|
Trial · day 15/30 started 04 Jul 2026 |
Clinic trial |
₹0 no invoice |
— CAC |
16 d expires 03 Aug |
1 TCK-4483 · S4 |
v2.4.0 rev 214 |
| Decide |
Fortune Multispeciality Hospital
Suryapet
Trial expires in 23 days · two branches, routed to Hospital Plus ₹40,000 — the largest single conversion in the pipeline
|
Trial · day 8/30 started 11 Jul 2026 |
Hospital trial |
₹0 no invoice |
— CAC |
23 d expires 10 Aug |
1 TCK-4484 · S3 |
v2.4.0 rev 214 |
| Building |
New Life Maternity & Children's Hospital
Adilabad
Database building, 214 of 214 migrations applied · go-live Aug at ₹30,000 · ₹75,000 implementation fee collected
|
Implementing invoices at go-live |
Hospital contracted |
— from go-live |
— db ₹1,530/mo |
— starts at go-live |
0 | v2.4.0 rev 214 · building |
| Building |
Om Sai General Hospital
Mahbubnagar
Database building, 214 of 214 migrations applied · go-live Sep at ₹30,000 · ₹50,000 implementation fee collected
|
Implementing invoices at go-live |
Hospital contracted |
— from go-live |
— db ₹1,530/mo |
— starts at go-live |
0 | v2.4.0 rev 214 · building |
| Steady |
Sri Venkateshwara Multi-Speciality Hospital
Kukatpally, Hyderabad · onboarded 12 Feb 2025
Largest tenant, nothing outstanding · p95 128ms · break-glass BG-1042 open until 6:00 PM against TCK-4482
|
Active since 12 Feb 2025 |
Hospital Plus | ₹51,000 | ₹42,810 83.9% |
209 d 12 Feb 2027 |
1 TCK-4482 · S2 |
v2.4.0 rev 214 |
| Steady |
City Care Hospital
Nalgonda
Nothing outstanding · p95 112ms · paid 05 Jul on the UPI mandate · one S4 feature request
|
Active since 14 Nov 2025 |
Hospital | ₹30,000 | ₹25,830 86.1% |
119 d 14 Nov 2026 |
1 TCK-4485 · S4 |
v2.4.0 rev 214 |
| 12 tenants · 7 paying | ₹2,31,000 | ₹1,92,670 | recomputed from rows in view | 10 | ||||
Pipeline deadlines
₹30,000 + ₹7,999 + ₹40,000 = ₹77,999/month if all three trials convert — the +₹78,000 ceiling Usage Metering forecasts from, and the single input worth arguing about, because at zero conversions September MRR is ₹2,91,000 instead of ₹3,61,000. The two implementations are already contracted at ₹1,25,000 of one-time fees collected and each costs ₹1,530/month in dedicated Postgres while it builds — the standing bill for ADR #2's isolation-by-construction, which starts before the first invoice does.
Day 30 is an answer date, not a cliff: docs/auth-and-access-design.md §5 says an unconverted tenant goes to modules off with its export intact, never to deletion. A trial that lapses still gets its data out.
Denial-benchmark participation
What a hospital contributes if it opts in: a denial rate per payer, as a percentage — never a claim, a bill amount, or a patient. What every participating hospital sees back: the anonymized median across every payer with enough participants to protect anyone's identity. A payer with fewer than 3 opted-in hospitals shows no median at all, rather than one derived from too few hospitals to anonymize. Each row is this operator's record of that hospital owner's own decision — made outside this screen, in a signed data-sharing agreement — not a switch flipped on a whim.
| Hospital | Payer mix | Shares |
|---|---|---|
| Sri Venkateshwara Kukatpally | Star Health · PM-JAY · Aarogyasri · EHS | |
| Krishna Multispeciality Sangareddy | Star Health · Aarogyasri | |
| Vasavi Nursing Home Nizamabad | Star Health · PM-JAY | |
| Aadhya Multispeciality Kompally | Star Health · EHS | |
| Sree Ramachandra Warangal | PM-JAY · Aarogyasri | |
| City Care Nalgonda | Star Health | |
| Sunrise Children's Clinic Miyapur | EHS |
Star Health clears the threshold at 4 participants (Sri Venkateshwara, Krishna, Vasavi, Aadhya). PM-JAY and Aarogyasri sit at 2 each and EHS at 2 as well — one more opt-in on any of the three would produce a median for that payer too.
Digitalization maturity scorecard
| Hospital | Schema (Release & Rollout) | AI entitlement | Benchmark opt-in | Maturity |
|---|---|---|---|---|
| Sri Venkateshwara | Current | Compliant | ||
| Krishna Multispeciality | Held · deliberate, NABH prep | Compliant | ||
| Vasavi Nursing Home | Held · deliberate, NABH prep | Compliant | ||
| Sree Ramachandra | Current | Compliant | ||
| Aadhya Multispeciality | Current | Compliant | ||
| City Care Hospital | Current | Compliant | ||
| Sunrise Children's Clinic | Current | 2 workers not entitled | ||
| The 3 trials and 2 hospitals still provisioning aren't scored — there's no production entitlement or claims history yet to score. See Release & Rollout and Denial-benchmark participation, above, for what each column reads from. | ||||
Tier definitions
Changes apply to new sign-ups immediately; existing tenants keep contracted pricing until renewal.
Clinic
Entry- Reception, OPD queue & scheduling
- Consultation + AI Scribe (basic)
- Patient records & billing (cash/UPI)
- Pharmacy — single store
- WhatsApp Assistant — 500 msgs/mo
- 1 admin user · email support
Hospital
Standard- Everything in Clinic, plus:
- IPD, Bed Board & Nursing Station
- Laboratory module
- Analytics — Ask Anything & Revenue
- AI Workforce — Scribe, WhatsApp, Billing Agent
- GST invoicing · up to 5 admin users
- WhatsApp — 2,000 msgs/mo · priority support
Hospital Plus
Most popular- Everything in Hospital, plus:
- Discharge & Lab AI Agents
- Money Leaks detection
- Unlimited admin users
- WhatsApp — 5,000 msgs/mo pooled, overage billed
- Custom tariff & discharge templates
- Dedicated onboarding specialist
3 trial hospitals cross the 30-day mark this week. Based on measured usage: Prashanth ENT & General (Khammam) is averaging 612 WhatsApp msgs/week and 12 OPD tokens/day — fits Clinic. Lotus Speciality Clinic (Karimnagar) is trending toward IPD usage on 8 beds — recommend Hospital. Fortune Multispeciality (Suryapet, 42 beds, 2 branches flagged) — recommend Hospital Plus given multi-branch need.
Platform usage — this month
Aggregated across all 7 active tenants · billing cycle 01–31 Jul 2026
AI Scribe minutes
+12% vs last monthTop usage this week
WhatsApp messages
94% deliveredTop usage this week
LLM + speech spend
9.8% of MRR · 8.0% ex-trialsTop spend this week
AI cost per tenant — gross margin
| Hospital | Plan | MRR | LLM + STT | % of its MRR | Other variable | Contribution | Margin |
|---|---|---|---|---|---|---|---|
| Sri Venkateshwara Kukatpally | Hospital Plus | ₹51,000 | ₹4,180 | 8.2% | ₹4,010 | ₹42,810 | 83.9% |
| Sree Ramachandra Warangal | Hospital Plus | ₹40,000 | ₹2,980 | 7.5% | ₹2,710 | ₹34,310 | 85.8% |
| Krishna Multispeciality Sangareddy | Hospital Plus | ₹40,000 | ₹2,340 | 5.9% | ₹2,410 | ₹35,250 | 88.1% |
| Aadhya Multispeciality Kompally | Hospital | ₹32,000 | ₹1,540 | 4.8% | ₹2,510 | ₹27,950 | 87.3% |
| City Care Hospital Nalgonda | Hospital | ₹30,000 | ₹1,180 | 3.9% | ₹2,990 | ₹25,830 | 86.1% |
| Vasavi Nursing Home Nizamabad | Hospital | ₹30,000 | ₹790 | 2.6% | ₹2,150 | ₹27,060 | 90.2% |
| Sunrise Children's Clinic Miyapur | Clinic | ₹8,000 | ₹5,470 | 68.4% | ₹3,070 | −₹540 | −6.8% |
| 7 paying tenants | ₹2,31,000 | ₹18,480 | 8.0% | ₹19,850 | ₹1,92,670 | 83.4% | |
| 3 trials — cost with no revenue by design: this is acquisition cost, not margin | ₹0 | ₹4,170 | — | ₹6,050 | −₹10,220 | CAC | |
Why Sunrise is below water
Its ₹5,470 AI bill breaks down into one commercial mistake, one engineering defect, and one legitimate cost.
1. ₹2,870 of AI it is not paying for. Lab Summarizer and Discharge Drafter are Hospital Plus workers, and both are switched on for a ₹7,999 Clinic tenant — module flags left open after the February pilot and never closed. This is a revenue leak, not a usage problem, and it is fixed in one place: Tenants → Sunrise Children's Clinic → module flags.
2. ₹1,180 to a defect. The WhatsApp Assistant re-reads the whole parent conversation on every reply instead of a rolling summary. Sunrise generates ~41% of the fleet's replies, so it pays the most for our bug.
3. ₹1,420 that is simply the product working. Scribe plus speech-to-text on 38 consults a day. Nothing to fix — this is what the tier has to cover and does not.
Below that, a dedicated Postgres database costs ₹1,530/month whatever the plan. That is the standing bill for ADR #2's isolation-by-construction and it does not scale down.
What it implies about the Clinic tier
Even fully fixed, a ₹7,999 Clinic tier carrying its own database plus Scribe on every consult lands at under half the fleet's margin. Two honest options: price the Clinic tier at ₹11,500, or meter its AI separately (ADR #8 already makes per-transaction pricing possible without a rewrite). The option we will not take is putting clinics on a shared schema — that would trade away the isolation guarantee we sell on.
Token consumption by AI worker
| Worker | Units | Input | Output | Mix | Cost | ₹/unit |
|---|---|---|---|---|---|---|
| AI Scribe 9,210 notes · 18,420 min |
9,210 | 47.9M | 6.45M | ₹5,524 | ₹0.60 | |
| Speech-to-text Scribe audio, priced per minute |
18,420 min | — | — | audio | ₹4,698 | ₹0.26 |
| Billing Agent Charge capture drafts |
5,980 | 14.4M | 1.32M | ₹1,448 | ₹0.24 | |
| WhatsApp Assistant Generated replies (templates cost 0 tokens) |
6,420 | 35.0M | 1.34M | ₹2,879 | ₹0.45 | |
| Lab Summarizer Result trajectory |
2,140 | 3.85M | 0.68M | ₹1,870 | ₹0.87 | |
| Discharge Drafter 2,400 output tokens each — 10× the Scribe |
930 | 13.0M | 2.23M | ₹6,231 | ₹6.70 | |
| Platform total — 24,680 AI actions | ₹22,650 | — | ||||
Cost vs quality per worker
| Worker | Model tier | ₹/unit | Approved as-is | Avg edits | Verdict |
|---|---|---|---|---|---|
| AI Scribe incl. speech-to-text | Small | ₹1.11 | 84.1% | 0.9 | Already optimal |
| Billing Agent | Small | ₹0.24 | 91.6% | 0.4 | Cheapest and best |
| WhatsApp Assistant | Small | ₹0.45 | 76.2% | 1.3 | Fix context, not model |
| Lab Summarizer | Frontier | ₹0.87 | 71.9% | 1.7 | AMBER — locked |
| Discharge Drafter | Frontier | ₹6.70 | 58.4% | 3.6 | Prompt first |
The downgrade we rejected
We A/B ran the Discharge Drafter on the small model against 60 synthetic summaries. Cost fell ₹6.70 → ₹1.80 per summary — ₹4,550/month across the fleet. But approve-as-is fell 58.4% → 41% and edits rose 3.6 → 5.2. That is 1.6 extra edits × 930 summaries ≈ 37 hours of consultant time a month; at ₹40/min of surgeon time that is ₹88,800 of value destroyed to save ₹4,550. Rejected.
Lab Summarizer is AMBER under ADR #7, so a model change there is not a config edit at all — it goes through the Algorithm Change Protocol and a claim/copy review before it reaches a tenant. Cost is not a sufficient reason to move it.
Contribution after variable cost
The per-tenant table above lands on ₹1,92,670 because it only counts the 7 paying tenants. The gap of ₹13,280 is the cost of carrying the 3 trials (₹10,220) and the 2 databases being built for Adilabad and Mahbubnagar (₹3,060). Both are real money going out this month, so the honest headline is the smaller number.
This is contribution, not company gross margin. Salaries, the four-person HOS team, implementation labour and the ₹50K–1L one-time implementation fee are all outside it. What it does answer honestly is the only question that scales: every provisioned hospital costs us about ₹4,300/month to serve, so at ₹30,000 MRR each, tenant 25 is as profitable as tenant 8 — provided nobody sells another ₹8,000 clinic without fixing the tier.
Provider exposure
Forecast — revenue, AI cost and net
| Month | Paying tenants | MRR | LLM + STT | as % of MRR | Net after AI cost | Basis |
|---|---|---|---|---|---|---|
| Jun 2026 | 7 | ₹2,23,000 | ₹19,900 | 8.9% | ₹2,03,100 | Actual |
| Jul 2026 | 7 | ₹2,31,000 | ₹22,650 | 9.8% | ₹2,08,350 | Actual · +₹8,000 |
| Aug 2026 | 8 | ₹2,61,000 | ₹22,880 | 8.8% | ₹2,38,120 | Projection |
| Sep 2026 | 11 | ₹3,61,000 | ₹28,400 | 7.9% | ₹3,32,600 | Projection |
· Aug: New Life Maternity (Adilabad) completes implementation and starts billing at ₹30,000 — its Hospital plan is already set. Om Sai slips to Sep. No trial converts in Aug because the earliest crosses day 30 on 27 Jul and first invoices land the following cycle. Cost: +₹1,920 as the 3 trials reach full volume, +₹2,400 for the 2 new databases, −₹2,100 from the Discharge Drafter prompt fix.
· Sep: Om Sai live (+₹30,000) and 2 of the 3 trials convert — Lotus → Hospital ₹30,000 and Fortune → Hospital Plus ₹40,000, per the upsell routing draft on Plans & Pricing. Prashanth ENT is the one we are least sure of: its measured usage fits Clinic at ₹7,999, which is exactly the tier that does not pay for itself yet.
· If all 3 trials convert the ceiling is +₹78,000/mo; at 0 conversions Sep MRR is ₹2,91,000. The spread between those two numbers is larger than three months of net, which is why trial conversion is the only forecast input worth arguing about.
AI cost curve at scale
| Tenants | ₹/tenant/mo | Total | % of MRR | What changes |
|---|---|---|---|---|
| 10 | ₹2,265 | ₹22,650 | 9.8% | Today. Prompt cache warm on 5 workers, 61% hit rate. |
| 25 | ₹1,780 | ₹44,500 | 6.1% | Cache hit rate 61% → 74% as tariff/template prefixes repeat across tenants; first committed-use discount tier. |
| 50 | ₹1,610 | ₹80,500 | 5.4% | Discharge and claim batches move off-peak onto batch pricing. |
| 100 | ₹1,540 | ₹1,54,000 | 5.1% | Floor. Speech minutes and output tokens are per-patient work and never amortise. |
Unmodelled line — per-transaction claim revenue
✦ Ask about usage
Live telemetry · all 7 tenantsAI fleet control
8 AI workers live across 10 provisioned tenants · classifications per ADR #7 (CDSCO SaMD framework) · every control here writes a reason to an immutable log
Edit distance on discharge summaries rose 1.2 → 3.6 edits over 14 days at Sree Ramachandra (Warangal) and Krishna Multispeciality (Sangareddy). Both are orthopedics-heavy and both sit on v2.3.2 schema — the v2.4 template expects a package-pathway field their schema does not have yet, so the writer falls back to a stale physiotherapy block. Sri Venkateshwara, on v2.4.0 schema, is unaffected at 0.9 edits.
Two ways out: roll Discharge Drafter back to v2.3 for the two affected tenants until their schema migration lands Sunday, or disable the worker fleet-wide. Rollback is the smaller blast radius — the drafts stay usable, they just cost the surgeon an extra edit.
AI workers across the fleet
| AI worker | Tier (ADR #7) | Version across fleet | Tenants | Approved as-is | Health | Fleet control |
|---|---|---|---|---|---|---|
| AI Scribe Consultation notes |
GREEN · productivity | v4.2 — 8 tenantsv4.1 — 2 tenants |
10 / 10 | 84.1% | Healthy |
|
| Billing Agent Charge capture · claims assembly |
GREEN · productivity | v3.6 — 7 tenants |
7 / 7 | 91.6% | Healthy |
|
| WhatsApp Assistant Patient messaging |
GREEN · productivity | v2.9 — 10 tenants |
10 / 10 | 76.2% | Healthy |
|
| Discharge Drafter Discharge summaries |
GREEN · productivity | v2.4 — 4 tenants |
4 / 3 1 not entitled |
58.4% | Drift · 2 tenants |
|
| Lab Summarizer Result trajectory & reference ranges |
AMBER · reference | v1.8 — 4 tenants |
4 / 3 1 not entitled |
71.9% | Watch |
|
| Contradiction Sentinel Order vs result consistency |
AMBER · reference | v1.2 — 7 tenants |
7 / 7 | 88.0% | Healthy |
|
| Interaction & renal-dose alerts Checks against a licensed drug DB |
AMBER · reference | DB rev 2026.07 — 10 tenants |
10 / 10 | — | Healthy |
|
| Early-warning score NEWS/MEWS from charted vitals |
AMBER · reference | v1.1 — 3 tenants |
3 / 3 | — | Healthy |
|
| Deterioration forecast Predicts a future clinical event |
RED · medical device | not built — v0 in eval only |
0 / 12 | — | 🔒 Licence-blocked |
|
| Diagnostic imaging AI Reads radiology studies |
RED · medical device | partner integration — R3+ |
0 / 12 | — | 🔒 Licence-blocked |
|
| Acuity-assigning triage Ranks patients by clinical urgency |
RED · medical device | not built |
0 / 12 | — | 🔒 Licence-blocked |
|
AI rollout staging gate
| Tenant | Requesting | Tier | Pre-deployment risk memo | Gate |
|---|---|---|---|---|
| New Life Maternity & Children's Adilabad · go-live Aug |
Lab Summarizer Result trajectory & reference ranges |
AMBER · reference | Missing | Try in sandbox first |
| Om Sai General Hospital Mahbubnagar · go-live Sep |
Contradiction Sentinel Order vs result consistency |
AMBER · reference | On file · 16 Jul 2026 | Try in sandbox first |
Algorithm Change Protocol — pending promotion
Better handling of Telugu/English code-switched dictation and unit-bearing dose phrases. Cannot reach a single tenant until all six synthetic suites pass — the suites run on generated cases, never on a hospital's records, so evaluation never pulls PHI into the control plane (ADR #3).
🔒 Control-plane action log
04:20 PM SubmitAI Scribe v4.3 submitted for Algorithm Change Protocol review — Dr. G. Prakash
09:05 PM HoldLab Summarizer v1.8 rollout held at cohort — 3 tenants, fleet promotion cancelled — Dr. G. Prakash
11:40 AM KillWhatsApp Assistant disabled fleet-wide for 41 min — 10 tenants — Dr. G. Prakash
02:15 AM PromoteBilling Agent v3.6 promoted canary → fleet, 7 tenants — Dr. G. Prakash
Release & rollout
v2.4.0 on the fleet · 8 tenants running it, 2 provisioning onto it, 2 still on v2.3.2 · one migration outstanding
Staged rollout — v2.4.0
Pending migration — 214_add_package_pathway
Version per tenant
| Hospital | App | Schema rev | Rollout stage | State | Control |
|---|---|---|---|---|---|
| Sri Venkateshwara Kukatpally | v2.4.0 | 214 | Fleet | Current | |
| Sree Ramachandra Warangal | v2.4.0 | 214 | Fleet | Current | |
| Krishna Multispeciality Sangareddy | v2.3.2 | 213 | Held | 2 revs behind | |
| Aadhya Multispeciality Kompally | v2.4.0 | 214 | Cohort | Current | |
| City Care Hospital Nalgonda | v2.4.0 | 214 | Cohort | Current | |
| Vasavi Nursing Home Nizamabad | v2.3.2 | 213 | Held | 2 revs behind | |
| Sunrise Children's Clinic Miyapur | v2.4.0 | 214 | Canary | Current | |
| Lotus Speciality Clinic Karimnagar | v2.4.0 | 214 | Cohort | Current | |
| Prashanth ENT & General Khammam | v2.4.0 | 214 | Cohort | Current | |
| Fortune Multispeciality Suryapet | v2.4.0 | 214 | Fleet | Current | |
| New Life Maternity & Children's Adilabad | v2.4.0 | 214 | Provisioning | Built at latest | |
| Om Sai General Hospital Mahbubnagar | v2.4.0 | 214 | Provisioning | Built at latest |
Incidents & compliance response
1 open degradation · 1 contained SEV-2 with a DPDP notification clock running · MTTA 4m 12s over 90 days
⏱ DPDP 72-hour breach notification — INC-2026-071
A WhatsApp reminder batch was rendered against a stale recipient list after a number-change sync lag, so 41 messages containing appointment date, time and clinic name reached the wrong mobile numbers. No clinical content, no diagnosis and no report was in the message body. Sending was halted at 08:31; the template is suspended pending fix.
Statutory checklist
Incidents — last 90 days
| ID | Severity | What | Tenants | Detected | TTA | State |
|---|---|---|---|---|---|---|
| INC-2026-071 | SEV-2 | WhatsApp reminder batch sent to a stale recipient list — 41 subjects DPDP notification clock running |
1 Sunrise | 18 Jul · 08:10 | 4m | Contained |
| INC-2026-070 | SEV-3 | WhatsApp Cloud API delivery dipped to 94% — Meta-side rate limiting, auto-retry active Third-party degradation, no data impact |
12 fleet | 18 Jul · 08:50 | 2m | Open · monitoring |
| INC-2026-069 | SEV-3 | Nightly backup failed once, succeeded on retry Disk pressure on one DB host |
1 Vasavi | 16 Jul · 02:41 | 11m | Resolved |
| INC-2026-068 | SEV-2 | LLM provider p95 latency 2.1s for 14 min — Scribe drafts queued, none lost Provider-side, auto-recovered |
10 all provisioned | 18 Jul · 04:02 | 3m | Resolved |
| INC-2026-067 | SEV-1 | OTP provider outage — staff could not sign in for 9 min Failover SMS route added as the preventive control |
12 fleet | 02 Jul · 09:18 | 1m | Resolved · postmortem |
✦ Customer communication — INC-2026-071
Platform health
All services · auto-refreshes every 60s · last checked 18 Jul 2026 · 09:42 AM
Rollout — v2.4.0
10 of 12 tenantsRecent alerts
✦ Ask about health
Live status · all 12 tenantsTelemetry & observability
373,420 API calls in 24h across 10 provisioned tenant databases · every signal attributed to a tenant · logs carry no PHI by construction
API health by endpoint
| Endpoint | Req 24h | p50 | p95 | p99 | Errors | Worst-tail tenant |
|---|---|---|---|---|---|---|
| GET /opd/queue | 214,800 | 38ms | 105ms | 228ms | 0.02% | Krishna · 412ms |
| POST /encounters | 41,200 | 66ms | 162ms | 340ms | 0.01% | Krishna · 388ms |
| GET /patients/{id}/timeline | 38,600 | 88ms | 214ms | 460ms | 0.02% | Krishna · 604ms |
| POST /invoices | 29,400 | 61ms | 146ms | 305ms | 0.01% | Sree Ramachandra · 210ms |
| POST /prescriptions | 24,100 | 54ms | 128ms | 262ms | 0.00% | Vasavi · 188ms |
| GET /beds/board | 18,900 | 47ms | 112ms | 240ms | 0.00% | Sri Venkateshwara · 141ms |
| POST /auth/otp | 5,180 | 410ms | 620ms | 1,180ms | 0.06% | provider-bound · fleet |
| POST /nhcx/claims | 1,240 | 690ms | 2,240ms | 8,400ms | 0.81% | Sree Ramachandra · 4.1s |
| Volume-weighted across the 8 routes | — | 142ms | — | 0.02% | the two figures in the status strip | |
| POST /ai/drafts budgeted separately |
820 | 980ms | 1,410ms | 3,200ms | 0.95% | LLM provider · fleet |
p95 by tenant database
What a log line may contain
✓ Allowed — an allow-list, so a new field is off by default
- tenant id · service · host · build version
- error code · operation name (opd.queue.read)
- opaque record UUID — resolvable only inside the tenant DB
- duration_ms · counts · schema rev · provider name
✕ Never — dropped and alerted if it ever appears
- patient name · ABHA number · MRN · phone
- diagnosis or ICD text · lab values · medication names
- note, summary or message content
- full request or response bodies — never logged at any level
A real line, unredacted
That is enough to diagnose the incident and not enough to identify a person. rec is an opaque id — turning it into a patient requires a query inside hos_krishna_multispeciality, which requires a break-glass grant with a reason, an expiry and an entry in the hospital's own audit log.
Three controls keep it that way: the structured logger takes fields, never an interpolated string; a CI test fails the build on any log call with template syntax in it; and a PHI-shaped scanner (name, phone, ABHA, ICD patterns) runs on the ingest pipeline and quarantines rather than stores. An error log is the easiest place in this whole architecture to lose the isolation guarantee, so it is the place with the most machinery.
Error log — grouped by fingerprint
| Last seen | Sev | Service | Tenant | Message | 24h | 7d | Linked |
|---|---|---|---|---|---|---|---|
| 09:38 AM | Error | db-pool | Krishna Multispeciality rev 213 |
POOL_EXHAUSTED 20/20 · op=opd.queue.read · statement queued 1,840ms · missing rev-214 partial index | 38 | 214 | TCK-4491 |
| 08:52 AM | Warn | whatsapp-gw | Fleet 12 tenants | SEND_RETRY · 429 rate_limited · provider=meta_cloud · auto-retry with backoff, 0 dropped | 1,204 | 1,204 | INC-2026-070 |
| 08:14 AM | Error | whatsapp-gw | Sunrise Children's Clinic | RECIPIENT_LIST_STALE · rendered rev41, current rev42 · batch=rb_8821 · send halted | 41 | 41 | INC-2026-071 |
| 04:02 AM | Error | ai-scribe | Fleet 10 provisioned | INFERENCE_TIMEOUT 20s · draft requeued · dropped=0 · provider p95 2.1s during window | 61 | 74 | INC-2026-068 |
| 04:06 AM | Error | nhcx-gw | Sree Ramachandra | CLAIM_SUBMIT_TIMEOUT 30s · no gateway ack · idempotency_key retained · claim_ref=CLM-1187 | 9 | 31 | — |
| Yest · 11:12 PM | Warn | abdm-gw | Aadhya Multispeciality | ABHA_LINK_VERIFY_TIMEOUT · M2 sandbox · retry scheduled · non-blocking for the visit | 14 | 96 | — |
| 16 Jul · 02:41 AM | Error | backup | Vasavi Nursing Home | PG_DUMP_ABORTED · ENOSPC · host=db-04 · retry succeeded 02:58 · window moved to 23:45 | — | 1 | INC-2026-069 · TCK-4486 |
| 09:05 AM | Info | migrator | New Life Maternity | SCHEMA_BUILD_OK · rev 214 · 214/214 migrations applied · fresh database, no backfill | 2 | 2 | — |
Tickets & issues
10 open across 9 tenants · median first response 11 min · 1 SLA breach this week · 34 tickets this month
Open queue
| Ticket | Tenant | Reported by | Issue | Sev | Age | 1st reply | SLA | Class | Owner | |
|---|---|---|---|---|---|---|---|---|---|---|
| TCK-4490 | Sunrise Children's Miyapur | Owner | Some appointment reminders reached the wrong numbers → INC-2026-071 · DPDP clock running |
S1 | 1h 34m | 4m | Within · 15m | Defect | Karthik | |
| TCK-4491 | Krishna Multispeciality Sangareddy | Owner | OPD queue takes five seconds to load every morning → POOL_EXHAUSTED · tenant on schema rev 213 · fix in Sunday's window |
S2 | 1h 12m | 6m | Within · 30m | Defect | Karthik | |
| TCK-4482 | Sri Venkateshwara Kukatpally | Billing clerk | GST invoice #INV-2291 failed to generate → BG-1042 break-glass active until 06:00 PM · logged to owner |
S2 | 5h 02m | 3m | Within · 30m | Defect | Karthik | |
| TCK-4486 | Vasavi Nursing Home Nizamabad | Owner | Email said last night's backup failed → INC-2026-069 · retry succeeded 02:58, window moved to 23:45 |
S2 | 3d 6h | 1h 48m | Breached · 30m | Defect | Sandeep | |
| TCK-4489 | Sree Ramachandra Warangal | Doctor | Discharge summary keeps using the old physio schedule → Discharge Drafter drift · rollback available in AI Fleet Control |
S3 | 2d 4h | 22m | Within · 4h | Defect | Priya | |
| TCK-4488 | Aadhya Multispeciality Kompally | Doctor | "Where do I approve the AI note? I can't find the button" → 3rd time this month from a doctor · candidate for in-app guidance |
S3 | 3h 40m | 9m | Within · 4h | Usage | Priya | |
| TCK-4484 | Fortune Multispeciality Suryapet · trial | Owner | "Two branches — can staff see both from one login?" → Yes, one membership per branch · trial day 8, adoption-critical |
S3 | 2d 1h | 7m | Within · 4h | Usage | Karthik | |
| TCK-4487 | Sunrise Children's Miyapur | Doctor | "How do I set up the vaccination reminder template?" → 4th ticket from this tenant this month · the tenant is also below water on margin |
S4 | 1d 5h | 16m | Within · 1 day | Usage | Priya | |
| TCK-4485 | City Care Hospital Nalgonda | Billing clerk | "Can we bulk-print all of today's GST invoices at once?" → asked by 4 tenants · strongest R2 candidate in the queue |
S4 | 1d 2h | 14m | Within · 1 day | Feature | Priya | |
| TCK-4483 | Prashanth ENT Khammam · trial | Doctor | "Telugu prescription print is too formal for patients" → matches the fleet-wide "spoken register" correction pattern |
S4 | 4d 3h | 18m | Within · 1 day | Feature | Priya |
First-response SLA
| Severity | Target | Median | Volume (mo) | Attainment |
|---|---|---|---|---|
| S1 clinical work blocked | 15 min | 4m | 2 | 100% |
| S2 money or data at risk | 30 min | 9m | 11 | 91% · 1 miss |
| S3 workaround exists | 4 hours | 18m | 14 | 100% |
| S4 question or request | 1 business day | 2h 10m | 7 | 86% · 1 miss |
The one breach, and what changed because of it
TCK-4486 · Vasavi Nursing Home. The owner emailed at 02:50 AM after an automated backup-failure notice. On-call had no cover between 01:00 and 06:00 IST, so first response was 1h 48m against a 30-minute S2 target. The backup itself had already retried successfully at 02:58 — the customer spent an hour worried about data that was never at risk.
Preventive control: infrastructure alerts now page on-call directly and the owner-facing notice is delayed until after the first retry, so a hospital is never told about a failure we have already fixed. With four people covering 24×7 across 12 hospitals, the fix has to be in the alerting, not in asking someone to wake up.
The month’s second miss was an S4 request that sat over a long holiday weekend — same coverage gap, lower stakes. Two misses out of 34 is the 94% at the top of this screen; both were gaps in when we were awake, not in how we responded.
Defect or training?
82.9% of Indian doctors have never taken any formal AI course (research/06). So 41% of this queue being education is not a support failure — it is the market. What matters is that those 14 tickets did not reach engineering as bugs, because a roadmap that absorbs training questions stops shipping.
Each one produces an artefact rather than just a reply: an in-app guidance step, a Training Sandbox scenario, or a line in the local-language onboarding script. Three of this month's 14 were the same question about approving an AI draft — that is now a first-run tooltip, and the same question should not appear a fourth time.
New hospital
Provisioning — Sunrise Children's Clinic
Running…Last run — Sunrise Children's Clinic
Completed · 4 min 12 secSubscription lifecycle
| Hospital | MRR | Jul invoice | Overdue | Dunning | State | Control |
|---|---|---|---|---|---|---|
| Sri Venkateshwara Kukatpally | ₹51,000 | Paid 02 Jul | — | auto UPI mandate | Active | |
| Sree Ramachandra Warangal | ₹40,000 | Paid 03 Jul | — | auto UPI mandate | Active | |
| Krishna Multispeciality Sangareddy | ₹40,000 | Unpaid · INV-K-0719 | 9 days | mandate bounced 10 Jul · reminder 3 of 3 sent 17 Jul | Active · in dunning | |
| Aadhya Multispeciality Kompally | ₹32,000 | Paid 04 Jul | — | auto UPI mandate | Active | |
| City Care Hospital Nalgonda | ₹30,000 | Paid 05 Jul | — | auto UPI mandate | Active | |
| Vasavi Nursing Home Nizamabad | ₹30,000 | Due 21 Jul | — | NEFT, invoiced 15 Jul | Active | |
| Sunrise Children's Clinic Miyapur | ₹8,000 | Paid 02 Jul | — | auto UPI · flagged on margin, not on payment | Active | |
| New Life Maternity Adilabad | — | First invoice on go-live | — | implementation · ₹75,000 one-time collected | Implementing | |
| Om Sai General Hospital Mahbubnagar | — | First invoice on go-live | — | implementation · ₹50,000 one-time collected | Implementing |
Suspension does
- · turn off the module flags on that hospital's own screen — the same switches, no second mechanism
- · land staff sessions on a "contact your owner" page instead of an error
- · pause WhatsApp automations and stop all AI workers for that tenant
- · notify the owner and their DPO with the amount and a one-click restore path
Suspension never
- · deletes, detaches or archives a single row of the hospital's database
- · withholds their data — export stays available throughout
- · hides the audit log from the owner
- · touches the nightly backup schedule
That switch is checked and disabled because no HOS role has ever been given the ability to turn it off — not support, not ops, not the founder. Withholding a hospital's own records to force a payment would be a DPDP violation and, separately, the kind of thing that ends a company built on two states' worth of word of mouth. Suspension is a commercial lever; the data is not.
Last suspension, end to end
05 – 09 Mar 2026 · Vasavi Nursing Home. UPI mandate failed after a bank change; four reminders, then modules off on day 12. Restored 38 seconds after payment cleared, with zero data loss and no re-onboarding. Their admin downloaded a full data export twice while suspended — which is the whole point, and is the sentence to read out in a sales meeting when an owner asks what happens if they fall behind.
HOS internal team
Who can do what across every tenant — the governance layer behind break-glass.
| Name | Role | Break-glass grant | Pricing edit | Provisioning | Last active |
|---|---|---|---|---|---|
| Karthik R. | Support L2 | Yes | No | Yes | 18 Jul · 03:12 AM |
| Priya Reddy | Support L1 | Yes | No | No | 18 Jul · 11:20 PM |
| Sandeep K. | Ops on-call | Yes | No | No | 16 Jul · 08:40 AM |
| Dr. G. Prakash (You) | Founder · Superadmin | Yes | Yes | Yes | Now |
Access grants
| Ticket | Hospital | Granted by | Reason | Expiry | Owner audit visibility |
|---|---|---|---|---|---|
| BG-1042 | Sri Venkateshwara Multi-Speciality Hospital | Karthik (Support L2) | Investigate failed GST invoice #INV-2291 per hospital request (support ticket #4482) | 18 Jul 2026 · 06:00 PM | Active — logged to owner |
| BG-1041 | Aadhya Multispeciality Hospital | Priya Reddy (Support L1) | Debug WhatsApp delivery failure for token T-88 (ticket #4471) | 18 Jul 2026 · 11:00 PM | Expired — logged to owner |
| BG-1039 | Sree Ramachandra Hospital | Karthik (Support L2) | Data migration verification post schema upgrade to v2.4.0 | 17 Jul 2026 · 09:00 PM | Expired — logged to owner |
| BG-1037 | Vasavi Nursing Home | Sandeep (Ops on-call) | Investigate nightly backup failure alert (ticket #4438) | 16 Jul 2026 · 08:00 AM | Expired — logged to owner |
| BG-1035 | City Care Hospital | Priya Reddy (Support L1) | Billing reconciliation support — outstanding AR mismatch (ticket #4402) | 15 Jul 2026 · 06:00 PM | Expired — logged to owner |