From cost-analyst
Analyzes costs using organization-specific custom dimensions like teams, products, features, business units, or applications defined in CloudZero CostFormation to enable business-aligned cost visibility and showback/chargeback reporting
npx claudepluginhub cloudzero/cloudzero-claude-marketplace --plugin cost-analystThis skill uses the workspace's default tool permissions.
This skill analyzes cloud costs through the lens of organization-specific custom dimensions (User:Defined:*) created via CloudZero's CostFormation, enabling business-aligned cost visibility, accurate attribution, and effective showback/chargeback.
Identifies and ranks the biggest contributors to cloud spending across services, accounts, teams, regions, or custom dimensions to help prioritize cost optimization efforts and understand spending distribution
Analyzes Azure cloud costs on FinOps hubs using KQL queries in Azure Data Explorer. Handles trends, anomalies, recommendations, deployments, and operations via structured agent framework.
Share bugs, ideas, or general feedback.
This skill analyzes cloud costs through the lens of organization-specific custom dimensions (User:Defined:*) created via CloudZero's CostFormation, enabling business-aligned cost visibility, accurate attribution, and effective showback/chargeback.
This skill builds on the understand-cloudzero-organization skill.
Before applying this procedure:
Identify all custom dimensions available:
get_available_dimensions(filter="User:Defined")
This returns organization-specific dimensions like:
Based on user request and org context, select the appropriate dimension:
# If user asks about "teams"
get_dimension_values(dimension="User:Defined:Team")
# If user asks about "products"
get_dimension_values(dimension="User:Defined:Product")
Review values to understand:
Query costs by the primary custom dimension:
get_cost_data(
group_by=["User:Defined:Team"],
cost_type="real_cost",
limit=50
)
From this:
Understand how each dimension value's costs trend over time:
get_cost_data(
group_by=["User:Defined:Team"],
granularity="daily",
cost_type="real_cost",
limit=15
)
For each dimension value:
For each custom dimension value, understand what services they use:
get_cost_data(
group_by=["User:Defined:Team", "CZ:Service"],
cost_type="real_cost",
limit=100
)
This reveals:
Understand how dimension values map to infrastructure:
By Account:
get_cost_data(
group_by=["User:Defined:Team", "CZ:Account"],
limit=100
)
By Region:
get_cost_data(
group_by=["User:Defined:Team", "CZ:Region"],
limit=100
)
By Environment (if separate from custom dimension):
get_cost_data(
group_by=["User:Defined:Team", "CZ:Tag:Environment"],
limit=100
)
Combine multiple custom dimensions for deeper insights:
get_cost_data(
group_by=["User:Defined:BusinessUnit", "User:Defined:Product", "User:Defined:Team"],
limit=100
)
This shows hierarchical cost relationships:
Identify costs not assigned to custom dimensions:
# Compare total costs to costs with custom dimension
total_cost = get_cost_data()
allocated_cost = get_cost_data(group_by=["User:Defined:Team"])
unallocated = total_cost - sum(allocated_cost)
unallocated_percentage = (unallocated / total_cost) * 100
Find what's unallocated:
# For accounts, see which have high unallocated costs
get_cost_data(
group_by=["CZ:Account", "User:Defined:Team"],
limit=100
)
# For services, see which are commonly unallocated
get_cost_data(
group_by=["CZ:Service", "User:Defined:Team"],
limit=100
)
Compare dimension values against each other:
Efficiency Comparison:
Size Comparison:
Service Mix Comparison:
Provide comprehensive custom dimension analysis:
[Dimension Name] Cost Breakdown:
| Rank | [Dimension Value] | Total Cost | % of Total | Daily Avg | Trend |
|---|---|---|---|---|---|
| 1 | [Value A] | $X,XXX | XX% | $XXX | +/-X% |
| 2 | [Value B] | $X,XXX | XX% | $XXX | +/-X% |
| 3 | [Value C] | $X,XXX | XX% | $XXX | +/-X% |
| ... | ... | ... | ... | ... | ... |
Distribution Analysis:
[Dimension Value] Trends:
| [Dimension Value] | Current | Previous Period | Change $ | Change % | Trajectory |
|---|---|---|---|---|---|
| [Value A] | $X,XXX | $X,XXX | +$XXX | +XX% | Growing ↗ |
| [Value B] | $X,XXX | $X,XXX | -$XXX | -XX% | Declining ↘ |
| [Value C] | $X,XXX | $X,XXX | ~$XX | ~X% | Stable → |
Fastest Growing: [Value] at +XX% Largest Decline: [Value] at -XX% Most Stable: [Value] with minimal variation
For each major dimension value:
[Dimension Value A] - Total: $X,XXX
| Service | Cost | % of [Value A] | % of All [Service] |
|---|---|---|---|
| Service 1 | $X,XXX | XX% | XX% |
| Service 2 | $X,XXX | XX% | XX% |
| ... | ... | ... | ... |
Key Services:
Architecture Profile:
By Account:
| [Dimension Value] | Account A | Account B | Account C | Other |
|---|---|---|---|---|
| [Value A] | $X,XXX | $X,XXX | $- | $XXX |
| [Value B] | $X,XXX | $- | $X,XXX | $XXX |
By Region:
| [Dimension Value] | us-east-1 | us-west-2 | eu-west-1 | Other |
|---|---|---|---|---|
| [Value A] | $X,XXX | $X,XXX | $- | $XXX |
| [Value B] | $- | $X,XXX | $X,XXX | $XXX |
Patterns:
Efficiency Metrics:
| [Dimension Value] | Total Cost | [Normalized Metric]* | Efficiency Score |
|---|---|---|---|
| [Value A] | $X,XXX | $X per [unit] | High / Medium / Low |
| [Value B] | $X,XXX | $X per [unit] | High / Medium / Low |
*If available: per user, per transaction, per feature, etc.
Most Efficient: [Value] achieves [outcome] at [cost] Least Efficient: [Value] spends XX% more for similar outcomes
Best Practices from Efficient [Dimension Values]:
Allocation Coverage:
Unallocated Cost Breakdown:
| Service | Unallocated Cost | % of Unallocated |
|---|---|---|
| Service A | $X,XXX | XX% |
| Service B | $X,XXX | XX% |
By Account:
Root Causes of Unallocated Costs:
Impact:
If analyzing multiple levels (e.g., Business Unit → Product → Team):
Business Unit: [BU A]
Insights:
[Dimension Value] Cost Report
For each dimension value, provide a detailed breakdown suitable for showback:
Team/Product: [Value A] Period: [Date Range] Total Cost: $X,XXX
Service Breakdown:
By Environment:
Top 5 Resources:
Compared to Last Period:
For High-Spending [Dimension Values]:
[Value A] ($X,XXX/month):
[Value B] ($X,XXX/month):
For Growing [Dimension Values]:
For Unallocated Costs:
For Showback/Chargeback:
Knowledge Sharing:
Dimension Definition Quality:
Improvement Opportunities:
For general cost analysis best practices, see ${CLAUDE_PLUGIN_ROOT}/references/best-practices.md
Goal: Understand which teams spend how much
Approach:
Goal: Attribute cloud costs to products for P&L
Approach:
Goal: Ensure non-prod environments are appropriately sized
Approach:
Goal: Provide cost transparency to business units
Approach:
Goal: Understand cost of specific features
Approach:
Combine multiple custom dimensions:
get_cost_data(
group_by=["User:Defined:BusinessUnit", "User:Defined:Product"],
limit=100
)
Creates matrix showing how products roll up to business units.
When costs are shared (e.g., shared data platform):
Compare actual to expected/budgeted:
Variance = Actual Cost - Expected Cost
Variance % = (Variance / Expected Cost) * 100
Highlight dimension values over/under budget.
For each dimension value:
Optimization Score = (
(Tag Coverage % × 0.3) +
(RI/SP Coverage % × 0.3) +
(Rightsizing Adoption % × 0.2) +
(Growth Control % × 0.2)
)
Rank dimension values by optimization maturity.
${CLAUDE_PLUGIN_ROOT}/references/best-practices.md - Universal cost analysis best practices${CLAUDE_PLUGIN_ROOT}/references/cloudzero-tools-reference.md - Complete tool documentation${CLAUDE_PLUGIN_ROOT}/references/error-handling.md - Troubleshooting and common errors${CLAUDE_PLUGIN_ROOT}/references/dimensions-reference.md - Dimension types and FQDIDs${CLAUDE_PLUGIN_ROOT}/references/cost-types-reference.md - When to use each cost type