Service Level math off on raw interval export

GET /api/v2/analytics/details/queues/query
{ “groupBy”: [“interval”], “intervalSize”: “30s”, “metrics”: [“offered”, “answered”] }
I’m looping through the returned rows but the raw interval data just gives flat counts. Dividing answered by offered doesn’t match the dashboard SLA target since the payload skips the time-in-queue breakdown. What’s the actual formula for weighting those thirty-second buckets? The docs just point to pre-built reports. Not helpful.