# What is cost per feature? > Cost per feature is model spend grouped by the product surface that triggered it. Why provider data can't produce it, and how to tag calls so it can. URL: https://getculpa.com/what-is-cost-per-feature Last reviewed: 2026-08-01 ## Answer Cost per feature is model spend grouped by the product surface that caused it, rather than by model or by day. It answers which part of your product burns the budget. Culpa, a local-first LLM cost, margin, and forecast ledger, tags every call to a feature at request time and rolls the spend up, so you can rank surfaces by what they actually cost. ## Why this happens Provider billing groups by model and by date, because those are the only two things a provider knows about you. Your product doesn't work that way. One model serves six features, and one feature calls three models. The grouping you need doesn't exist in the invoice and can't be recovered from it afterwards, because the tag was never attached. That's why cost per feature is an instrumentation decision, not a reporting one. ## What this usually looks like - You can rank your models by spend but not your features, so roadmap decisions get made on intuition about cost. - A feature you assumed was cheap turns out to dominate the bill once someone finally counts it by hand. - Shipping a new surface moves the total, and you can't isolate how much of the move was that surface. - Nobody can answer whether the free tier's most-used feature is subsidised by paying customers. ## Common mistakes - Inferring the feature from the model name. Why it hurts: The mapping isn't one to one. As soon as two surfaces share a model the attribution silently becomes wrong, and it stays wrong. Do instead: Attach an explicit feature tag to every outbound call, chosen from a fixed list rather than a free string. - Tagging at the service level instead of the feature level. Why it hurts: A single service usually backs several product surfaces, so service-level tags aggregate away the distinction you needed. Do instead: Tag at the surface a user would name. If a product manager wouldn't recognise the label, it's the wrong granularity. - Letting untagged calls fall into a default bucket and ignoring it. Why it hurts: The untagged bucket grows quietly and becomes the largest line, at which point the whole breakdown stops being trustworthy. Do instead: Track untagged spend as its own number and treat any growth in it as a bug in the instrumentation. ## Self-check - List your product surfaces that call a model. Most teams find more than they expected, especially background jobs. - For each one, check whether an outbound call carries a tag naming it. If not, that surface is invisible in your cost data. - Add up spend that carries no feature tag at all, and express it as a percentage of the total. - Rank your tagged features by spend and compare the top one against your own guess before you looked. - Check whether your most expensive feature is on your cheapest plan. That's the margin question hiding underneath. ## Why the model breakdown and the feature breakdown disagree (illustrative) A product with three surfaces sharing two models. Monthly volumes are modelled, and the rates are real: GPT-5.4 at $0.0025 per 1k input and $0.015 per 1k output, GPT-5.4 mini at $0.00075 and $0.0045. Search rerank: 40M input, 2M output, all on mini = (40,000 x $0.00075) + (2,000 x $0.0045) = $30 + $9 = $39 Chat assistant: 8M input, 4M output, all on GPT-5.4 = (8,000 x $0.0025) + (4,000 x $0.015) = $20 + $60 = $80 Report drafting: 2M input, 3M output, all on GPT-5.4 = (2,000 x $0.0025) + (3,000 x $0.015) = $5 + $45 = $50 By model: GPT-5.4 = $130, mini = $39. By feature: chat $80, report drafting $50, search rerank $39 The model view says cut GPT-5.4 usage. The feature view says report drafting costs $50 to serve a surface almost nobody uses Same $169, two different conclusions. The model breakdown points at a model. The feature breakdown points at a decision you can actually make about your product. ## Cost figures Every figure carries its confidence and its source. No figure on this site is provider-reported. - $169 — modelled monthly spend across three surfaces sharing two models [calculated] Source: Sum of three feature totals using real GPT-5.4 and GPT-5.4 mini rates from the price book (effective 2026-07-02). Token volumes are modelled, arithmetic shown in the teardown. - $50 — modelled monthly cost of a low-traffic report-drafting surface [calculated] Source: (2,000 x $0.0025) + (3,000 x $0.015), GPT-5.4 rates per 1k tokens from the price book. ## FAQ Q: Can I work out cost per feature from my provider invoice? A: No. An invoice groups by model and date. It carries no reference to your product surfaces, and there's no field in the response that maps back to one. The attribution has to be attached when the call is made. Q: How granular should a feature tag be? A: Granular enough that a product manager would recognise the name, coarse enough that the list stays short. Ten to thirty tags suits most products. Hundreds of tags means you're tagging code paths, not features. Q: What do I do about background jobs and evaluation runs? A: Tag them too, as their own features. Evaluation and batch jobs are frequently the largest untagged line, and because they aren't user-facing nobody thinks to look at them until the bill forces it. ## Sources - OpenAI API pricing: https://developers.openai.com/api/docs/pricing Run the free Cost Leak Scan: https://app.getculpa.com/scan?source=pseo&slug=what-is-cost-per-feature&cluster=metric Machine-readable index of every guide: https://getculpa.com/api/pages Human-readable index of every guide: https://getculpa.com/guides Site overview: https://app.getculpa.com/llms.txt Privacy: Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.