How a row is built
One row is a product × plan × capture date. A product qualifies when its public pricing page carries a numeric, depletable meter — credits, tokens, tasks, actions, outcomes. Because a credit means something different everywhere, the Index works in three comparable layers and never compares raw $/credit across products:
- Unit-free within-product ratios — top-up premium over a plan’s own bundle, tier-to-tier discount curves. The unit cancels.
- Policy distributions — rollover, expiry, behaviour at zero, seat scaling. Counted across the panel.
- Task-equivalent prices within a category — only where the credit-to-action mapping is public, and only where the task is the same.
Sources are vendors’ own public pricing pages and help docs only — never third-party trackers, leaks, or estimates (those may annotate a row, never populate it). Every published row is pinned to at least one archived copy of the vendor’s page: a Wayback Machine snapshot, or — where the vendor blocks Wayback or the page renders only in a browser — a dated screenshot hosted with the Index. Promos and regional prices are flagged and excluded from metrics. Prices visible only behind the logged-in purchase screen are recorded as in-app only and kept out of public aggregates — the opacity is reported, not imputed. Derived figures are computed at build; none is hand-entered, and missing is missing — no imputation, ever. One dated editorial exclusion applies to the rate aggregates only: Bolt meters individual tokens, so its bundled rate (as low as $0.0000018 per token) sits about 90 times below the next-lowest rate on the panel and nearly four orders of magnitude below the median, and it alone drove the Edition 1 whole-panel spread to 13 million to one. Excluded from rate aggregates from Edition 2 (decision 2026-10-12). The product stays on the panel for every other count and in every export row.
What we excluded — and why
The inclusion test is deliberately strict, and plenty of well-known AI software fails it. The reasons are part of the picture — not every AI product meters, and where the meter is absent is itself a finding:
- Flat per-seat AI, no meter — e.g. Granola (AI meeting notes; $14–$35/user, “unlimited”). Priced like classic SaaS — nothing to meter.
- Caps without purchasable units — e.g. Wispr Flow (AI dictation; 2,000 words/week free, then a flat “unlimited” Pro at $15). A cap, but you upgrade rather than buy more, so there’s no top-up economics to read.
- No first-party AI product — e.g. Obsidian (a notes app; AI is third-party plugins). Out of scope.
- Raw API token pricing (OpenAI / Anthropic / Google per-token rates) — a different layer; this study is about the abstraction products wrap around tokens.
- Negotiated enterprise pricing — unobservable; tracked instead on the opacity watchlist.
- Promos, regional, and lifetime prices — flagged and kept out of the metrics so the quarterly time series stays clean.
The panel & source ledger
Every published product, its computed bundled-rate range, whether the top-up
price is public, and the dated source + archive each row rests on. The full
per-plan dataset is the /benchmarks/credit-index.json
endpoint (published observations only).
Relay.app shut down in September 2026; it is out of the current view and its calculations, and stays in the editions observed before the exit (its page).
The Index is published under CC BY 4.0: free to reuse — including by AI engines — with attribution to Strategy of Finance — The AI Credit Index.
| Product | Category | Bundled $/credit | Top-up price | Observed | Source |
|---|---|---|---|---|---|
| Activepieces | Workflow automation | $0.002–$0.004 | Published | activepieces.com · archive | |
| Adobe Firefly (generative credits) | Incumbents adding meters | $0.004–$0.005 | Published | adobe.com · archive | |
| Agentforce (Flex Credits) | Incumbents adding meters | — | Published | salesforce.com · archive | |
| Apollo | GTM / RevOps | $0.02475–$0.026 | Published | apollo.io · archive | |
| Asana AI Studio (credits) | Incumbents adding meters | $0.00027–$0.00041 | In-app only | asana.com · archive | |
| Bardeen | Workflow automation | $0.05–$0.1 | None | bardeen.ai · archive | |
| Bolt | Coding / agents | $0.0000018–$0.0000025 | In-app only | bolt.new · archive | |
| Canva AI (Magic Studio AI allowance) | Incumbents adding meters | $0.0625–$0.09 | Published | canva.com · archive | |
| Chatbase | Support / CX | $0.03333–$0.05714 | Published | chatbase.co · archive | |
| ChatLLM | General agents | $0.0005–$0.00067 | Published | abacus.ai · archive | |
| Clay | GTM / RevOps | $0.074–$0.0825 | Published | clay.com · archive | |
| ClickUp AI (credits) | Incumbents adding meters | $0.0066–$0.00933 | Published | clickup.com · archive | |
| Copy.ai | Content / marketing | $0.04–$0.05 | In-app only | copy.ai · archive | |
| Cursor | Coding / agents | — | Published | cursor.com · archive | |
| D-ID Studio | Media generation | $0.1475–$0.49 | None | d-id.com · archive | |
| Descript | Media generation | $0.04333–$0.06 | Published | descript.com · archive | |
| Devin | Coding / agents | — | In-app only | devin.ai · archive | |
| Dream Machine (Luma) | Media generation | $0.002–$0.003 | Published | lumalabs.ai · archive | |
| eesel AI | Support / CX | $0.598 | Published | eesel.ai · archive | |
| ElevenLabs | Media generation | $0.00016–$0.0002 | Published | elevenlabs.io · archive | |
| Emergent | Coding / agents | $0.2–$0.26667 | Published | emergent.sh · archive | |
| Fellou | General agents | $0.00798–$0.0095 | Published | fellou.ai · archive | |
| Figma AI credits | Incumbents adding meters | $0.00667–$0.02118 | In-app only | figma.com · archive | |
| Fin | Support / CX | — | Published | intercom.com · archive | |
| Freddy AI Agent (Freshdesk) | Support / CX | — | Published | freshworks.com · archive | |
| Gamma | Content / marketing | $0.00333–$0.012 | Published | gamma.app · archive | |
| Genspark | General agents | $0.002–$0.0025 | In-app only | genspark.ai · archive | |
| GitHub Copilot | Coding / agents | $0.005–$0.01 | Published | github.com · archive | |
| Gorgias AI Agent | Support / CX | $1 | Published | gorgias.com · archive | |
| Gumloop | Workflow automation | $0.00185 | Published | gumloop.com · archive | |
| Help Scout AI | Support / CX | — | Published | helpscout.com · archive | |
| HeyGen | Media generation | $0.04833–$0.09933 | Published | heygen.com · archive | |
| HubSpot Credits (Breeze) | Incumbents adding meters | — | Published | legal.hubspot.com · archive | |
| Hugging Face Hub † | Dev platforms | $4.50–$25 | Published | huggingface.co · archive | |
| Ideogram | Media generation | $0.01714–$0.02 | Published | ideogram.ai · archive | |
| Instantly | GTM / RevOps | $0.0194–$0.06267 | Published | instantly.ai · archive | |
| JetBrains AI | Coding / agents | $0.85714–$1 | Published | jetbrains.com · archive | |
| Kaiber | Media generation | $0.01933–$0.02 | Published | kaiber.ai · archive | |
| Kiro | Coding / agents | $0.02 | Published | kiro.dev · archive | |
| Kling AI | Media generation | $0.00615–$0.01333 | Published | kling.ai · archive | |
| Kling AI API † | Dev platforms | $0.0035–$0.14 | Published | kling.ai · archive | |
| Leonardo.Ai | Media generation | $0.0008–$0.00141 | In-app only | leonardo.ai · archive | |
| Lindy | General agents | $0.00571–$0.01 | Published | lindy.ai · archive | |
| Lovable | Coding / agents | $0.25–$0.5 | Published | lovable.dev · archive | |
| Magnific AI suite | Media generation | $0.00093–$0.00153 | In-app only | magnific.com · archive | |
| Make | Workflow automation | $0.00106–$0.00341 | Published | make.com · archive | |
| Manus | General agents | $0.005 | In-app only | help.manus.im · archive | |
| Midjourney | Media generation | $2–$3.03 | Published | docs.midjourney.com · archive | |
| Miro AI (credits) | Incumbents adding meters | $0.4–$0.5 | In-app only | miro.com · archive | |
| monday AI (AI credits) | Incumbents adding meters | $0.007–$0.012 | Published | monday.com · archive | |
| Murf AI (Studio) | Media generation | $12.38–$14.50 | None | murf.ai · archive | |
| n8n Cloud | Workflow automation | — | Published | n8n.io · archive | |
| Notion AI (Notion credits) | Incumbents adding meters | — | Published | notion.com · archive | |
| OpenArt | Media generation | $0.00226–$0.0035 | Published | openart.ai · archive | |
| PhantomBuster | Workflow automation | $1.46–$3.45 | None | phantombuster.com · archive | |
| Pika | Media generation | $0.01111 | Published | pika.art · archive | |
| PixVerse | Media generation | $0.004–$0.00833 | Published | app.pixverse.ai · archive | |
| Recraft | Media generation | $0.01–$0.012 | Published | recraft.ai · archive | |
| Replit | Coding / agents | $1 | Published | replit.com · archive | |
| Rovo (AI credits) | Incumbents adding meters | $0.01 | Published | support.atlassian.com · archive | |
| Runway | Media generation | $0.01–$0.024 | In-app only | runway.com · archive | |
| Sai | General agents | $0.001 | In-app only | sai.work · archive | |
| Smallest.ai (Waves) † | Media generation | — | Published | smallest.ai · archive | |
| Smartlead | GTM / RevOps | $0.00076–$0.0065 | Published | smartlead.ai · archive | |
| Speechify Studio | Media generation | $0.0017–$0.00264 | None | speechify.com · archive | |
| Suno | Media generation | $0.003–$0.004 | In-app only | suno.com · archive | |
| Surfer | Content / marketing | $3.97–$7.30 | None | surferseo.com · archive | |
| Synthesia | Media generation | $0.02417–$0.02472 | In-app only | synthesia.io · archive | |
| Tasklet | General agents | $0.0025 | Published | tasklet.ai · archive | |
| Topaz Labs (cloud credits) | Media generation | $0.12487–$2.36 | Published | topazlabs.com · archive | |
| Udio | Media generation | $0.00417–$0.005 | Published | udio.com · archive | |
| v0 | Coding / agents | $1–$3.33 | In-app only | v0.app · archive | |
| Windsurf (Devin Desktop) | Coding / agents | — | In-app only | windsurf.com · archive | |
| Zapier | Workflow automation | $0.03999–$0.05175 | In-app only | zapier.com · archive | |
| Zendesk AI agents | Support / CX | $5–$14.90 | Published | zendesk.com · archive |
† Borderline inclusion — sits near the raw-API exclusion line; captured anyway, flagged here.
Field definitions
The JSON and CSV exports share one row shape — one plan tier per row, with the product and observation
fields repeated on each row. Computed fields are marked; they are derived at build time from the published
inputs and are never stored. The same definitions are kept in the repository as
docs/ai-credit-index-data-dictionary.md.
| Field | Type | Definition |
|---|---|---|
product_slug | string | Stable product identifier (the YAML file name). Joins to /benchmarks/ai-credit-index/reviewed/<slug> where a Reviewed page exists. |
company | string | Vendor name as it appears on the pricing page. |
product | string | Product name as it appears on the pricing page. |
category | enum | One of nine panel categories (coding-agents, media-gen, incumbent-meters, workflow-automation, gtm-revops, general-agents, content-marketing, support-cx, dev-platforms). |
audience | enum | Primary go-to-market audience: consumer, prosumer or business. Editorial classification; business absorbs enterprise. |
observed_at | date (ISO) | Date the pricing page was read and archived for this observation. Every row in a given edition is dated on or before that edition’s cut-off. |
unit_name | string | What the vendor calls the metered unit (credits, tokens, tasks, actions…). Units are NOT comparable across products. |
dollar_pegged | boolean | True when one unit is defined as a fixed dollar amount (e.g. 1 credit = 1¢). |
plan | string | Plan tier name as published. |
plan_slug | string | Stable tier identifier across editions; renames are tracked in the product’s `formerly` list. |
price_usd_monthly | number | null | Published monthly price in USD (annual plans normalized to monthly where the vendor states both). Null = not publicly priced (contact us). |
included_credits | number | null | Units included per month at that price. Null = unlimited, unstated or custom. |
exhaustion_behavior | enum | null | What happens when included units run out: hard_stop, overage_opt_in, auto_overage_default, throttle_cap, unstated. |
included_expiry | enum | null | Policy for unused included units: expires, rolls_over, never_expires, unstated. (Rollover horizons and notes live in the source YAML, not in the flat export.) |
purchased_expiry | enum | null | Same convention for purchased top-up units. |
top_up_exists | enum | null | Whether the plan sells additional units: yes, no, unknown. |
top_up_disclosure | enum | null | Where the top-up price is disclosed: pricing_page, help_docs, in_app_only, none. |
effective_price_per_credit | number | null (computed) | price_usd_monthly ÷ included_credits, in USD per unit. Null when either input is null or zero — free tiers never contribute a rate. |
top_up_unit_price | number | null (computed) | Cheapest publicly disclosed top-up pack price per unit. Null unless disclosure is pricing_page or help_docs and pack prices exist. |
top_up_premium_pct | number | null (computed) | (top_up_unit_price ÷ effective_price_per_credit − 1) × 100. Positive = topping up costs more per unit than the bundle. Null unless both inputs exist. |
source_urls | string (| separated) | The vendor pages the observation was read from. |
archive_urls | string (| separated) | Wayback (or equivalent) archives of those pages at observation time — where Wayback cannot hold a page, a dated screenshot of it hosted under /benchmarks/evidence/. Every published observation carries at least one. |
price_test | string | null | Set when the vendor was testing prices at observation time: which arm of the test the stored figures come from (the Index stores the middle of the range). Null = no test seen. The arms are listed on the product page. |
discontinued | date | null | Month or date the product shut down (ISO), when it has. A shut-down product leaves the current view from that date; its earlier rows stay in the editions that observed it, carrying this flag. |
Downloads: current view JSON · CSV · Edition 1JSON · CSV · Edition 2JSON · CSV. Every export carries its view id, observation window, generation time and licence in its metadata (JSON) or response headers (CSV).
Corrections and updates
A published figure is corrected by adding a dated observation or a dated correction note — never by silently editing a record. Corrections inside an edition window are listed on that edition’s page (Edition 1, Edition 2); coverage and methodology changes are logged on the change log. To report an error, use the contact form with the product, the figure and the vendor page you read.