Skip to content

Daily Cost Digest: Proactive Morning Briefing

import { Steps } from ‘@astrojs/starlight/components’;

Every morning, Xplorr posts a smart cost summary to your configured Slack or Teams channel. No one needs to ask — the bot proactively pushes what changed, what’s at risk, and what to do about it.

The daily digest includes:

  • Yesterday’s spend vs the 7-day rolling average, with a trend arrow showing the direction
  • Top 5 services by cost, with month-over-month change percentages
  • Anomalies — count of new anomalies detected, with the highest severity flagged
  • Open recommendations — how many action items are waiting, with total potential savings
  • Budget status — progress bars showing each budget’s current usage percentage
  • Forecast — projected end-of-month spend vs your budget

The message uses rich Slack Block Kit formatting with structured sections, progress bars, and action buttons to jump to the dashboard or recommendations page.

The digest runs as a cron job inside the Xplorr agents service:

  1. At the scheduled time (default: 9 AM UTC), the scheduler wakes up
  2. It lists all active Slack installations
  3. For each org, it fetches cost data via the Xplorr API (cost summary, top services, anomalies, recommendations, budgets, forecast)
  4. It builds a Block Kit message with the data
  5. It posts to each configured channel using the Bot API

If you have channel routing configured, each channel gets a scoped digest based on its configuration (e.g., the DevOps channel only sees AWS EC2/EKS costs).

  1. Connect Slack. If you haven’t already, install the Xplorr Slack app via Settings → Integrations → Slack in the console.

  2. Configure a channel. Go to Settings → Integrations → Channels and add the channel where you want the digest posted. Toggle Digest enabled on.

  3. Set the schedule. Choose the time and timezone for delivery. Default is 9 AM UTC.

  4. Choose what to include. Toggle sections on or off: forecast, anomalies, recommendations, budgets.

The default schedule is 0 9 * * * (9 AM UTC daily). You can customize it per-channel in the channel configuration, or override it globally with the DIGEST_CRON environment variable.

If your org has multiple teams, you can configure different channels to receive different slices of the data:

  • All accounts — the full org summary (default)
  • Specific accounts — only costs from selected AWS/Azure/GCP accounts
  • By tags — filter by cost allocation tags (e.g., team:platform)
  • By services — only specific services (e.g., EC2 + EKS for the infra team)

See Channel Routing for setup instructions.

Here’s what a typical daily digest looks like in Slack:

📊 Daily Cost Digest — Acme Corp
2026-03-21 | Powered by Xplorr
─────────────────────────────────
Yesterday's Spend 7-Day Avg
$1,847.23 ↗ $1,620.50 (+14.0%)
─────────────────────────────────
Top Services
1. EC2 — $842.10 (+18.2%)
2. RDS — $312.45 (+3.1%)
3. S3 — $198.70 (-2.4%)
4. Lambda — $87.20 (+45.6%)
5. CloudFront — $62.30 (+1.2%)
─────────────────────────────────
🟠 2 Anomalies Detected
Highest severity: medium
─────────────────────────────────
Open Recommendations Potential Savings
8 action items $1,240.00/mo
─────────────────────────────────
Budget Status
Production: 🟩🟩🟩🟩🟩🟩⬜⬜⬜⬜ 62% ($6,200 / $10,000)
Dev/Test: 🟧🟧🟧🟧🟧🟧🟧🟧⬜⬜ 84% ($4,200 / $5,000)
─────────────────────────────────
[View Dashboard] [See Recommendations] [Ask Me Anything]

Can I get the digest in Microsoft Teams too? Yes. If you have the Xplorr Teams app installed, the digest is sent as an Adaptive Card to your configured Teams channel.

What if no cost data is available yet? The digest skips orgs that have no recent cost data. Once your first sync completes, the next morning’s digest will include your data.

Can I trigger a digest on demand? Yes. Ask the bot: “Send me a cost digest” or use the internal API endpoint POST /internal/notify/digest.