FINOPS · SCHEDULE · AI
Cost Anomaly Digest
Cost dashboards get ignored because they report everything. This loop reports three things, correctly attributed, with the fix attached. It learns your weekday cycles and planned launches so 'Monday is always higher' never pages anyone again.
TRIGGER
cron 07:00 IST daily
GATHER
AWS CUR + GCP billing export, 30-day baseline per service
REASON · AI
rank deltas, separate anomalies from seasonality & known launches
ACT
Slack digest to #finops + monthly PDF for leadership
01 — INSTALL
brew install supraj/tap/cost-digest cost-digest init --cur s3://acme-cur --gcp bq://acme-billing
02 — CONFIGURE
Point it at your billing exports. The allowlist is how you teach it about planned spend.
# digest.yaml
schedule: '0 7 * * *' # IST
sources:
aws_cur: s3://acme-cur/
gcp_billing: bq://acme-billing.export
baseline: 30d
known_events:
- match: 'project: ml-training'
until: 2026-08-01 # planned GPU burn
report:
slack: '#finops'
top_n: 3
03 — HOW IT WORKS
01
Runs entirely against your billing exports — no cloud API write permissions, no data leaves your account.
02
Anomaly detection is statistical; the AI step only explains and prioritizes. If the numbers are ambiguous, the digest says so instead of inventing a cause.
03
Every line links to the exact CUR rows behind it, so finance can audit any claim in one click.
04 — EXAMPLE OUTPUT
── COST DIGEST · Jul 06 ────────────── 1. NAT gateway egress +38% ($214/day) cause: new pod pulling images cross-AZ fix: add ECR pull-through cache 2. gpu-node-7 idle 22h/day ($187/day) fix: taint + scale-to-zero after 30m 3. S3 replication spike — expected (DR drill) no other movers above threshold ✓