Skip to main content
When part of your cloud bill is untagged, for example a shared API gateway used by several teams, tags alone can’t attribute it. Without , those costs land in an “other” bucket, and chargeback or showback becomes impossible. This guide splits shared API costs proportionally. You import an external usage metric (API call counts per team) into Costory, then build a reusable that attributes the right share of cost to each team going forward.

Prerequisites

  • You have identified the total cost of this API in your billing data.
  • You have a usage metric from your internal monitoring tool (e.g., API call counts per team) that can serve as an allocation key to split costs across callers.
In this example, you will use an AWS S3 Parquet file that looks like: For each team and region, you know how many API calls were made.
This use case uses an AWS S3 Parquet file, but you can use other sources:
  • Datadog
  • Google Sheets (if you’re using Zapier to automate the ingestion)

What you get: per-team cost attribution

  • A per-team cost view based on actual API usage, ready for chargeback or showback.
  • A reusable that automatically allocates the shared cost going forward, with no manual updates needed.

How it works

The overall flow is: export a usage metric from your monitoring system, import it into Costory, preview the proportional split, then lock it in with a Virtual Dimension.

How to split shared API costs step by step

1

Create a bucket and share access with Costory

2

Schedule the metric export

Create a scheduled job (cron, Airflow, GitHub Actions, or any orchestrator) that writes the metric file to the bucket every day. The job should:
  • Output format: A Parquet file with one row per combination of dimensions per day. At minimum, include a date column, one or more dimension columns (e.g., team, region), and a numeric value column (e.g., api_call_count).
  • S3 prefix: Write files under a consistent prefix, for example s3://<bucket>/api_cost_allocations/. Costory scans this prefix for new files.
  • Overwrite strategy: You can safely write a new file each day. Costory applies an incremental overwrite strategy: for a given day, the last data received wins, and existing data for other days is preserved.
You can force a re-import on demand from the Metrics DataSource page. Otherwise, files are imported automatically every day at 06:00 UTC.
3

Create the metric in Costory

The metric will take a few minutes to be ingested. Once ready, you can see it and its values in Costory.
Metrics Datasources page with the API Usage metric listed and marked Active
4

Preview the reallocation

Use Explorer to preview how the reallocated costs would look before committing to a virtual dimension.The idea is to build a formula that computes each team’s proportional share of the total API cost:The formula a / b * d gives you: (team’s calls / total calls) * total cost = team’s share.
Explorer with four rows building a proportional cost reallocation formula
5

Create the Virtual Dimension

Create a virtual dimension that automatically allocates the shared cost going forward.
  • Add a new rule for those API costs:
    • Rely on reallocation based on usage metrics
    • Use the metric you just imported
    • Choose an allocation strategy:
      • Identity mapping: The new label value is the team name
      • Regex mapping: The API name contains the team name (extract it with a regex)
      • Manual mapping: The API name has no relation to the team name; map each name manually
  • Save the virtual dimension
Watch how a Virtual Dimension rule is configured with dynamic allocation based on the imported usage metric:
Walkthrough of creating a Virtual Dimension with dynamic allocation based on usage metrics

Next steps: automate and share

Prefer to skip the UI? The Costory MCP can draft, preview, and publish this reallocation virtual dimension from chat. Try “draft a virtual dimension that splits my API gateway cost across teams using the API Usage metric, then show me the preview.”
  • Set up a weekly Slack report to share the reallocated costs with each team automatically.
  • Explore the results in Explorer to validate cost attribution per team.
  • Build on this allocation to create a budget tracking workflow per team.
Last modified on June 30, 2026