These are aspirational targets, not contractual commitments. We measure and publish them to set honest expectations and to hold ourselves accountable publicly. Enterprise customers seeking contractual SLAs with service credits should contact sales.
/api/v1/transcriptions (authenticated probe) and /api/v1/models (unauthenticated probe).POST /api/v1/transcriptions requests complete in under 1000ms.p95 > 5s on /api/v1/transcriptions → immediate notification.status = 'completed' (vs. 'failed'), measured over a 30-day rolling window.transcription_jobs table. The ~3% margin covers corrupted audio, unsupported formats, and provider flakes.status = 'cancelled') and jobs that fail due to customer-caused errors documented in the error response.(completed_at - created_at) / duration_seconds aggregated over transcription_jobs. Computed nightly, surfaced on the internal ops dashboard.useRealtimeTranscription hook; aggregated into model_health.p95_latency_ms for streaming models.Every SLO above maps to an existing observability system. We do not use custom tooling:
p95 > 5s alert covering the primary API endpoint.model_health table — per-model latency/success/speed_factor rollups, computed by existing Inngest functions.transcription_jobs table — source of truth for success rate and end-to-end latency rollups.An error budget is the inverse of the SLO: if the target is 99.9%, the budget is 0.1% — roughly 43 minutes of downtime per 30 days.
When we burn through 50% of the monthly error budget, we freeze non-critical deploys and focus on reliability work until the budget recovers. When we exhaust the budget entirely, we publish a post-mortem on the status page within 5 business days and commit to a remediation plan.
This document publishes SLOs — aspirational targets we hold ourselves to publicly. It does not constitute a contractual SLA. We do not offer service credits for missed SLO targets at the free or standard paid tier.
Enterprise customers seeking contractual SLA commitments with service credits should contact sales. Enterprise SLAs are negotiated per-contract and are tied to dedicated account management, invoicing, and reporting.
Current uptime and incident history: https://opentranscription.betteruptime.com
We will update these targets as we accumulate operational data. Material changes (tightening or loosening a target) are announced via the changelog and via a status page post 30 days before taking effect.