{
  "date": "2026-07-03",
  "timezone": "Asia/Shanghai",
  "window_start": "2026-07-03T00:00:00+08:00",
  "window_end": "2026-07-04T00:00:00+08:00",
  "granularity": "daily",
  "data_status": "complete",
  "summary": {
    "total_cost": 25.9106,
    "total_acp_interactions": 54,
    "active_users": 19,
    "workspace_count": 31,
    "created_workspace_count": 19,
    "new_workspace_count": 25,
    "updated_existing_workspace_count": 18,
    "changed_workspace_count": 43,
    "message_count": 184,
    "user_message_count": 85,
    "assistant_message_count": 95,
    "unknown_user_count": 0,
    "unknown_cost": 0.0
  },
  "source": {
    "kind": "grafana_prometheus_and_prod_sqlite",
    "grafana_datasource": "DevOps-prometheus",
    "grafana_datasource_id": 80,
    "prometheus_labels": {
      "cluster": "prod-devops",
      "namespace": "investibook",
      "job": "backend",
      "prometheus": "monitoring/o11y-vmagent"
    },
    "prod_backend_sqlite": "/data/db/investibook.db",
    "notes": [
      "Cost comes from prod SQLite interaction_token_usage with runtime-aware accounting: OpenCode ses_* rows use cumulative session deltas; PI UUID and image-parse rows use per-row increments.",
      "workspace_count in summary is cost-derived distinct positive-cost workspaces.",
      "Prometheus is used for ACP interaction counts only; investigatory PI sessions made investibook_acp_session_cost unsuitable as the cost source for mixed-runtime weekly reporting.",
      "message categories are rule-based user-message classifications.",
      "scenario labels are added to split daily workspace_changes rows."
    ]
  }
}
