microsoft / microsoft/finops-toolkit

AHB eligible resources can misclassify Linux-priced VM rows as Windows candidates

Open
#2,190 2 comments 0 reactions 1 assignee View on GitHub

@FallenHoot is already working on this.

Since Jun 24, 2026.

Status: ▶️ Ready Tool: ADX / RTI Dashboard
Dominant language
PowerShell
Stars
603
Forks
248
Avg merge
7d 11h
Merged PRs (30d)
11

Description

Summary

The AHB "Eligible resources (last n days)" query can label or imply Windows licensing candidates when compute pricing behavior is Linux-rate, especially in DevTest/mixed-license scenarios.

Upstream query id: 99d44f1f-c53a-40ee-b749-8e5557ec58c7 in src/templates/finops-hub/dashboard.json.

Customer impact

  • False-positive interpretation of AHB candidates.
  • Confusing output when VM metadata appears Windows-like but contracted unit price aligns with Linux baseline.
  • Reduced trust in AHB eligibility guidance.

Repro pattern

  1. Use a subscription with DevTest or mixed VM licensing records.
  2. Open Licensing & SaaS (Preview) > Eligible resources (last n days).
  3. Observe candidates that appear Windows-eligible despite Linux-rate compute pricing behavior.

Proposed fix

Harden the query using two-path detection and price baseline validation:

  • Build Linux VM baseline from Ingestion.Prices_final_v1_2 (non-Windows VM meters).
  • Keep explicit Not Enabled path, but require compute contracted price (USD-normalized) above Linux baseline.
  • Add fallback path using Virtual Machines Licenses meter evidence when status is empty.
  • Exclude currently enabled resources.
  • Adjust wording to avoid hard Windows-label implication for ambiguous rows.

Reference implementation

Working patch in fork:

If useful, I can open a PR with the exact query change against the toolkit template.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.