Best use case

aws-pricing is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Teams using aws-pricing should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/aws-pricing/SKILL.md --create-dirs "https://raw.githubusercontent.com/heldernoid/agentic-build-templates/main/projects/devops-infrastructure/cloud-cost-estimator/skills/aws-pricing/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/aws-pricing/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How aws-pricing Compares

Feature / Agentaws-pricingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This skill provides specific capabilities for your AI agent. See the About section for full details.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# AWS Pricing Skill

## Overview

This skill documents the AWS pricing data structure used in cloud-cost-estimator, including service IDs, pricing conventions, region handling, and the process for keeping pricing data current. All prices are stored as static TypeScript data in `src/data/aws.ts`.

## AWS Service Catalog (v1 scope)

### EC2 Instance Pricing (us-east-1, on-demand, Linux)

| Service ID | Instance Type | vCPU | Memory | On-Demand / hr | Monthly (730 hr) |
|------------|---------------|------|--------|---------------|------------------|
| `ec2-t3.nano` | t3.nano | 2 | 0.5 GB | $0.0052 | $3.80 |
| `ec2-t3.micro` | t3.micro | 2 | 1 GB | $0.0104 | $7.59 |
| `ec2-t3.small` | t3.small | 2 | 2 GB | $0.0208 | $15.18 |
| `ec2-t3.medium` | t3.medium | 2 | 4 GB | $0.0416 | $30.37 |
| `ec2-t3.large` | t3.large | 2 | 8 GB | $0.0832 | $60.74 |
| `ec2-t3.xlarge` | t3.xlarge | 4 | 16 GB | $0.1664 | $121.47 |
| `ec2-t3.2xlarge` | t3.2xlarge | 8 | 32 GB | $0.3328 | $242.94 |
| `ec2-m5.large` | m5.large | 2 | 8 GB | $0.0960 | $70.08 |
| `ec2-m5.xlarge` | m5.xlarge | 4 | 16 GB | $0.1920 | $140.16 |
| `ec2-m5.2xlarge` | m5.2xlarge | 8 | 32 GB | $0.3840 | $280.32 |
| `ec2-c5.large` | c5.large | 2 | 4 GB | $0.0850 | $62.05 |
| `ec2-c5.xlarge` | c5.xlarge | 4 | 8 GB | $0.1700 | $124.10 |
| `ec2-r5.large` | r5.large | 2 | 16 GB | $0.1260 | $91.98 |
| `ec2-r5.xlarge` | r5.xlarge | 4 | 32 GB | $0.2520 | $183.96 |

### RDS Instance Pricing (us-east-1, on-demand, PostgreSQL)

| Service ID | Instance Type | vCPU | Memory | Monthly |
|------------|---------------|------|--------|---------|
| `rds-pg-db.t3.micro` | db.t3.micro | 2 | 1 GB | $14.40 |
| `rds-pg-db.t3.small` | db.t3.small | 2 | 2 GB | $28.27 |
| `rds-pg-db.t3.medium` | db.t3.medium | 2 | 4 GB | $49.64 |
| `rds-pg-db.t3.large` | db.t3.large | 2 | 8 GB | $99.28 |
| `rds-pg-db.m5.large` | db.m5.large | 2 | 8 GB | $124.42 |
| `rds-pg-db.m5.xlarge` | db.m5.xlarge | 4 | 16 GB | $248.85 |
| `rds-pg-db.r5.large` | db.r5.large | 2 | 16 GB | $152.57 |

Note: RDS prices use `billingModel: 'monthly'` since the published price is a per-instance monthly rate.

### S3 Storage Pricing (us-east-1)

| Service ID | Tier | Price / GB-month |
|------------|------|-----------------|
| `s3-standard` | S3 Standard | $0.023 |
| `s3-standard-ia` | S3 Standard-IA | $0.0125 |
| `s3-glacier-instant` | S3 Glacier Instant | $0.004 |
| `s3-glacier-flexible` | S3 Glacier Flexible | $0.0036 |

S3 requests and data transfer are not included in v1 scope.

### Load Balancer Pricing (us-east-1)

| Service ID | Type | Monthly base (1 LB) |
|------------|------|---------------------|
| `alb` | Application Load Balancer | $5.84 |
| `nlb` | Network Load Balancer | $5.84 |
| `clb` | Classic Load Balancer | $7.30 |

LCU charges are not modeled in v1.

### Lambda Pricing (us-east-1)

| Service ID | Unit | Price |
|------------|------|-------|
| `lambda-requests` | per 1M requests | $0.20 |
| `lambda-duration` | per GB-second | $0.0000166667 |

### CloudFront (CDN)

| Service ID | Unit | Price |
|------------|------|-------|
| `cloudfront-data` | per GB transferred | $0.0085 |
| `cloudfront-requests-http` | per 10K HTTP requests | $0.0075 |
| `cloudfront-requests-https` | per 10K HTTPS requests | $0.0100 |

## Pricing Data File Format

```typescript
// src/data/aws.ts
import type { ServicePrice } from './types';

export const DATA_DATE = '2026-03-01';

export const awsPrices: ServicePrice[] = [
  {
    id: 'ec2-t3.medium',
    provider: 'aws',
    name: 'EC2 t3.medium',
    category: 'compute',
    unit: 'instance',
    pricePerUnit: 416,         // integer cents: $0.0416/hr stored as 4.16 cents
    billingModel: 'hourly',
    specs: '2 vCPU, 4 GB RAM',
    region: 'us-east-1',
    dataDate: DATA_DATE,
  },
  {
    id: 'rds-pg-db.t3.medium',
    provider: 'aws',
    name: 'RDS PostgreSQL db.t3.medium',
    category: 'database',
    unit: 'instance',
    pricePerUnit: 4964,        // $49.64/mo stored as 4964 cents
    billingModel: 'monthly',
    specs: '2 vCPU, 4 GB RAM',
    region: 'us-east-1',
    dataDate: DATA_DATE,
  },
  {
    id: 's3-standard',
    provider: 'aws',
    name: 'S3 Standard Storage',
    category: 'storage',
    unit: 'GB',
    pricePerUnit: 2.3,         // $0.023/GB -> 2.3 cents (fractional allowed)
    billingModel: 'per-gb-month',
    region: 'us-east-1',
    dataDate: DATA_DATE,
  },
  // ... more services
];
```

