Skip to content

Costs commitment discount eligibility columns are always empty but documented as availableΒ #2287

Description

πŸ› Problem

x_CommitmentDiscountSpendEligibility and x_CommitmentDiscountUsageEligibility are declared in the FOCUS 1.2 Costs schema, projected by Costs_v1_2(), surfaced as Power BI fields, and documented as charge-level values β€” but the transform hard-codes both to an empty string. Anyone who follows the documentation gets blanks and no error.

// Costs_transform_v1_2, IngestionSetup_v1_2.kql
x_CommitmentDiscountSpendEligibility = '',  // TODO: Add x_CommitmentDiscountSpendEligibility for Costs
x_CommitmentDiscountUsageEligibility = '',  // TODO: Add x_CommitmentDiscountUsageEligibility for Costs

In FOCUS 1.0 the Costs dataset doesn't define the columns at all β€” they exist only on the Prices side. So the two versions disagree as well.

Where the columns are advertised

Component Behavior Source
Costs transform, FOCUS 1.2 Sets both to '' IngestionSetup_v1_2.kql#L796-L797
Costs table schema, FOCUS 1.2 Declares both columns IngestionSetup_v1_2.kql#L992-L993
Costs_v1_2() query function Projects both columns HubSetup_v1_2.kql#L277-L278
Costs transform, FOCUS 1.0 Columns absent entirely IngestionSetup_v1_0.kql
Data dictionary "…are eligible for this charge. Derived from the Prices dataset." data-dictionary.md#L84
Hubs data model Listed under Costs managed dataset data-model.md#L305-L306
Power BI KQL dataset Columns bound to Costs_v1_2 Costs.tmdl#L1724
Copilot Studio agent knowledge Documented for Costs_v1_2() schema-reference.md#L126-L127

The two agent-facing surfaces are the most likely to hit this: the Copilot Studio knowledge file tells the agent both columns are available on Costs_v1_2(), and the Power BI field list shows them alongside populated columns.

πŸ‘£ Repro steps

  1. Deploy a FinOps hub and ingest cost data.

  2. Run the following against the hub database:

    Costs_v1_2()
    | summarize Rows = count() by x_CommitmentDiscountSpendEligibility, x_CommitmentDiscountUsageEligibility
  3. A single row is returned, with both values empty.

  4. Run the same summarize against Prices_v1_2() for comparison β€” it returns Eligible / Not Eligible.

πŸ€” Expected

Either behavior would be consistent; today's is not:

  • Populate them. Look the meter's eligibility up per cost row, the same way the Prices side resolves it. This is already tracked as an unchecked item in [Hubs] Data ingestion transform changesΒ #1111 under Costs (FOCUS cost): "Feature: Add CommitmentDiscountSpend/UsageEligibility".
  • Or stop advertising them. Drop the columns from the Costs schema, Costs_v1_2(), the Power BI dataset, the data dictionary, the data model, and the agent knowledge file, so nothing offers a column that is always blank.

If populating them is the plan but not imminent, an interim note in the data dictionary and the agent knowledge file would stop consumers building on an empty column.

ℹ️ Additional context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions