SLOs
SLOs
These are ShipVAT’s operational service-level objectives. They describe the targets we measure and alert on; they are not a separate contractual SLA.
Targets
| Area | Objective | Measurement |
|---|---|---|
| API availability | 99.9% monthly availability | Helheim external canary success for GET /health and GET /v1/rates?jurisdiction=DE |
| API latency | p95 below 300 ms | Helheim external canary request duration from the EU vantage point |
| Data freshness | Within the published freshness window for each data type | /v1/status region health plus meta.data_freshness on /v1/rates and /v1/thresholds |
| Webhook delivery | 99% delivered within 6 hours | Durable webhook delivery records and retry outcomes |
Freshness Windows
| Data type | Window |
|---|---|
| Standard rates | 7 days |
| Reduced rates | 30 days |
| Economic nexus and registration thresholds | 30 days |
| Product taxability | 90 days |
Freshness is measured from the last successful source verification timestamp. Rate and threshold API responses include provenance and freshness metadata so customers can inspect the source and verification time for returned data.
External Canary
ShipVAT is probed from the Helheim cluster, outside Cloudflare Workers. The canary runs every 60 seconds and checks:
GET https://api.shipvat.com/healthGET https://api.shipvat.com/v1/rates?jurisdiction=DEAuthorization: Bearer <dedicated canary API key>The rates probe validates both HTTP success and the response contract: Germany must return rate records plus public provenance and freshness metadata.
Canary metrics feed the ShipVAT Grafana SLO dashboard and Alertmanager burn alerts. A failing Worker, dependency outage, broken route, invalid canary key, or missing response metadata causes the canary to fail from the external vantage point.
Alerting
SLO burn alerts are evaluated in Helheim Alertmanager. Critical alerts route to PagerDuty; warning alerts route to Slack. ShipVAT also keeps independent Resend email alerts for collector parse failures and digest emails as a fallback path.
The public status page is available at https://shipvat.com/status; the raw
collector status API is:
GET https://api.shipvat.com/v1/status