Meta Usage & Cost Monitor
Switchbord now exposes two related Meta usage surfaces:- Insights → Billing (
/insights, Billing tab) — reads Meta WABApricing_analyticsandanalyticsinto local daily rollup tables, then shows messages sent/delivered, delivered-by-category, free vs paid splits, and approximate total charges in the WABA currency. - Settings → Usage (
/settings/usage) — an operational estimate view based on Switchbord messaging data and campaign attribution.
Meta usage totals are operational estimates. Meta invoices, billing exports, and account-level Meta billing tools remain the source of truth for settlement.
What Insights → Billing shows
- Messages sent / delivered — from the WABA
analyticsfield. - Delivered by category — from
pricing_analyticscategory rows such asMARKETING,UTILITY,AUTHENTICATION, andSERVICE. - Free vs paid — splits
FREE_CUSTOMER_SERVICE,FREE_ENTRY_POINT, and paidREGULARrows. - Approximate total charges — summed from
pricing_analytics.costin the WABA currency.
What Settings → Usage shows
- Estimated Meta cost — calculated from delivered template messages and the configured rate table.
- Delivered templates — chargeable template deliveries for marketing, utility, and authentication categories.
- Read rate — read events divided by delivered template messages for the selected window.
- Free messages — inbound freeform and service-window traffic counted separately from paid template delivery.
- Spend trend — daily estimated cost alongside delivered template volume.
- Cost by category — marketing, utility, authentication, and service buckets.
- Campaign attribution — delivered template volume, read rate, and estimated cost per campaign.
Windows
The dashboard supports three windows:7d— last seven days.30d— last thirty days.MTD— current month to date.
Data sources
The monitor reads workspace-scoped data from:messaging_eventswhen events already include status, category, country, and campaign metadata.messages,templates,contacts, andcampaign_recipientsas a fallback so existing workspaces can still estimate usage while richer messaging event payloads roll out.
workspace_id resolved from the authenticated operator session.
Pricing model
Switchbord follows Meta’s post-July-2025 delivered-template pricing shape:- Delivered template messages can be chargeable.
- Freeform service-window traffic is counted separately.
- Rates vary by template category and recipient country/calling-code region.
Campaign attribution
Campaign rows are derived fromcampaign_recipients.message_id and message delivery state. Use this view to identify which tourism campaign, re-engagement flow, or booking reminder is driving current Meta spend.
Follow-ups
- Import a complete versioned Meta rate table by country/calling-code and effective date.
- Add explicit billing export reconciliation against Meta invoices.
- Store richer status payloads at the messaging-event write path so fallback joins can be reduced over time.
- Add CSV export for finance and customer success reviews.