Knowledge > Runbooks > Technical Ops > Audit Monthly Service Costs
Audit Monthly Service Costs
Review all vendor costs across the ChurchWiseAI portfolio each month to track burn rate, catch unexpected charges, and ensure spending stays proportionate to revenue.
Prerequisites
- Access to each vendor's billing dashboard (see URLs below)
- Stripe CLI for revenue figures
STRIPE_LIVE_SECRET_KEYfromknowledge/.envfor live mode revenue data
Vendor Checklist
1. Vercel (Hosting)
URL: https://vercel.com/teams/churchwiseai-5386/settings/billing
Check:
- Current plan and monthly invoice
- Function invocation counts (watch for unexpected spikes)
- Bandwidth usage
- Any overages
Expected: Pro plan covers normal traffic. High function invocations from chatbot/voice webhooks are normal.
2. Supabase (Database)
URL: https://supabase.com/dashboard/project/wrwkszmobuhvcfjipasi/settings/billing
Check:
- Current plan (Pro plan required for PITR + daily backups)
- Database size vs plan limit
- Storage usage (document uploads in
kb-proxy/upload) - Egress bandwidth (vector search can be bandwidth-intensive)
Expected: Database size grows as churches add knowledge base content.
3. Stripe (Payment Processing)
URL: Stripe Dashboard → Balance → Overview (use --api-key flag for live mode CLI queries)
# List recent charges to estimate fee volume
stripe charges list --limit 10 --api-key $STRIPE_LIVE_SECRET_KEY
Stripe fees: 2.9% + $0.30 per successful transaction.
Check:
- Gross revenue (sum of successful charges)
- Net revenue after fees
- Any refunds or disputes
- Failed payment rate (high failure rate may indicate bad card data)
4. Cartesia (Voice AI)
URL: https://play.cartesia.ai → Billing
Check:
- Voice minutes consumed this month
- Per-minute rate and total charge
- Any spike in usage (may indicate a runaway call or test session)
Expected: Billed per minute of voice calls. Directly proportional to active voice customers × avg call volume.
5. Twilio (Phone Numbers + PSTN)
Check current balance via ops_quota_snapshots:
SELECT metric_name, metric_value, recorded_at
FROM ops_quota_snapshots
WHERE service = 'twilio'
ORDER BY recorded_at DESC LIMIT 5;
Or check the Twilio console directly.
Items: monthly phone number fees per church ($1–2/mo each), inbound call minutes.
6. OpenAI (Embeddings)
URL: https://platform.openai.com/usage
Check:
text-embedding-3-smallusage (embeddings for RAG)- Any GPT model usage (if fallback LLM routes are active)
Expected: embedding costs are low ($0.02/1M tokens). Spike may indicate a re-embedding run.
7. Anthropic API (Real-time LLM)
URL: https://console.anthropic.com/settings/usage
Check:
- Claude Haiku 4.5 usage (chatbot + voice Care Agent)
- Any Claude Sonnet usage (escalations or coding tasks)
Note: claude -p CLI usage (Claude Max $200/mo subscription) does NOT appear here. Anthropic API usage here is only for real-time product features (chatbot, voice). If API costs here are high, investigate whether batch content generation accidentally used the API instead of claude -p.
8. Resend (Transactional Email)
URL: https://resend.com/overview
Check:
- Emails sent this month
- Plan limit vs usage
- Bounce and complaint rates
9. MailerLite (Email Marketing)
URL: https://dashboard.mailerlite.com/billing
Check:
- Subscriber count vs plan limit
- Emails sent this month (campaigns + automations)
- Any plan overage
10. Domain Registrars
- PewSearch.com DNS: managed via Vercel (no separate renewal)
- All other domains: Porkbun — check annual renewal dates
Compile and Compare to Revenue
# Get current MRR from active subscriptions
stripe subscriptions list --status active --limit 100 --api-key $STRIPE_LIVE_SECRET_KEY
Build a simple comparison:
| Category | Monthly Cost | Notes |
|---|---|---|
| Vercel | $X | Hosting for 3 sites |
| Supabase | $X | Database + storage |
| Cartesia | $X | Per voice minute |
| Twilio | $X | Phone numbers + PSTN |
| OpenAI | $X | Embeddings |
| Anthropic API | $X | Real-time LLM |
| Resend | $X | Transactional email |
| MailerLite | $X | Marketing email |
| Anthropic Max | $200 | Claude CLI for content |
| Total Costs | $X | |
| MRR | $X | |
| Net | $X |
Verification
- Total costs are documented with month/year
- Any cost spike (>20% over prior month) has an identified cause
- Net (MRR minus costs) is tracked over time