Analytics API 400 Bad Request on Custom Report Definition Payload

I’ve spent hours trying to figure out why the Genesys Cloud Analytics API rejects my custom report definition payload with a 400 Bad Request. The endpoint is POST /api/v2/analytics/custom-reports. The ServiceNow integration requires this for automated ticketing triggers. The error message is vague: “Invalid metric definition”. Here is the payload:

{
 "name": "Digital Channel CSAT",
 "metrics": [{"id": "csat-score", "type": "average"}],
 "filters": [{"id": "channel", "op": "eq", "value": "webchat"}]
}

Does the csat-score ID need a specific prefix for digital channels?