ops-revenue
OPS ► REVENUE & COSTS
Runtime Context
Before executing, load available context:
-
Preferences: Read
${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.jsontimezone— display all timestamps correctly
-
Daemon health: Read
${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json- If
action_neededis not null → surface it before the cost report
- If
-
Secrets: AWS Cost Explorer requires credentials.
Secret Resolution
- AWS: check
$AWS_PROFILE/$AWS_ACCESS_KEY_ID→doppler secrets get AWS_ACCESS_KEY_ID --plain→ vault query cmd from prefs - If no credentials available, report "AWS costs unavailable — credentials not configured" and show only the revenue pipeline from registry
- AWS: check
CLI/API Reference
aws CLI (Cost Explorer)
| Command | Usage | Output |
|---|---|---|
aws ce get-cost-and-usage --time-period Start=<YYYY-MM-DD>,End=<YYYY-MM-DD> --granularity MONTHLY --metrics "UnblendedCost" --group-by "Type=DIMENSION,Key=SERVICE" --output json |
Cost by service | Cost JSON |
aws ce get-cost-and-usage --time-period Start=<YYYY-MM-DD>,End=<YYYY-MM-DD> --granularity MONTHLY --metrics "UnblendedCost" --output json |
Total cost | Cost JSON |
aws ce get-cost-forecast --time-period Start=<YYYY-MM-DD>,End=<YYYY-MM-DD> --metric "UNBLENDED_COST" --granularity MONTHLY --output json |
End-of-month forecast | Forecast JSON |
aws ce list-savings-plans-purchase-recommendation --output json |
Savings plan recommendations | JSON |
Phase 1 — Gather financial data in parallel
AWS costs (current month)
aws ce get-cost-and-usage \
--time-period "Start=$(date +%Y-%m-01),End=$(date +%Y-%m-%d)" \
--granularity MONTHLY \
--metrics "UnblendedCost" \
--group-by "Type=DIMENSION,Key=SERVICE" \
--output json 2>/dev/null
AWS costs (last 3 months trend)
aws ce get-cost-and-usage \
--time-period "Start=$(date -v-3m +%Y-%m-01 2>/dev/null || date -d '3 months ago' +%Y-%m-01),End=$(date +%Y-%m-%d)" \
--granularity MONTHLY \
--metrics "UnblendedCost" \
--output json 2>/dev/null
AWS credits remaining
aws ce list-savings-plans-purchase-recommendation --output json 2>/dev/null || echo '{}'
aws ce get-credits --output json 2>/dev/null || echo "credits API unavailable"
AWS cost forecast (end of month)
aws ce get-cost-forecast \
--time-period "Start=$(date +%Y-%m-%d),End=$(date +%Y-%m-28)" \
--metric "UNBLENDED_COST" \
--granularity MONTHLY \
--output json 2>/dev/null
Project registry (revenue stage)
cat "${CLAUDE_PLUGIN_ROOT}/scripts/registry.json" 2>/dev/null | jq '[.projects[] | {alias, name, stage: (.revenue_stage // .revenue.stage // "pre-revenue"), mrr: (.mrr // 0), source: (.source // "git"), type: (.type // "repo")}]'
External project revenue (Shopify, custom SaaS)
${CLAUDE_PLUGIN_ROOT}/bin/ops-external 2>/dev/null || echo '[]'
For Shopify projects showing status: "healthy", pull GMV via Shopify Admin API:
# For each Shopify project in registry with valid credentials:
STORE_URL="[from project.shopify.store_url]"
TOKEN="[from env var named in project.shopify.credential_key]"
curl -s -H "X-Shopify-Access-Token: $TOKEN" \
"https://$STORE_URL/admin/api/2024-10/orders.json?status=any&created_at_min=$(date -v-30d +%Y-%m-%dT00:00:00Z 2>/dev/null)&limit=250" 2>/dev/null
Include Shopify GMV in the revenue pipeline table with source=shopify.
Phase 2 — Render dashboard
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OPS ► REVENUE & COSTS — [month]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AWS SPEND
This month to date: $[X]
Forecast (EOM): $[X]
Last month: $[X]
MoM change: [+/-X%]
Top services:
[service] $[X] ([%] of total)
[service] $[X]
...
CREDITS
AWS credits remaining: $[X]
Expires: [date]
Burn rate at current: [N months remaining]
REVENUE PIPELINE
PROJECT SOURCE STAGE MRR/GMV STATUS
──────────────────────────────────────────────────────────────
[project] git [stage] $[X] [status]
[project] shopify [stage] $[X] GMV [status]
[project] custom [stage] $[X] [status]
...
──────────────────────────────────────────────────────────────
TOTAL MRR $[X]
TOTAL SHOPIFY GMV (30d) $[X]
RUNWAY ESTIMATE
Monthly burn (AWS): $[X]
Total MRR: $[X]
Net burn: $[X/month]
Credits cover: [N months]
Cash runway: [depends on external data]
──────────────────────────────────────────────────────
Use batched AskUserQuestion calls (max 4 options each):
AskUserQuestion call 1:
[Drill into AWS costs by service]
[Show cost anomalies (spike detection)]
[Export cost report]
[More...]
AskUserQuestion call 2 (only if "More..."):
[Update project revenue stage]
[Set budget alert]
Route by $ARGUMENTS
| Argument | Action |
|---|---|
| costs | Show only AWS cost breakdown |
| credits | Show only credits and expiry |
| revenue | Show only revenue pipeline |
| runway | Calculate and show runway |
| (empty) | Show full dashboard |
Use AskUserQuestion after the dashboard for next action.
Native tool usage
WebFetch — billing API fallback
When aws ce commands fail or return incomplete data, use WebFetch to query the AWS Cost Explorer API directly. Also useful for fetching Stripe/billing provider data if configured.
Write — export reports
When user selects "Export cost report" (option c), use Write to save the report as a dated file:
Write(file_path: "/tmp/ops-revenue-[date].md", content: "[formatted report]")
More from davepoon/buildwithclaude
file-organizer
Intelligently organizes your files and folders across your computer by understanding context, finding duplicates, suggesting better structures, and automating cleanup tasks. Reduces cognitive load and keeps your digital workspace tidy without manual effort.
212xlsx
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
187content-research-writer
Assists in writing high-quality content by conducting research, adding citations, improving hooks, iterating on outlines, and providing real-time feedback on each section. Transforms your writing process from solo effort to collaborative partnership.
141docx
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
122auth-patterns
This skill should be used when the user asks about "authentication in Next.js", "NextAuth", "Auth.js", "middleware auth", "protected routes", "session management", "JWT", "login flow", or needs guidance on implementing authentication and authorization in Next.js applications.
104server-actions
This skill should be used when the user asks about "Server Actions", "form handling in Next.js", "mutations", "useFormState", "useFormStatus", "revalidatePath", "revalidateTag", or needs guidance on data mutations and form submissions in Next.js App Router.
100