{
  "version": 1,
  "published": "2026-07-30",
  "note": "Token defaults for the llmprice.io project estimator. These are editorial judgment about workload shape, published here so every number the estimator shows can be traced to a stated assumption. They are user-adjustable on the page and versioned in this filename. Built to be replaced: once enough real workloads have passed through the bill auditor, these defaults will be superseded by empirical medians from anonymised audit data, and the version number will change.",
  "units": "All token figures are per item (per document, per piece, per conversation, or per tool call where stated). Triples are [low, used, high]: 'used' is the default the estimate runs on, low and high bound the published range.",
  "chatModel": "Chat archetypes are modelled per conversation, not per turn, assuming roughly five turns with the system prompt resent each turn and history accumulating.",
  "archetypes": [
    {
      "id": "invoices",
      "label": "Process invoices, receipts or forms",
      "desc": "Pull structured fields out of documents",
      "profile": "retrieval",
      "shape": "Retrieval shape · heavy in, light out",
      "unit": { "word": "invoices", "per": "month", "question": "Roughly how many invoices a month?", "monthlyFactor": 1 },
      "bands": [
        { "id": "low",  "label": "Under 100",  "anchor": "A few a day",             "rep": 50 },
        { "id": "mid",  "label": "100-500",    "anchor": "A small local business",  "rep": 300 },
        { "id": "busy", "label": "500-2,000",  "anchor": "A busy operation",        "rep": 1000 },
        { "id": "high", "label": "2,000+",     "anchor": "High volume",             "rep": 5000 }
      ],
      "sizeQuestion": "How long is a typical document?",
      "sizes": [
        { "id": "small",  "label": "A receipt or single page",     "in": [500, 800, 1200] },
        { "id": "medium", "label": "A few pages",                  "in": [1500, 2500, 4000] },
        { "id": "large",  "label": "A long document or contract",  "in": [8000, 12000, 20000] }
      ],
      "out": [40, 120, 400],
      "outSource": "structured fields returned",
      "inSource": "document text plus instructions and schema",
      "cacheReachable": 0.4,
      "ladder": [100, 500, 2000, 10000, 50000]
    },
    {
      "id": "email",
      "label": "Sort and route incoming email or leads",
      "desc": "Classify, prioritise, score, tag",
      "profile": "retrieval",
      "shape": "Retrieval shape · heavy in, light out",
      "unit": { "word": "emails", "per": "week", "question": "Roughly how many emails a week?", "monthlyFactor": 4.33 },
      "bands": [
        { "id": "low",  "label": "Under 100",  "anchor": "A few a day",       "rep": 50 },
        { "id": "mid",  "label": "100-500",    "anchor": "A steady inbox",    "rep": 300 },
        { "id": "busy", "label": "500-2,000",  "anchor": "A busy inbox",      "rep": 1000 },
        { "id": "high", "label": "2,000+",     "anchor": "High volume",       "rep": 5000 }
      ],
      "sizeQuestion": "How long is a typical email or lead?",
      "sizes": [
        { "id": "small",  "label": "A short note",                  "in": [300, 600, 1000] },
        { "id": "medium", "label": "A normal email with history",   "in": [1000, 1800, 3000] },
        { "id": "large",  "label": "A long thread or attachment",   "in": [4000, 7000, 14000] }
      ],
      "out": [30, 80, 250],
      "outSource": "a category, score or routing decision",
      "inSource": "email text plus instructions and label set",
      "cacheReachable": 0.4,
      "ladder": [100, 500, 2000, 10000, 50000]
    },
    {
      "id": "docqa",
      "label": "Answer questions from our documents",
      "desc": "Search a knowledge base and reply",
      "profile": "retrieval",
      "shape": "Retrieval shape · heavy in, light out",
      "unit": { "word": "questions", "per": "month", "question": "Roughly how many questions a month?", "monthlyFactor": 1 },
      "bands": [
        { "id": "low",  "label": "Under 100",  "anchor": "A few a day",            "rep": 50 },
        { "id": "mid",  "label": "100-500",    "anchor": "A small team asking",    "rep": 300 },
        { "id": "busy", "label": "500-2,000",  "anchor": "A busy operation",       "rep": 1000 },
        { "id": "high", "label": "2,000+",     "anchor": "High volume",            "rep": 5000 }
      ],
      "sizeQuestion": "How much material does a typical answer draw on?",
      "sizes": [
        { "id": "small",  "label": "A snippet or single page",   "in": [800, 1500, 2500] },
        { "id": "medium", "label": "A few pages of context",     "in": [2500, 4000, 6500] },
        { "id": "large",  "label": "Long documents or many",     "in": [8000, 12000, 20000] }
      ],
      "out": [80, 250, 600],
      "outSource": "the written answer",
      "inSource": "retrieved passages plus the question and instructions",
      "cacheReachable": 0.4,
      "ladder": [100, 500, 2000, 10000, 50000]
    },
    {
      "id": "content",
      "label": "Write content, reports or summaries",
      "desc": "Blog posts, product copy, client reports",
      "profile": "content",
      "shape": "Content shape · light in, heavy out",
      "unit": { "word": "pieces", "per": "month", "question": "Roughly how many pieces a month?", "monthlyFactor": 1 },
      "bands": [
        { "id": "low",  "label": "Under 100",  "anchor": "A few a week",             "rep": 30 },
        { "id": "mid",  "label": "100-500",    "anchor": "A steady content pipeline", "rep": 300 },
        { "id": "busy", "label": "500-2,000",  "anchor": "A busy operation",          "rep": 1000 },
        { "id": "high", "label": "2,000+",     "anchor": "High volume",               "rep": 5000 }
      ],
      "sizeQuestion": "How long is each piece?",
      "sizes": [
        { "id": "small",  "label": "A paragraph or social post",  "outTok": [100, 200, 350] },
        { "id": "medium", "label": "About a page",                "outTok": [600, 900, 1400] },
        { "id": "large",  "label": "A long report or article",    "outTok": [1800, 2600, 3500] }
      ],
      "in": [300, 800, 3000],
      "inSource": "the brief, source notes and instructions",
      "outSource": "the finished piece",
      "cacheReachable": 0.3,
      "ladder": [100, 500, 2000, 10000, 50000]
    },
    {
      "id": "support",
      "label": "Customer support chatbot",
      "desc": "Back-and-forth with a customer",
      "profile": "chat",
      "shape": "Chat shape · balanced, multi-turn",
      "unit": { "word": "conversations", "per": "month", "question": "Roughly how many conversations a month?", "monthlyFactor": 1 },
      "bands": [
        { "id": "low",  "label": "Under 100",  "anchor": "A few a day",            "rep": 50 },
        { "id": "mid",  "label": "100-500",    "anchor": "A small local business", "rep": 300 },
        { "id": "busy", "label": "500-2,000",  "anchor": "A busy operation",       "rep": 1000 },
        { "id": "high", "label": "2,000+",     "anchor": "High volume",            "rep": 5000 }
      ],
      "sizeQuestion": "How long is a typical conversation?",
      "sizes": [
        { "id": "small",  "label": "A quick question or two",   "in": [1200, 2000, 3200],   "outTok": [150, 250, 400] },
        { "id": "medium", "label": "A normal back-and-forth",   "in": [3500, 5000, 8000],   "outTok": [400, 600, 900] },
        { "id": "large",  "label": "A long detailed session",   "in": [10000, 14000, 20000], "outTok": [1100, 1600, 2400] }
      ],
      "inSource": "system prompt resent each turn plus accumulating history, about five turns",
      "outSource": "the bot's replies across the conversation",
      "cacheReachable": 0.5,
      "ladder": [100, 500, 2000, 10000, 50000]
    },
    {
      "id": "internal",
      "label": "Internal assistant for our team",
      "desc": "Answers staff questions, drafts replies",
      "profile": "chat",
      "shape": "Chat shape · balanced, multi-turn",
      "unit": { "word": "staff members", "per": "month", "question": "How many people would use it?", "monthlyFactor": 30, "factorNote": "We assume each person has about 30 assistant conversations a month, roughly one and a half per working day. Adjust with the exact field if you know better." },
      "bands": [
        { "id": "low",  "label": "Under 5",  "anchor": "Just a few of you",     "rep": 3 },
        { "id": "mid",  "label": "5-20",     "anchor": "A small team",          "rep": 12 },
        { "id": "busy", "label": "20-100",   "anchor": "A growing company",     "rep": 50 },
        { "id": "high", "label": "100+",     "anchor": "A large organisation",  "rep": 250 }
      ],
      "sizeQuestion": "How long is a typical conversation?",
      "sizes": [
        { "id": "small",  "label": "A quick question or two",   "in": [1200, 2000, 3200],   "outTok": [150, 250, 400] },
        { "id": "medium", "label": "A normal back-and-forth",   "in": [3500, 5000, 8000],   "outTok": [400, 600, 900] },
        { "id": "large",  "label": "A long detailed session",   "in": [10000, 14000, 20000], "outTok": [1100, 1600, 2400] }
      ],
      "inSource": "system prompt resent each turn plus accumulating history, about five turns",
      "outSource": "the assistant's replies across the conversation",
      "cacheReachable": 0.5,
      "ladder": [5, 20, 100, 500]
    }
  ],
  "lookup": {
    "inputMultiplier": 2,
    "note": "Retrieved context from the user's own content roughly doubles the input per item. Applied to the input figure and stated on screen whenever it is on."
  },
  "agent": {
    "note": "Ticking 'it uses tools and works in steps' converts any selection to the Agent profile: per item cost becomes calls x (input per call + output per call), because each call carries the full instruction set and prior results again.",
    "calls": [3, 6, 20],
    "callInput": [
      { "id": "light",   "label": "Light",   "tok": 1500 },
      { "id": "typical", "label": "Typical", "tok": 3000 },
      { "id": "heavy",   "label": "Heavy",   "tok": 8000 }
    ],
    "callOutput": [60, 150, 400],
    "cacheReachable": 0.7
  },
  "caching": {
    "default": 0,
    "note": "The estimator defaults every profile to 0% cached, because small businesses commonly build through n8n, Make and Zapier, which frequently do not expose prompt caching. The published indices assume the cached shares of the market they track (Retrieval 70%, Agent 85%); the estimator deliberately does not reuse those shares, because doing so would understate real cost for this audience. cacheReachable per archetype is the share used for the 'if your tooling supports caching' scenario only, never the default."
  },
  "notModelled": "Retry and failure rates (nobody knows them before building; disclosed as a caveat), reasoning-token overhead (bills as output and is not predictable), batch pricing, and negotiated rates."
}
