Append-only AI cost ledger — single source of truth for billing queries
| Field | Type | Required | Description |
|---|
| orgId | string | Yes | Organization ID for multi-tenant isolation |
| programId | Id<"programs"> | No | Parent program reference |
| source | ”document_analysis” | “design_analysis” | “video_analysis” | “skill_execution” | “subtask_generation” | “health_scoring” | “dependency_detection” | “sprint_planning” | “risk_assessment” | “gate_evaluation” | “daily_digest” | “pr_review” | “requirement_refinement” | “task_decomposition” | “sandbox_chat” | “other” | Yes | |
| claudeModelId | string | Yes | |
| inputTokens | number | Yes | |
| outputTokens | number | Yes | |
| cacheReadTokens | number | Yes | |
| cacheCreationTokens | number | Yes | |
| costUsd | number | Yes | |
| durationMs | number | No | |
| sourceEntityId | string | No | |
| sourceEntityTable | string | No | |
| recordedAt | number | Yes | |
| Name | Fields |
|---|
| by_org | orgId |
| by_org_recorded | orgId, recordedAt |
| by_org_source | orgId, source |
| by_program | programId |
| by_program_recorded | programId, recordedAt |
| by_source_entity | sourceEntityId |