Device Shipping — Operations Dashboard

Live — auto-refreshes every 60s. Data as of · now · static snapshot

Aggregates only, no PHI. Shipped unit = outbound packages (one shipping.package_ledger row = one physical shipment to a patient). Months marked * are partial (first = ledger start; last = month in progress). Freshness ceiling: activations are seconds-fresh; shipping/cost are ~minutes-fresh (bounded by the packiyo-sync, not the page).

Jack's flow question — are we shipping faster than we activate? Packages shipped vs unique patients newly active each month. The gap is EXPECTED, not waste: a welcome kit is ~5 packages to 1 patient (per-package vs per-patient). True same-device reships are a small single-digit % — the ~22.7% figure counted packages-per-patient (kits + accessories) and overstates it.

End-State — where every shipped device ends up (Jan–Jun 2026)

Static analysis results (not live). Resolved population: 3,837 of 4,854 shipments (~79%) that link to a patient. Each device sits in one bucket. Costs = Shipping SSOT.

BucketUnitsCost (SSOT)Notes
Delivered & activated (kept)the healthy bulkdevice shipped and stood up by the patient
Genuine device loss277~$34Kalmost all tablets — 197 tablets / $32,737; RPM small
Offboarded, not recovered159~$23Kpatient left the program; equipment never recovered
Reships (defective)~318 (placeholder)a small single-digit % of device shipments; $ and family split not computed
~$34K
Genuine device loss
~$23K
Offboarded, unrecovered
Recovery — the key finding. 565 returns created in-window. Execution works: once a return is initiated, ~82% of units are received (678 requested → 554 received, Packiyo Returned-Products export Dec 2025–Jun 2026 — an export figure; the DB's received_at is 100% null, so the system of record cannot reproduce it). End-to-end it fails: of the 4,505 patients who offboarded in-window (dated from patient-status JSON exit dates), only ~8–12% had equipment recovered.

We cannot produce a precise recovery rate from our own systems — receipt data (quantity_received) lives in Packiyo and never syncs to our ledger, and returns don't reliably link to patients. That blind spot is itself the finding.
Coverage & confidence. Resolved ~79% of shipments; 720 fulfilled tablet shipments are not yet patient-linked (flagged, not counted — could raise the tablet-loss figure). Router loss is unmeasurable (no patient activation signal). Costs = Shipping SSOT (scale unit cost is a placeholder). Recovery rate is approximate.

1 · Headline — packages shipped vs patients newly active

Newly active = a patient's first-ever tablet activation (patient_tablet_activities) or first BP/SpO2/weight reading (cosmos_readings → devices → patient_device), counted in that month. Per-patient (counted once). Packages is per-package, so the gap is expected and is the signal of interest. Routers are a blind spot — GoodCloud has no patient key, so router activations are not in this curve.

2 · Shipments per month — welcome vs reship vs other repeat

Welcome = the patient's first package. Reship = a later package containing a core device type (PulseOx/BP/Tablet/Scale/Router) the patient already received. Other repeat = a later package that adds only new device types or accessories. The three sum to total shipments.

3 · Reships per month — count, rate & estimated cost

Rate = reships ÷ total shipments. Est. reship $ is content-based: the SSOT unit cost of the core devices actually in each reship package, plus $19.87 shipping. Scale ($16.56) is a placeholder cost.

4 · Returns received per month

Return rate shown vs packages shipped that month. Proxy only — counts return shipments seen by the carrier, not warehouse receipt.

5 · Monthly hardware + shipping spend

Total = Σ(core-device unit cost) + $19.87 shipping per outbound package, SSOT prices. Tablets dominate (the $166 device); months with more welcome kits cost more per package. Accessories (weights, booklets, shirts) and Knox licensing are not costed here.

6 · Same-patient repeats per month

Distinct patients whose reship event (2nd+ of a core device type) occurred that month. Tracks the reship curve closely — most reships go to distinct patients rather than repeat offenders.

Data sources & caveats

TopicDetail
Source DBansiblehealth_analysis on the DAP-Local replica (192.168.10.130:5437, read-only sync_user). Derived shipping schema (continuous packiyo-sync) + activation proxies in public. Read live via GET /api/shipping-ops/metrics behind a 60s server-side cache.
Shipped unitOutbound package_ledger rows (physical packages). Multi-device kits count as one package.
Activation coverageTablet = patient_tablet_activities (validated). BP / PulseOx / Scale = cosmos_readings first reading. Router has no patient join (blind spot) — router activations are excluded from the "newly active" curve, so it is conservative.
received_at completeness
Cost modelSSOT (phase9_cost/ssot_unit_costs.md): PulseOx $6.13, BP $25.22, Tablet $166.18, Router $84.90, Scale $16.56 (placeholder), shipping $19.87/pkg. Accessories & Knox licensing excluded.
Refresh modelPage fetches on load + every 60s. The server caches one query batch for 60s, so the DB sees ≤1 read/min regardless of viewers. On DB error the page shows the last-good snapshot flagged stale (never a crash/retry storm). Static fallback baked by shipping-ops-dashboard-refresh.py.