## billingModel to Monthly Price Conversion

The `computeLineItem` function in `src/lib/calculator.ts` normalises all billing models to a monthly cost:

| billingModel | Monthly cost formula |
|--------------|----------------------|
| `hourly` | `pricePerUnit * 730 * quantity` |
| `monthly` | `pricePerUnit * quantity` |
| `per-gb` | `pricePerUnit * quantity` |
| `per-gb-month` | `pricePerUnit * quantity` |
| `per-request` | `pricePerUnit * quantity` (quantity = millions) |

All results are rounded to the nearest cent (`Math.round`).

## Region Pricing Notes

- The static data files bundle a single region's prices per service.
- In v1, pricing is for the default region only (us-east-1 for AWS).
- Regional multipliers are not applied in v1.
- Future work: per-region price files selectable at runtime via settings.

## Updating Pricing Data

1. Check the AWS public pricing page: https://aws.amazon.com/pricing/
2. Use the AWS Price List API (bulk pricing JSON) or the pricing calculator exports.
3. Update the relevant entries in `src/data/aws.ts`.
4. Update `DATA_DATE` to today's date.
5. Run `pnpm build` to bundle.

AWS Bulk Pricing JSON API endpoint (no auth required):
```
https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json
```

This file is very large (~200 MB). Use `jq` to extract the needed entries:
```bash
curl -s "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json" \
  | jq '.products | to_entries[] | select(.value.attributes.instanceType == "t3.medium") | .value'
```

## Reserved Instance Pricing

1-year no-upfront reserved pricing provides significant savings. If `showReserved` is enabled in settings, these prices are shown in the service catalog alongside on-demand.

Approximate 1-year reserved savings (us-east-1):

| Instance | On-demand/mo | 1-yr reserved/mo | Savings |
|----------|-------------|-------------------|---------|
| t3.medium | $30.37 | $18.98 | 38% |
| t3.large | $60.74 | $37.96 | 38% |
| m5.large | $70.08 | $43.80 | 37% |
| r5.large | $91.98 | $57.74 | 37% |

Store reserved prices as a separate `reservedPricePerUnit` field (optional) on `ServicePrice`.

## Pricing Accuracy Statement

All prices in this app are approximate. Authoritative pricing comes from:
- AWS: https://aws.amazon.com/pricing/
- GCP: https://cloud.google.com/pricing
- Azure: https://azure.microsoft.com/pricing/calculator/

Prices vary by:
- Region (us-east-1 is typically cheapest for AWS)
- Billing commitment (on-demand vs reserved vs savings plans)
- Volume discounts and enterprise agreements
- Additional charges: data transfer, API requests, monitoring, support

The disclaimer shown in the app reads:
> Prices are approximate and based on public list pricing as of {DATA_DATE}. Actual costs vary by region, usage patterns, and discounts. Always verify with the provider's pricing calculator.

## Common Price Gotchas

**EC2 pricing is per instance-hour, not per vCPU-hour.** Store the full instance price, not per-vCPU.

**RDS pricing is roughly 2x equivalent EC2** because it includes managed service overhead (automated backups, patching, HA standby).

**S3 pricing tiers apply at scale.** The $0.023/GB rate applies to the first 50 TB. Tiers at 50 TB+ are lower. For estimates under 50 TB, use the flat rate.

**EBS storage is separate from EC2.** EC2 prices above are for the compute only. EBS (block storage) is an additional $0.08-$0.10/GB/month and is not included in the instance price.

**Data transfer costs are not modeled** in v1. Egress from AWS can be significant at scale ($0.09/GB for the first 10 TB/month from us-east-1).

Related Skills

Skill: Uptime Monitoring

7
from heldernoid/agentic-build-templates

## Overview

Skill: Status Page

7
from heldernoid/agentic-build-templates

## Overview

Skill: unit-conversion

7
from heldernoid/agentic-build-templates

## Overview

Skill: recipe-scaler

7
from heldernoid/agentic-build-templates

## Overview

reading-list

7
from heldernoid/agentic-build-templates

Operate the reading-list API to save, manage, tag, search, and export articles.

email-digest

7
from heldernoid/agentic-build-templates

Configure, test, and troubleshoot the reading-list daily email digest delivered via nodemailer.

websocket-realtime

7
from heldernoid/agentic-build-templates

Use the WebSocket connection in poll-builder to receive live vote updates. Use when you need to stream real-time poll results, monitor a poll for new votes, or build a live dashboard. Triggers include "live results", "real-time updates", "stream votes", "watch poll", or "WebSocket".

poll-builder

7
from heldernoid/agentic-build-templates

Self-hosted poll creation tool with real-time results. Use when you need to create a poll, check vote counts, close a poll, export results, or get the shareable link for a poll. Triggers include "create poll", "vote", "poll results", "survey", "collect votes", "share poll", or any task involving polling or voting.

Skill: personal-finance

7
from heldernoid/agentic-build-templates

## Overview

Skill: csv-import

7
from heldernoid/agentic-build-templates

## Overview

Skill: Syntax Highlighting

7
from heldernoid/agentic-build-templates

## Purpose

Skill: Pastebin Core

7
from heldernoid/agentic-build-templates

## Purpose