Skip to content
infrastructure-cost-estimation logo

Infrastructure Cost Estimation Methodology

infrastructure-cost-estimation

Help you discover how much you spend on AWS/GCP/Azure. This rulebook guides practitioners through proper cloud cost calculations, systematic resource discovery (via IaC analysis and live environment enumeration), authoritative pricing research and analysis/estimation.

SKILL.md

Full skill instructions

Infrastructure Cost Estimation Methodology

CRITICAL REQUIREMENT: EXCLUDE ALL CREDITS BY DEFAULT

MANDATORY: Always exclude credits, promotional offers, and discounts to get TRUE infrastructure cost. Report:

  1. Gross Cost (without credits) - PRIMARY NUMBER
  2. Net Cost (with credits) - comparison only

Credits are temporary and mask real costs. Always plan for post-credit expenses.

Core Principles

  1. Native Cost Tools First: Use cloud provider billing tools as primary source
  2. Credits Excluded: Always exclude credits unless analyzing discount impact
  3. Comprehensive Discovery: Identify ALL infrastructure components
  4. Current Pricing: Research real-time standard pricing only
  5. Python Calculations: Use Python for ALL numeric operations

Phase 1: Native Cost Estimation

Time Period Requirements

CRITICAL: Always use the most recent complete months for analysis:

  • Primary Analysis: Last 3 complete months (most recent data)
  • Trend Analysis: Last 6 complete months (for patterns)
  • Never use data older than 6 months unless specifically requested
  • Always specify actual date ranges in your analysis
  • Determine current date first, then calculate recent complete months

Credit Exclusion Steps - CLI Commands

CRITICAL: Use these exact CLI commands to exclude credits and get true infrastructure costs:

AWS CLI Credit Exclusion
# Exclude all credits and promotional charges
aws ce get-cost-and-usage \
  --time-period Start=YYYY-MM-01,End=YYYY-MM-01 \
  --granularity MONTHLY \
  --metrics "BlendedCost" \
  --filter '{
    "Not": {
      "Dimensions": {
        "Key": "RECORD_TYPE",
        "Values": ["Credit", "Refund", "SavingsPlanNegation", "DiscountedUsage"]
      }
    }
  }' \
  --group-by Type=DIMENSION,Key=SERVICE

Azure CLI Credit Exclusion

Create query file exclude-credits.json:

{
  "type": "Usage",
  "timeframe": "Custom",
  "timePeriod": {
    "from": "YYYY-MM-01T00:00:00.000Z",
    "to": "YYYY-MM-01T00:00:00.000Z"
  },
  "dataset": {
    "granularity": "Monthly",
    "filter": {
      "not": {
        "dimensions": {
          "name": "ChargeType",
          "operator": "In",
          "values": ["Credit", "Refund", "RoundingAdjustment"]
        }
      }
    },
    "aggregation": {
      "totalCost": {
        "name": "PreTaxCost",
        "function": "Sum"
      }
    },
    "grouping": [{"type": "Dimension", "name": "ServiceName"}]
  }
}

Execute with:

az rest --method POST \
  --url "https://management.azure.com/​subscriptions/​$(az account show --query id -o tsv)/​providers/​Microsoft.CostManagement/​query?api-version=2023-11-01" \
  --body @exclude-credits.json

Google Cloud Credit Exclusion

Note: Google Cloud requires BigQuery queries. No direct CLI credit filtering available.

# First, execute BigQuery to exclude promotional credits
bq query --use_legacy_sql=false '
SELECT 
  invoice.month,
  service.description,
  SUM(cost) as gross_cost_no_credits
FROM `PROJECT-ID.DATASET.gcp_billing_export_v1_BILLING-ACCOUNT-ID`
WHERE invoice.month IN ("YYYYMM", "YYYYMM", "YYYYMM")
GROUP BY invoice.month, service.description
ORDER BY gross_cost_no_credits DESC;'

Key Filter Parameters by Provider:

  • AWS: Exclude RECORD_TYPE values: "Credit", "Refund", "SavingsPlanNegation", "DiscountedUsage"
  • Azure: Exclude ChargeType values: "Credit", "Refund", "RoundingAdjustment"
  • Google Cloud: Use BigQuery on billing export tables, no promotional credits included

Native Tools

AWS: Cost Explorer, Pricing Calculator, Budgets, Cost & Usage Reports, Billing Dashboard Azure: Cost Management + Billing, Pricing Calculator, Advisor, Resource Graph
Google Cloud: Cloud Billing, Pricing Calculator, Asset Inventory, Recommender

Phase 2: Resource Discovery

Methods: IaC analysis, live environment queries, API enumeration Categories: Compute, storage, networking, platform services, security, monitoring, development, data services Coverage: All environments, regions, scaling policies, shared resources

Phase 3: Pricing Research

