Skip to main content

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_KEY from knowledge/.env for 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-small usage (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:

CategoryMonthly CostNotes
Vercel$XHosting for 3 sites
Supabase$XDatabase + storage
Cartesia$XPer voice minute
Twilio$XPhone numbers + PSTN
OpenAI$XEmbeddings
Anthropic API$XReal-time LLM
Resend$XTransactional email
MailerLite$XMarketing email
Anthropic Max$200Claude 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

See Also