📝 Scenario
As a FinOps practitioner responsible for allocating cloud and marketplace‑billed SaaS costs across engineering teams and business units,
I need to perform suballocations where the cost originates from one provider’s billing (e.g., Azure) while the usage data needed for accurate attribution originates from a different provider or external system (e.g., GitHub, Datadog, Snowflake, internal platform services)
in order to Ensure Focus 1.3 compliance, ensure precise cost attribution, preserve end‑to‑end lineage, and meet governance requirements that all provider and allocated data must reside in FinOps Hub tables for unified reporting and Power BI consumption.
This scenario arises frequently in enterprise environments where:
- SaaS or marketplace services are billed through Azure or another cloud provider,
- but their actual usage data is external, richer, and the only meaningful allocation driver.
FinOps Hub’s current SubAllocation pipeline only supports same‑provider usage → cost allocation.
It cannot suballocate Azure cost rows using usage drivers from a different provider, which leaves a major standards gap moving into Focus 1_3.
💎 Solution
Introduce a generic, provider‑agnostic Cross‑Provider SubAllocation capability within FinOps Hub that:
Core Functionality
- Supports suballocating any provider’s
cost_final rows using any Focus 1.3 compliant usage dataset, even if it originates from a different provider or external system.
- Works with enriched usage datasets such as:
- GitHub Actions / Storage / Repos / Seats
- Datadog metrics
- Elastic / Snowflake usage
- Internal Kubernetes or CI/CD usage
- Supports both Direct Allocation (e.g. 1:1 mapping) and Proportional Sub-Allocation using:
usage_quantity or effective_quantity
- Pre-calculated distribution ratios (e.g., a
ratio column from the usage driver)
charge_category / sku_id mappings
- Handles Temporal Fanning: Automatically fan out low-frequency cost records (e.g. Monthly Marketplace invoices) across high-frequency usage drivers (e.g. Daily GitHub telemetry).
- Outputs fully merged results into standard FinOps Hub tables:
allocation_intermediate
allocation_final
cost_final_allocated
Architectural Requirements
- Introduce a generic external usage driver table (e.g.,
external_usage_driver) to store Focus 1.3 usage data that does not originate from a cloud provider ingestion pipeline.
- Implement a new CrossProviderSubAllocation pipeline that:
- Joins provider cost rows (e.g., Azure
cost_final) against the usage driver table based on SkuId, charge_category, or provider_name.
- Performs Weighted Attribution: If a
ratio column is present in the driver, use it as a direct multiplier; otherwise, calculate pro-rata weights based on usage_quantity.
- Supports Temporal Fanning: Joins cost rows covering a billing period (e.g., a month) with all driver rows whose
usage_start falls within that window.
- Preserves lineage for:
- source provider cost row
- usage driver row(s)
- allocation rule
- No changes required to existing provider schemas.
Governance & UX Requirements
- Must fully respect the rule that all cost and allocation data must live inside Hub tables, not custom pipelines.
- Must preserve Extended Dimensions: Ensure that provider-specific metadata from the driver (e.g.,
x_Organization, x_Repository) is carried through to the cost_final_allocated view.
- Must integrate seamlessly into all existing Power BI models without the customer needing to modify visuals or measures.
- Should be documented as a first‑class FinOps Hub suballocation capability, aligned with the Focus 1.3 specification.
This unlocks the ability to accurately allocate marketplace‑billed SaaS services using the correct usage source — a capability that is essential for mature FinOps operations.
If needed I've been given permission by our org to share, How we're doing the Sub allocation and conversion to focus 1_3 for Github Detailed Usage, and metered usage, for github data that's billed to an azure subscription, it's just some rework based on the old finops foundation's focus converters project to enable sub allocations.
Sorry for the copilot generated, content but it's the best way I could figure out how to Describe Exactly What I'm doing now, and what I think hubs can do for implementing 1_3's Data Generator-Calculated Split Cost Allocation, which should be Independent from the requirements of a CSP like azure to have their data in full support of Focus 1_3.
We're currently holding SAAS Provider detailed data for stuff that's already billed through azure in side tables as to avoid introducing any breaking Changes to hubs. it's just one of those things where it's so close. I can work on it if it's something that anyone else thinks would be useful.
📋 Tasks
### Required tasks
- [ ] Create a new generic `external_usage_driver` table for Focus 1.3 compliant usage from any provider or system.
- [ ] Implement a CrossProviderSubAllocation pipeline that:
- Accepts cost rows from any provider’s `cost_final`.
- Accepts usage rows from `external_usage_driver`.
- Supports **Weighted Ratios** to leverage pre-calculated distribution drivers.
- Supports **Temporal Fanning** (Monthly Cost -> Daily Usage).
- Performs usage-based proportional allocation.
- [ ] Write allocation output into `allocation_intermediate` → `allocation_final` → `cost_final_allocated`.
- [ ] Preserve lineage linking cost rows, usage rows, and allocation rules.
- [ ] Preserve extended `x_` metadata dimensions from the usage driver to the absolute final allocated rows.
- [ ] Support Focus 1.3 fields around 1_3's 2.9. Data Generator-Calculated Split Cost Allocation specification.
- [ ] Validate compatibility with Fabric Lakehouse and all standard FinOps Hub deployment templates.
- [ ] Ensure Power BI dashboards work without requiring modifications.
- [ ] Add full documentation of cross-provider suballocation behavior, data flows, and examples.
📝 Scenario
As a FinOps practitioner responsible for allocating cloud and marketplace‑billed SaaS costs across engineering teams and business units,
I need to perform suballocations where the cost originates from one provider’s billing (e.g., Azure) while the usage data needed for accurate attribution originates from a different provider or external system (e.g., GitHub, Datadog, Snowflake, internal platform services)
in order to Ensure Focus 1.3 compliance, ensure precise cost attribution, preserve end‑to‑end lineage, and meet governance requirements that all provider and allocated data must reside in FinOps Hub tables for unified reporting and Power BI consumption.
This scenario arises frequently in enterprise environments where:
FinOps Hub’s current SubAllocation pipeline only supports same‑provider usage → cost allocation.
It cannot suballocate Azure cost rows using usage drivers from a different provider, which leaves a major standards gap moving into Focus 1_3.
💎 Solution
Introduce a generic, provider‑agnostic Cross‑Provider SubAllocation capability within FinOps Hub that:
Core Functionality
cost_finalrows using any Focus 1.3 compliant usage dataset, even if it originates from a different provider or external system.usage_quantityoreffective_quantityratiocolumn from the usage driver)charge_category/sku_idmappingsallocation_intermediateallocation_finalcost_final_allocatedArchitectural Requirements
external_usage_driver) to store Focus 1.3 usage data that does not originate from a cloud provider ingestion pipeline.cost_final) against the usage driver table based onSkuId,charge_category, orprovider_name.ratiocolumn is present in the driver, use it as a direct multiplier; otherwise, calculate pro-rata weights based onusage_quantity.usage_startfalls within that window.Governance & UX Requirements
x_Organization,x_Repository) is carried through to thecost_final_allocatedview.This unlocks the ability to accurately allocate marketplace‑billed SaaS services using the correct usage source — a capability that is essential for mature FinOps operations.
If needed I've been given permission by our org to share, How we're doing the Sub allocation and conversion to focus 1_3 for Github Detailed Usage, and metered usage, for github data that's billed to an azure subscription, it's just some rework based on the old finops foundation's focus converters project to enable sub allocations.
Sorry for the copilot generated, content but it's the best way I could figure out how to Describe Exactly What I'm doing now, and what I think hubs can do for implementing 1_3's Data Generator-Calculated Split Cost Allocation, which should be Independent from the requirements of a CSP like azure to have their data in full support of Focus 1_3.
We're currently holding SAAS Provider detailed data for stuff that's already billed through azure in side tables as to avoid introducing any breaking Changes to hubs. it's just one of those things where it's so close. I can work on it if it's something that anyone else thinks would be useful.
📋 Tasks