Requirements:

  • Official provider pricing pages only
  • Region-specific standard rates
  • No promotional or discount pricing
  • Current pay-as-you-go rates

Phase 4: Python Calculations

Credit Analysis Template

def analyze_credit_impact(billing_data, analysis_period="recent_months"):
    """
    Analyze credit impact for recent complete months
    Calculate recent months dynamically based on current date
    """
    from datetime import datetime, timedelta
    
    # Determine current date and calculate recent complete months
    current_date = datetime.now()
    current_month = current_date.month
    current_year = current_date.year
    
    # Calculate the last 3 complete months
    recent_months = []
    for i in range(3):
        month_offset = i + 1
        if current_month - month_offset <= 0:
            month = 12 + (current_month - month_offset)
            year = current_year - 1
        else:
            month = current_month - month_offset
            year = current_year
        recent_months.append((year, month))
    
    recent_months.reverse()  # Put in chronological order
    
    # Filter billing data to recent complete months
    recent_billing_data = [
        charge for charge in billing_data 
        if (charge['date'].year, charge['date'].month) in recent_months
    ]
    
    analysis = {
        'analysis_period': f"Recent 3 complete months: {recent_months[0][1]}/​{recent_months[0][0]} - {recent_months[2][1]}/​{recent_months[2][0]}",
        'gross_monthly_cost': sum(
            charge['amount'] for charge in recent_billing_data 
            if charge['type'] in ['Usage', 'Tax', 'Fee']
        ) / 3,  # Average over 3 months
        'net_monthly_cost': sum(charge['amount'] for charge in recent_billing_data) / 3,
        'total_credits_applied': 0,
        'credit_sustainability': 'TEMPORARY - Assume all credits expire'
    }
    
    analysis['total_credits_applied'] = (
        analysis['gross_monthly_cost'] - analysis['net_monthly_cost']
    )
    
    return analysis

Basic Cost Calculation

def calculate_monthly_costs(resources, pricing_data):
    HOURS_PER_MONTH = 730
    total_cost = 0
    cost_breakdown = {}
    
    for service_name, service_config in resources.items():
        service_cost = 0
        
        # Fixed costs (standard hourly rates)
        if 'instances' in service_config:
            hourly_rate = pricing_data[service_name]['standard_hourly_rate']
            instance_count = service_config['instances']
            service_cost += hourly_rate * instance_count * HOURS_PER_MONTH
        
        # Usage-based costs (standard rates)
        if 'usage_metrics' in service_config:
            for metric, usage in service_config['usage_metrics'].items():
                unit_cost = pricing_data[service_name]['standard_usage'][metric]
                service_cost += usage * unit_cost
        
        cost_breakdown[service_name] = round(service_cost, 2)
        total_cost += service_cost
    
    return {
        'total_monthly_cost': round(total_cost, 2),
        'service_breakdown': cost_breakdown
    }

Implementation Checklist

Credit Exclusion (MANDATORY FIRST)

  • Excluded ALL credits from native tool analysis
  • Calculated gross monthly cost (true infrastructure cost)
  • Assessed credit expiration timeline

Analysis Steps

  • Used native cost tools or CLI commands with credits excluded for recent 3 complete months
  • Applied correct CLI filters for each provider (AWS: RECORD_TYPE, Azure: ChargeType, GCP: BigQuery)
  • Specified exact date range in analysis
  • Discovered all resources across all environments
  • Researched current standard pricing rates
  • Calculated costs using Python with standard rates
  • Validated native vs calculated costs using gross amounts from recent months

Output Format

1. Credit Impact Analysis

  • Analysis Period: [Specify actual 3 months analyzed]
  • Gross Monthly Cost (without credits): $X,XXX - PRIMARY NUMBER
  • Net Monthly Cost (with credits): $X,XXX
  • Credits Applied: $XXX/​month
  • Credit Expiration Risk: Timeline assessment

2. True Infrastructure Costs

  • Total Monthly Cost: Min/​avg/​max scenarios at standard pricing
  • Service Breakdown: Cost per service without discounts
  • Environment Breakdown: Cost per environment at standard rates

3. Validation & Assumptions

  • Native gross cost vs calculated cost comparison
  • Key assumptions and methodology
  • Python scripts for reproducibility

Critical Reminders

  • ALWAYS EXCLUDE CREDITS FIRST - Use specific CLI commands for each provider
  • USE RECENT 3 COMPLETE MONTHS - Calculate current date, then use last 3 complete months
  • Correct CLI Filters: AWS (RECORD_TYPE), Azure (ChargeType + REST API), Google Cloud (BigQuery only)
  • Use native tools - Most accurate real-time data
  • Standard pricing only - No promotional rates
  • Python for all math - Prevent calculation errors
  • Include ALL resources - Incomplete discovery causes surprises
  • Document assumptions - Enable validation and updates

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View