{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "window": { "type": "object", "properties": { "from": { "anyOf": [ { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, { "type": "null" } ] }, "to": { "anyOf": [ { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, { "type": "null" } ] }, "days": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": [ "from", "to", "days" ], "additionalProperties": false }, "kpis": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "enum": [ "FORECAST_LOAD_MAPE", "FORECAST_PV_NRMSE", "POTENTIAL_ACCURACY", "DECISION_LATENCY_P95_MS", "DISPATCH_SUCCESS_RATE", "REVENUE_UPLIFT_VS_HUMAN", "CROSS_REGION_MATCH" ] }, "value": { "anyOf": [ { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, { "type": "null" } ] }, "unit": { "type": "string", "minLength": 1 }, "target": { "anyOf": [ { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, { "type": "null" } ] }, "comparator": { "type": "string", "enum": [ "LTE", "GTE" ] }, "samples": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "status": { "type": "string", "enum": [ "MEET", "MISS", "NO_DATA", "NOT_APPLICABLE" ] }, "definition": { "type": "string", "minLength": 1 } }, "required": [ "id", "value", "unit", "target", "comparator", "samples", "status", "definition" ], "additionalProperties": false } }, "comparison": { "type": "object", "properties": { "shadow_yuan": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, "human_yuan": { "anyOf": [ { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, { "type": "null" } ] }, "hindsight_yuan": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, "naive_yuan": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, "capture_ratio": { "anyOf": [ { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, { "type": "null" } ] }, "uplift_vs_naive": { "anyOf": [ { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?$" }, { "type": "null" } ] }, "days_with_human_baseline": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": [ "shadow_yuan", "human_yuan", "hindsight_yuan", "naive_yuan", "capture_ratio", "uplift_vs_naive", "days_with_human_baseline" ], "additionalProperties": false }, "shadow": { "type": "object", "properties": { "days": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "complete_days": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "consecutive_complete_days": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "first_date": { "anyOf": [ { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, { "type": "null" } ] }, "last_date": { "anyOf": [ { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, { "type": "null" } ] }, "released_days": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "pending_days": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "widen_recommendations": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "breaker_trips": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": [ "days", "complete_days", "consecutive_complete_days", "first_date", "last_date", "released_days", "pending_days", "widen_recommendations", "breaker_trips" ], "additionalProperties": false }, "generated_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ "id", "window", "kpis", "comparison", "shadow", "generated_at" ], "additionalProperties": false, "$id": "https://vpp-ai-platform/contracts/kpi_report.json", "title": "KpiReport" }