aws-billing-and-cost-management
Analyze AWS costs, find savings, manage budgets, evaluate Savings Plans and Reserved Instances, right-size EC2/Lambda/RDS/EBS with Compute Optimizer, look up service pricing, query CUR with Athena, detect cost anomalies, scope costs to billing views, and monitor Free Tier usage. Triggers on: AWS bill, cost analysis, reduce spend, savings plan, reserved instance, right-size, budget alert, cost optimization, pricing, free tier, cost anomaly, CUR, cost audit, billing view, billing view ARN.
What this skill does
# Billing and Cost Management
## Overview
Analyze, optimize, and manage AWS costs. This skill encodes domain expertise from AWS's cost management products — gotchas, correct API usage patterns, and optimization workflows that models frequently get wrong.
## Usage
Use this skill when:
- Analyzing AWS spending, cost trends, or cost breakdowns
- Setting up or managing budget alerts
- Evaluating Savings Plans or Reserved Instance purchases
- Right-sizing EC2, Lambda, RDS, or EBS resources
- Looking up AWS service pricing
- Running cost audits or investigating cost spikes
- Querying CUR data with Athena
- Scoping cost analysis to a specific billing view
- Checking Free Tier usage
## Core Concepts
- **Cost Explorer** — query cost/usage data by service, account, tag, or time range
- **Budgets** — set spending thresholds with alerts; supports billing view scoping
- **Billing Views** — scope cost data to a subset of billing (custom view, billing group, or primary)
- **Compute Optimizer** — right-sizing recommendations for EC2, Lambda, EBS, RDS
- **Cost Optimization Hub** — aggregated savings recommendations across services
- **Savings Plans / Reserved Instances** — commitment-based discounts
- **CUR 2.0** — detailed line-item billing data queryable via Athena
**Recommended setup:** Use the AWS MCP server for sandboxed execution, audit logging, and enterprise controls. See: https://docs.aws.amazon.com/aws-mcp/
**Without AWS MCP:** All commands use standard AWS CLI syntax and work with any agent that has CLI access.
## Critical Rule: Always Check the Current Date
**Before making ANY Cost Explorer, Budgets, or Savings Plans API call, you MUST determine the current date.** Use a tool to get the current date and time — do NOT assume or guess the year. LLMs frequently default to dates from their training data instead of the actual current date, producing analyses of stale data that appear correct but are completely wrong.
## Critical Rule: Deterministic Calculations
**You MUST NEVER perform numerical calculations (sums, averages, percentages, comparisons, counts, min/max) by reasoning in your response.** LLM arithmetic is unreliable and produces wrong answers on cost data.
**You MUST ALWAYS use a script or calculator tool** for any math on data returned from API calls. Write a Python script that performs the calculation and prints the result. If the AWS MCP server's `run_script` tool is available, use it. Otherwise, run the script locally.
Read `references/deterministic-calculations.md` for patterns and examples.
## Decision Guide
| Question | Tool | Reference |
|----------|------|-----------|
| What am I spending? Where are costs going up? | Cost Explorer | `references/cost-explorer.md` |
| How much does a service cost? | Price List API | `references/pricing-lookup.md` |
| Where can I save money? (start here) | Cost Optimization Hub | `references/cost-optimization-hub.md` |
| Should I buy Savings Plans? | CE SP Recommendations | `references/savings-plans.md` |
| Should I buy Reserved Instances? | CE RI Recommendations | `references/reserved-instances.md` |
| Deep-dive on a specific EC2/Lambda/EBS/RDS rec? | Compute Optimizer | `references/ec2-rightsizing.md`, `references/lambda-optimization.md`, `references/rds-optimization.md`, `references/ebs-optimization.md` |
| How do I set up budget alerts? | Budgets | `references/budgets.md` |
| What's causing a cost spike? | Cost Anomaly Detection | `references/cost-explorer.md` |
| Am I within Free Tier? | Free Tier API | `references/free-tier.md` |
| How do I reduce my bill? | Cost Audit workflow | `references/cost-audit.md` |
| How do I query detailed billing data? | CUR 2.0 + Athena | `references/cur-athena.md` |
| How do I optimize specific services? | Per-service patterns | `references/service-optimization.md` |
| How do I scope costs to a billing view? | Billing Views | See [Billing Views](#billing-views) below |
## Common Tasks
### Analyze costs by service
```bash
aws ce get-cost-and-usage \
--time-period Start=2026-03-01,End=2026-04-01 \
--granularity MONTHLY \
--metrics UnblendedCost \
--group-by Type=DIMENSION,Key=SERVICE
```
Default to `UnblendedCost`. Exclude Credits/Refunds with `--filter '{"Not":{"Dimensions":{"Key":"RECORD_TYPE","Values":["Credit","Refund"]}}}'`. End date is exclusive.
### Run a cost audit
Read `references/cost-audit.md` for the full 7-step workflow: top cost drivers → month-over-month comparison → optimization recommendations → idle resources → commitment coverage → per-service quick wins → report.
### Get right-sizing recommendations
Compute Optimizer requires opt-in first: `aws compute-optimizer update-enrollment-status --status Active`. Then read `references/ec2-rightsizing.md` for EC2 or the relevant resource-specific reference.
### Look up service pricing
Read `references/pricing-lookup.md` for service codes and attribute filters. Common trap: Price List API service codes differ from Cost Explorer service names.
## Billing Views
A billing view scopes cost and usage data to a specific slice of an account's billing (e.g., a billing group, custom view, or the default primary view). When the user wants to analyze costs through a particular billing view, add `--billing-view-arn` to supported API calls.
### Discover available billing views
```bash
aws billing list-billing-views \
--billing-view-types PRIMARY CUSTOM BILLING_GROUP
```
Requires `billing:ListBillingViews` permission.
### Use a billing view with Cost Explorer
```bash
aws ce get-cost-and-usage \
--time-period Start=2026-03-01,End=2026-04-01 \
--granularity MONTHLY \
--metrics UnblendedCost \
--group-by Type=DIMENSION,Key=SERVICE \
--billing-view-arn arn:aws:billing::ACCOUNT_ID:billingview/BILLING_VIEW_ID
```
### Create a budget scoped to a billing view
In the `--budget` JSON, include the `BillingViewArn` field:
```bash
aws budgets create-budget --account-id ACCOUNT_ID \
--budget '{
"BudgetName": "TeamX-Monthly",
"BudgetLimit": {"Amount": "1000", "Unit": "USD"},
"TimeUnit": "MONTHLY",
"BudgetType": "COST",
"BillingViewArn": "arn:aws:billing::ACCOUNT_ID:billingview/BILLING_VIEW_ID"
}'
```
### API support for `--billing-view-arn`
| Supports `--billing-view-arn` | Does NOT support it |
|-------------------------------|---------------------|
| `ce get-cost-and-usage` | `ce get-reservation-coverage` |
| `ce get-cost-and-usage-with-resources` | `ce get-reservation-utilization` |
| `ce get-cost-forecast` | `ce get-savings-plans-coverage` |
| `ce get-usage-forecast` | `ce get-savings-plans-utilization` |
| `ce get-dimension-values` | |
| `ce get-tags` | |
| `ce get-cost-comparison-drivers` | |
| `budgets create-budget` (in budget JSON) | |
## Troubleshooting
| Error | Cause | Fix |
|-------|-------|-----|
| `ValidationException` on Cost Explorer | Wrong dimension key (e.g., `CHARGE_TYPE` instead of `RECORD_TYPE`) | Use `RECORD_TYPE` for charge type filtering |
| Empty results with filter | Filter value doesn't match exactly | Call `GetDimensionValues` first to get valid values |
| `AccessDeniedException` on hourly data | Hourly granularity not enabled | Enable in Cost Explorer preferences |
| `Account not registered` on Compute Optimizer | Not opted in | Run `update-enrollment-status --status Active` |
| Budgets API fails outside us-east-1 | Budgets requires us-east-1 | Set `--region us-east-1` |
| Cost Explorer `Total` empty with GroupBy | By design — totals excluded when grouping | Make separate call without GroupBy, or sum grouped results using a script |
| `AccessDeniedException` on `list-billing-views` | Missing permission | User needs `billing:ListBillingViews` permissions |
| `ValidationException` with `--billing-view-arn` | API doesn't support billing views, or malformed ARN | Check the API support table above; ARN format is `arn:aws:billing::ACCOUNT_ID:billingview/VIEW_ID` |
| Budget shows `UNHEALTHY` health status | Billing view access revoked or Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.