{
  "schemaVersion": "2.0.0",
  "updatedAt": "2026-04-29T01:05:00Z",
  "overall": "operational",
  "timeline": [
    {
      "time": "2026-04-29T02:10:00Z",
      "title": "Status command center deployed",
      "status": "operational",
      "detail": "UI v2 released with bars and advanced telemetry."
    },
    {
      "time": "2026-04-29T01:34:00Z",
      "title": "AI failover active",
      "status": "operational",
      "detail": "Provider chain healthy in configured order."
    },
    {
      "time": "2026-04-29T00:40:00Z",
      "title": "Market updater lag",
      "status": "degraded",
      "detail": "Upstream finance API intermittent timeouts."
    }
  ],
  "services": [
    {
      "id": "web",
      "name": "Website (nauticgrid.xyz)",
      "status": "operational",
      "lastChecked": "2026-04-29T01:05:00Z",
      "description": "Next.js web application on Railway",
      "sloTarget": "99.9%"
    },
    {
      "id": "worker",
      "name": "Worker",
      "status": "operational",
      "lastChecked": "2026-04-29T01:05:00Z",
      "description": "Background jobs and data refresh routines",
      "sloTarget": "99.5%"
    },
    {
      "id": "db",
      "name": "PostgreSQL",
      "status": "operational",
      "lastChecked": "2026-04-29T01:05:00Z",
      "description": "Primary relational data store",
      "sloTarget": "99.95%"
    }
  ],
  "cronJobs": [
    {
      "id": "ingest-feeds",
      "name": "Feed ingest",
      "status": "operational",
      "schedule": "hourly",
      "lastSuccessAt": "2026-04-29T00:00:20Z",
      "currentLagMinutes": 65,
      "alertAfterMinutes": 180,
      "lastError": null
    },
    {
      "id": "update-market",
      "name": "Market update",
      "status": "degraded",
      "schedule": "hourly",
      "lastSuccessAt": "2026-04-28T20:10:00Z",
      "currentLagMinutes": 295,
      "alertAfterMinutes": 180,
      "lastError": "Yahoo finance upstream timeout spikes"
    },
    {
      "id": "disruption-index",
      "name": "Disruption index",
      "status": "operational",
      "schedule": "daily 02:00 UTC",
      "lastSuccessAt": "2026-04-28T02:00:06Z",
      "currentLagMinutes": 1385,
      "alertAfterMinutes": 2880,
      "lastError": null
    }
  ],
  "dependencies": [
    {
      "id": "imf-portwatch",
      "name": "IMF PortWatch",
      "type": "data-provider",
      "status": "degraded",
      "lastChecked": "2026-04-29T01:05:00Z",
      "note": "Intermittent DNS and timeout errors"
    },
    {
      "id": "yahoo-finance",
      "name": "Yahoo Finance",
      "type": "data-provider",
      "status": "degraded",
      "lastChecked": "2026-04-29T01:05:00Z",
      "note": "Occasional fetch failures, DB fallback active"
    },
    {
      "id": "groq-openrouter-deepseek-cerebras",
      "name": "AI providers",
      "type": "llm",
      "status": "operational",
      "lastChecked": "2026-04-29T01:05:00Z",
      "note": "Ordered failover enabled"
    }
  ],
  "aiRouting": {
    "order": ["groq", "openrouter", "deepseek", "cerebras"],
    "activeProvider": "groq",
    "providers": [
      { "id": "groq", "configured": true, "pausedUntil": null, "requestSharePct": 62, "avgLatencyMs": 460, "failoverCount24h": 1 },
      { "id": "openrouter", "configured": true, "pausedUntil": null, "requestSharePct": 26, "avgLatencyMs": 710, "failoverCount24h": 2 },
      { "id": "deepseek", "configured": true, "pausedUntil": null, "requestSharePct": 9, "avgLatencyMs": 690, "failoverCount24h": 0 },
      { "id": "cerebras", "configured": true, "pausedUntil": null, "requestSharePct": 3, "avgLatencyMs": 380, "failoverCount24h": 0 }
    ]
  },
  "slo": {
    "target": "99.9%",
    "errorBudgetBurnPct": 18,
    "windows": [
      { "label": "24h", "uptimePct": 99.97, "latencySloPct": 99.2 },
      { "label": "7d", "uptimePct": 99.89, "latencySloPct": 98.6 },
      { "label": "30d", "uptimePct": 99.84, "latencySloPct": 97.9 }
    ]
  },
  "dataQuality": [
    { "name": "Feed completeness", "value": 96, "target": 95 },
    { "name": "Market freshness", "value": 82, "target": 95 },
    { "name": "Port coverage", "value": 98, "target": 97 },
    { "name": "AI output success", "value": 93, "target": 90 }
  ],
  "userHealth": {
    "status": "operational",
    "loginSuccessPct": 98,
    "signupConversionPct": 76,
    "sessionValidityPct": 99,
    "pageSpeedScore": 91,
    "apiReliabilityPct": 97,
    "pageLoadP95Ms": 940,
    "apiErrorRatePct": 0.7
  },
  "regionalImpact": [
    { "region": "Asia Pacific", "status": "degraded", "portsAffected": 3, "lanesAffected": 2, "disruptionIndex": 64 },
    { "region": "Europe", "status": "operational", "portsAffected": 1, "lanesAffected": 1, "disruptionIndex": 38 },
    { "region": "Middle East", "status": "degraded", "portsAffected": 2, "lanesAffected": 2, "disruptionIndex": 58 },
    { "region": "Americas", "status": "operational", "portsAffected": 1, "lanesAffected": 0, "disruptionIndex": 35 }
  ],
  "deployments": [
    {
      "service": "nauticgrid",
      "status": "operational",
      "environment": "production",
      "commitSha": "87e90e0",
      "deployedAt": "2026-04-28T23:34:00Z",
      "buildUrl": "https://railway.com/project/5b50bd9c-3a2d-4dda-968d-bda2c6136e9a"
    },
    {
      "service": "worker",
      "status": "operational",
      "environment": "production",
      "commitSha": "87e90e0",
      "deployedAt": "2026-04-28T23:34:00Z",
      "buildUrl": "https://railway.com/project/5b50bd9c-3a2d-4dda-968d-bda2c6136e9a"
    }
  ],
  "maintenance": [],
  "incidents": [],
  "deployConfidence": {
    "state": "safe",
    "score": 92,
    "errorDeltaPct": 4,
    "rollbackReady": true
  },
  "subscribe": {
    "email": "mailto:status@nauticgrid.xyz?subject=Status%20Alerts",
    "rss": "./feed.xml",
    "webhookDoc": "https://github.com/raastey/nauticgrid-status"
  },
  "transparency": {
    "mttd": "11m",
    "mttr": "54m",
    "postmortemsPublished": 3,
    "postmortemLinks": [
      { "title": "Market feed lag RCA", "url": "https://github.com/raastey/nauticgrid-status/issues/1" },
      { "title": "Worker build failure RCA", "url": "https://github.com/raastey/nauticgrid-status/issues/2" }
    ]
  }
}
