Case study · published v1.0 (placeholder; customer name redacted pending sign-off)
An EU health-tech storing 80 TB of patient analytics
The constraint
Patient data must live within the EU. Analytics workloads run hourly across the full dataset. Bills must be auditable for regulators — per-byte, with the operator's legal entity and the energy + carbon profile of every read.
The before
- S3 (eu-west-1) + EMR + Athena
- ~$11k/mo combined: $1.8k storage, $4.6k Athena scans, $3.2k EMR cluster, $1.4k S3 GET requests + egress
- ESG reporting hand-rolled from invoice CSVs — no per-query attribution
The migration
Two-week migration. rclone ran the data copy (~3 days, parallel 64-way). Their analytics jobs (Spark on EMR) rewrote against JouleDB's analytical surface as parameterized SQL — less code, no cluster management. The ML team kept their pre-existing boto3 code unchanged, just pointed at the new endpoint.
The after
| Metric | Before | After |
|---|---|---|
| Monthly bill | $11,100 | $7,420 |
| Storage at rest | S3 Standard, eu-west-1 | Object Store, eu-fi (100% renewable grid) |
| Analytics latency (full-table scan) | 14 min | 11 min |
| Per-query joule / carbon attribution | no | yes, signed |
| CSRD-evidence prep time | ~3 person-days / quarter | 30 minutes / quarter |
What the customer said
"We picked Joule Cloud because the receipts auditor-ready out-of-the-box. The bill being lower was a bonus. The bill being structured by joule made it bonus and self-explanatory."
What we learned
- Region-pinning needs to be explicit in
invisible.hclfor both Object Store and JouleDB. We tightened the docs to make this prominent at signup. - The compliance team needed an “evidence pack” export format they could hand to their auditor; we shipped
jc compliance export --format esrs-e1as a result.