{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "AI Agent Cost Model 2026: Tokens, Tools, Retries, and Human Review",
  "description": "This is an operator worksheet, not a market-price survey. Provider prices are entered as current variables; workflow volume, retries, tool use, infrastructure, and review time are measured from a bounded canary or supplied as explicit internal assumptions.",
  "url": "https://konabayev.com/blog/ai-agent-costs-2026/",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "dateModified": "2026-08-20",
  "version": "2.0.0",
  "creator": {
    "@type": "Person",
    "name": "Tugelbay Konabayev",
    "url": "https://konabayev.com/about/"
  },
  "measurementTechnique": "This is an operator worksheet, not a market-price survey. Provider prices are entered as current variables; workflow volume, retries, tool use, infrastructure, and review time are measured from a bounded canary or supplied as explicit internal assumptions.",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-001",
      "identifier": "ACM-INPUT-001",
      "name": "Accepted tasks per month",
      "unitText": "accepted tasks/month",
      "description": "Count tasks that pass the documented quality gate.",
      "input_id": "ACM-INPUT-001",
      "group": "volume",
      "source_type": "measured_workflow",
      "formula_role": "accepted_tasks",
      "caveat": "The acceptance rule must remain stable across compared periods."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-002",
      "identifier": "ACM-INPUT-002",
      "name": "Attempts per accepted task",
      "unitText": "attempts/accepted task",
      "description": "Divide total attempts by accepted tasks for the same canary window.",
      "input_id": "ACM-INPUT-002",
      "group": "reliability",
      "source_type": "measured_workflow",
      "formula_role": "retry_multiplier",
      "caveat": "Do not substitute a guessed failure percentage for observed attempts."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-003",
      "identifier": "ACM-INPUT-003",
      "name": "Input tokens per attempt",
      "unitText": "tokens/attempt",
      "description": "Read input-token usage from provider records or traces.",
      "input_id": "ACM-INPUT-003",
      "group": "model",
      "source_type": "measured_workflow",
      "formula_role": "input_tokens",
      "caveat": "Use the same token-accounting definition across models."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-004",
      "identifier": "ACM-INPUT-004",
      "name": "Output tokens per attempt",
      "unitText": "tokens/attempt",
      "description": "Read output-token usage from provider records or traces.",
      "input_id": "ACM-INPUT-004",
      "group": "model",
      "source_type": "measured_workflow",
      "formula_role": "output_tokens",
      "caveat": "Include retried and rejected attempts in the measured distribution."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-005",
      "identifier": "ACM-INPUT-005",
      "name": "Input price per million tokens",
      "unitText": "currency/million input tokens",
      "description": "Enter the current provider rate for the selected model and account tier.",
      "input_id": "ACM-INPUT-005",
      "group": "model",
      "source_type": "current_vendor_rate",
      "formula_role": "input_rate",
      "caveat": "Verify the rate at decision time; prices and cache discounts can change."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-006",
      "identifier": "ACM-INPUT-006",
      "name": "Output price per million tokens",
      "unitText": "currency/million output tokens",
      "description": "Enter the current provider rate for the selected model and account tier.",
      "input_id": "ACM-INPUT-006",
      "group": "model",
      "source_type": "current_vendor_rate",
      "formula_role": "output_rate",
      "caveat": "Verify the rate at decision time; batch and service-tier rates may differ."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-007",
      "identifier": "ACM-INPUT-007",
      "name": "Tool calls per attempt",
      "unitText": "billable events/attempt",
      "description": "Count billable calls or results in the workflow trace.",
      "input_id": "ACM-INPUT-007",
      "group": "tools",
      "source_type": "measured_workflow",
      "formula_role": "tool_events",
      "caveat": "Match the count to each provider's actual billing unit."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-008",
      "identifier": "ACM-INPUT-008",
      "name": "Tool cost per call or result",
      "unitText": "currency/billable event",
      "description": "Enter the current unit rate for each paid tool or data source.",
      "input_id": "ACM-INPUT-008",
      "group": "tools",
      "source_type": "current_vendor_rate",
      "formula_role": "tool_unit_rate",
      "caveat": "Keep tools with different billing units as separate line items."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-009",
      "identifier": "ACM-INPUT-009",
      "name": "Variable compute per attempt",
      "unitText": "currency/attempt",
      "description": "Allocate metered runtime, storage, and transfer charges to attempts.",
      "input_id": "ACM-INPUT-009",
      "group": "infrastructure",
      "source_type": "measured_workflow",
      "formula_role": "variable_compute",
      "caveat": "Separate variable charges from fixed monthly infrastructure."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-010",
      "identifier": "ACM-INPUT-010",
      "name": "Fixed monthly infrastructure",
      "unitText": "currency/month",
      "description": "Use hosting and observability invoices attributable to the workflow.",
      "input_id": "ACM-INPUT-010",
      "group": "infrastructure",
      "source_type": "internal_cost_record",
      "formula_role": "fixed_infrastructure",
      "caveat": "Document the allocation rule when infrastructure serves multiple workflows."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-011",
      "identifier": "ACM-INPUT-011",
      "name": "Human review minutes per accepted task",
      "unitText": "minutes/accepted task",
      "description": "Measure active review time in the approval or exception queue.",
      "input_id": "ACM-INPUT-011",
      "group": "human_review",
      "source_type": "measured_workflow",
      "formula_role": "review_minutes",
      "caveat": "Do not treat waiting time as active review time."
    },
    {
      "@type": "PropertyValue",
      "propertyID": "ACM-INPUT-012",
      "identifier": "ACM-INPUT-012",
      "name": "Loaded reviewer cost per hour",
      "unitText": "currency/hour",
      "description": "Use the documented internal planning rate for the reviewer role.",
      "input_id": "ACM-INPUT-012",
      "group": "human_review",
      "source_type": "internal_assumption",
      "formula_role": "review_hourly_rate",
      "caveat": "State whether the rate includes benefits and overhead."
    }
  ],
  "hasPart": [
    {
      "@type": "CreativeWork",
      "identifier": "ACM-FORMULA-001",
      "name": "Model cost per attempt",
      "text": "input_tokens / 1000000 * input_rate + output_tokens / 1000000 * output_rate"
    },
    {
      "@type": "CreativeWork",
      "identifier": "ACM-FORMULA-002",
      "name": "Tool cost per attempt",
      "text": "tool_events * tool_unit_rate"
    },
    {
      "@type": "CreativeWork",
      "identifier": "ACM-FORMULA-003",
      "name": "Human review cost per accepted task",
      "text": "review_minutes / 60 * review_hourly_rate"
    },
    {
      "@type": "CreativeWork",
      "identifier": "ACM-FORMULA-004",
      "name": "Monthly agent cost",
      "text": "accepted_tasks * retry_multiplier * (model_cost_per_attempt + tool_cost_per_attempt + variable_compute) + fixed_infrastructure + accepted_tasks * human_review_cost_per_accepted_task"
    },
    {
      "@type": "CreativeWork",
      "additionalType": "https://konabayev.com/schema/CostScenario",
      "name": "low",
      "description": "Cash floor: Confirmed minimum volume, best observed canary path, and mandatory approvals only."
    },
    {
      "@type": "CreativeWork",
      "additionalType": "https://konabayev.com/schema/CostScenario",
      "name": "base",
      "description": "Operating plan: Expected volume, median observed retry behavior, normal tool path, and current review rate."
    },
    {
      "@type": "CreativeWork",
      "additionalType": "https://konabayev.com/schema/CostScenario",
      "name": "high",
      "description": "Budget and safety ceiling: Capacity target, stress-test retry behavior, tool-heavy path, and elevated exception review."
    }
  ],
  "distribution": [
    {
      "@type": "DataDownload",
      "encodingFormat": "text/csv",
      "contentUrl": "https://konabayev.com/data/ai-agent-costs-2026.csv"
    },
    {
      "@type": "DataDownload",
      "encodingFormat": "application/json",
      "contentUrl": "https://konabayev.com/data/ai-agent-costs-2026.json"
    },
    {
      "@type": "DataDownload",
      "encodingFormat": "application/x-ndjson",
      "contentUrl": "https://konabayev.com/data/ai-agent-costs-2026.jsonl"
    }
  ],
  "data": [
    {
      "input_id": "ACM-INPUT-001",
      "group": "volume",
      "label": "Accepted tasks per month",
      "unit": "accepted tasks/month",
      "how_to_measure": "Count tasks that pass the documented quality gate.",
      "source_type": "measured_workflow",
      "formula_role": "accepted_tasks",
      "caveat": "The acceptance rule must remain stable across compared periods.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-002",
      "group": "reliability",
      "label": "Attempts per accepted task",
      "unit": "attempts/accepted task",
      "how_to_measure": "Divide total attempts by accepted tasks for the same canary window.",
      "source_type": "measured_workflow",
      "formula_role": "retry_multiplier",
      "caveat": "Do not substitute a guessed failure percentage for observed attempts.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-003",
      "group": "model",
      "label": "Input tokens per attempt",
      "unit": "tokens/attempt",
      "how_to_measure": "Read input-token usage from provider records or traces.",
      "source_type": "measured_workflow",
      "formula_role": "input_tokens",
      "caveat": "Use the same token-accounting definition across models.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-004",
      "group": "model",
      "label": "Output tokens per attempt",
      "unit": "tokens/attempt",
      "how_to_measure": "Read output-token usage from provider records or traces.",
      "source_type": "measured_workflow",
      "formula_role": "output_tokens",
      "caveat": "Include retried and rejected attempts in the measured distribution.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-005",
      "group": "model",
      "label": "Input price per million tokens",
      "unit": "currency/million input tokens",
      "how_to_measure": "Enter the current provider rate for the selected model and account tier.",
      "source_type": "current_vendor_rate",
      "formula_role": "input_rate",
      "caveat": "Verify the rate at decision time; prices and cache discounts can change.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-006",
      "group": "model",
      "label": "Output price per million tokens",
      "unit": "currency/million output tokens",
      "how_to_measure": "Enter the current provider rate for the selected model and account tier.",
      "source_type": "current_vendor_rate",
      "formula_role": "output_rate",
      "caveat": "Verify the rate at decision time; batch and service-tier rates may differ.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-007",
      "group": "tools",
      "label": "Tool calls per attempt",
      "unit": "billable events/attempt",
      "how_to_measure": "Count billable calls or results in the workflow trace.",
      "source_type": "measured_workflow",
      "formula_role": "tool_events",
      "caveat": "Match the count to each provider's actual billing unit.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-008",
      "group": "tools",
      "label": "Tool cost per call or result",
      "unit": "currency/billable event",
      "how_to_measure": "Enter the current unit rate for each paid tool or data source.",
      "source_type": "current_vendor_rate",
      "formula_role": "tool_unit_rate",
      "caveat": "Keep tools with different billing units as separate line items.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-009",
      "group": "infrastructure",
      "label": "Variable compute per attempt",
      "unit": "currency/attempt",
      "how_to_measure": "Allocate metered runtime, storage, and transfer charges to attempts.",
      "source_type": "measured_workflow",
      "formula_role": "variable_compute",
      "caveat": "Separate variable charges from fixed monthly infrastructure.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-010",
      "group": "infrastructure",
      "label": "Fixed monthly infrastructure",
      "unit": "currency/month",
      "how_to_measure": "Use hosting and observability invoices attributable to the workflow.",
      "source_type": "internal_cost_record",
      "formula_role": "fixed_infrastructure",
      "caveat": "Document the allocation rule when infrastructure serves multiple workflows.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-011",
      "group": "human_review",
      "label": "Human review minutes per accepted task",
      "unit": "minutes/accepted task",
      "how_to_measure": "Measure active review time in the approval or exception queue.",
      "source_type": "measured_workflow",
      "formula_role": "review_minutes",
      "caveat": "Do not treat waiting time as active review time.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    },
    {
      "input_id": "ACM-INPUT-012",
      "group": "human_review",
      "label": "Loaded reviewer cost per hour",
      "unit": "currency/hour",
      "how_to_measure": "Use the documented internal planning rate for the reviewer role.",
      "source_type": "internal_assumption",
      "formula_role": "review_hourly_rate",
      "caveat": "State whether the rate includes benefits and overhead.",
      "slug": "ai-agent-costs-2026",
      "worksheet_version": "2.0.0",
      "verified_at": "2026-08-20"
    }
  ]
}
