Fireworks AI spend desk with team chargeback and idle GPU audit
Break down Fireworks AI spend by model, key, and team over any date range, flag untagged usage loudly, and catch dedicated capacity you pay for but never use.
Build me an internal app that our platform lead opens once a week to see where our Fireworks AI money actually goes, and to catch capacity we are paying for but not using. It has two main tabs plus two actions, and it is the single place we answer the question "who spent this and why did it go up".
The first tab is the spend breakdown, and it is the default view. At the top put a date range picker that defaults to the current month to date, with quick presets for last 7 days, last 30 days, and previous calendar month. Use the Fireworks AI Get Billing Usage operation to pull rated usage and cost for the selected window, and render three groupings the user can switch between: by model, by API key, and by custom tag. Each grouping is a sortable table showing the dimension name, total cost, share of total spend for the window, and token or request volume where the billing data provides it. Sort by cost descending by default.
Every spend line needs an owner. Keep a team ownership map in a Google Sheet and read it with the Google Sheets Get Values operation. The sheet has columns for the dimension type (model, key, or tag), the dimension value, the owning team, and the team contact. Join that map onto the billing rows so every line in every grouping displays an owner column. Let the user set the spreadsheet ID and tab range in an app settings panel, and cache the map per page load rather than re-reading it for each row.
Flag untagged spend loudly at the very top of the page, above the tables, as a full width banner. Untagged usage is the part no team ever claims, so it should be impossible to miss. The banner shows the untagged dollar amount for the selected window, what percentage of total spend it represents, and which models and API keys the untagged usage came from, so someone can go attach tags at the source. Style it as a warning when untagged spend is above a threshold the user can configure, defaulting to five percent of total spend, and as a quiet confirmation when untagged spend is zero. Spend that has a tag but no matching row in the ownership sheet is a separate and equally visible problem: show those lines as "unmapped owner" so the fix is obvious, which is adding a row to the sheet rather than tagging in Fireworks.
The second tab is the dedicated deployment audit. Use the Fireworks AI List Deployments operation to get every dedicated deployment in the account, then call Get Deployment for each one to pull its full configuration and status. Show a table with the deployment name, the model it serves, accelerator type and count, replica counts including minimum and maximum, autoscaling settings, current state, and creation or update time. This tab exists because dedicated deployments bill for GPU capacity whether or not they are serving traffic, which is a completely different cost model from serverless. Sort the deployments most likely to be wasting money to the top: deployments that are running with no recent usage attributed to them in the billing data, deployments whose minimum replica count keeps capacity permanently warm, and deployments that look oversized for the traffic they serve. Give each row a plain reason chip such as "idle, no billed usage this window" or "floor of 2 replicas always on" so the ranking explains itself. Also make it clear in the interface that a rate limit error on a dedicated deployment means that deployment is saturated rather than an account level cap, because saturated and idle are opposite decisions and this page is where someone decides which one they are looking at.
Put an "Explain this" button on every spend line in the first tab. Clicking it starts a background agent scoped to that specific line and date window. The agent pulls the usage breakdown for that dimension and window with Get Billing Usage, compares it against the preceding equivalent window to quantify the change, then checks the Fireworks AI List Models operation and the List Supervised Fine-Tuning Jobs operation to find what changed around that time, such as a newly added custom model, a model that was swapped, or fine-tuning jobs that ran and added cost. It then writes a short plain language explanation back into the app, attached to that spend line, saying what drove the increase and what the likely cause was. Show the explanation inline under the row once it is ready, with a timestamp and the window it covered, and keep past explanations so the same question does not get asked twice. While the agent is working, show that line as pending rather than blocking the rest of the page, since several explanations may be running at once. Tell the agent to write for a platform lead who wants a cause and not a chart, and to say plainly when the data does not show a clear cause instead of inventing one.
Add an "Export chargeback" button for month end. It takes the current window, computes the per team split by rolling every spend line up to its owning team from the ownership map, and writes those rows to the Google Sheet with the Append Values operation, one row per team with the period, team name, dollar amount, percentage of total, and a separate explicit row for untagged and unmapped spend so the sheet always reconciles to the full bill. After the sheet write succeeds, post the summary to our platform channel using the Slack Bot Send a Message operation, with the total for the period, the per team split, the untagged amount called out, and a short note on any idle deployments the audit tab found. Show a confirmation in the app with a link to the Slack message, and guard against someone exporting the same period twice by warning when a period has already been written.
A few rules to bake in throughout. Money is the unit of the whole app, so format every figure as currency with consistent precision and always show the window a number covers. The page should be readable cold by someone who did not build it, so label what serverless versus dedicated spend means where the distinction affects a number. Handle an empty or malformed ownership sheet gracefully by falling back to showing all spend as unmapped rather than failing the page, and make the app settings panel the one place to configure the spreadsheet, the Slack channel, and the untagged threshold.
What does this prompt do?
- Breaks down your Fireworks AI spend by model, API key, and custom tag across any date range you pick, with every line matched to the team that owns it from a spreadsheet you already keep.
- Puts untagged spend in a loud banner at the top of the page, because usage that nobody has claimed is the spend that quietly grows.
- Lists every dedicated deployment with its size and status, sorting idle or oversized ones to the top so you can see the GPU capacity you are paying for but not using.
- Gives you an Explain this button on any spend line that sends an assistant to investigate what changed that period and write a plain language answer back into the page, plus a month end button that exports the per team split to your sheet and posts the summary to Slack.
What do I need to use this?
- A Fireworks AI account with billing access
- A Google Sheet listing which model, key, or tag belongs to which team
- A Slack workspace where the app can post your month end chargeback summary
How can I customize it?
- Change the date range the page opens on, for example last 7 days instead of this month to date.
- Set your own threshold for how much untagged spend triggers the warning banner, and your own bar for what counts as an idle or oversized deployment.
- Point the month end export at a different sheet tab or Slack channel, or change how the per team split is calculated.
FAQs
Does this work if we have not tagged our Fireworks AI usage yet?
Will this change anything in our Fireworks AI account?
How does it know which team owns which spend?
What makes a deployment show up as idle or oversized?
Can our whole team open this, or just the platform lead?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Stop guessing where your Fireworks AI bill went.
Give every line of AI spend an owner, catch idle GPU capacity before it renews, and send the month end split to your team in one click.