1.2 Estimating your exposure

A repeatable method for working out what October 1 does to your own bill, using message history you already have.

You can estimate what October adds to your bill before Meta publishes final rates, because the volumes are the hard part and they come from your own message history.

The method

  1. Take the last 30 days of outbound messages. A full month smooths out weekday and campaign effects.
  2. Keep only the ones that were free. These are your service messages: free-form replies sent inside the window, which come back on status webhooks as free_customer_service.
  3. Bucket them by recipient country. Rates differ per market, so a single total will mislead you.
  4. Multiply each bucket by that market's rate.

The first three steps are the work, and the next section covers where to count from. The last one is a multiplication, and the calculator does it at today's rates:

Service message cost estimator

Prefilled with 12,000 service messages a month, split 70/30 between Mexico and Brazil. Replace the markets and volumes with your own. Meta has said service messages will bill at each market's utility rate, so this multiplies by today's utility rates; Meta's rate-card update expected on September 1 may still move them. It's an estimate, not a quote.

Counting from the right source

Count from status webhooks, not from send calls. A send log tells you how many messages went out; only the status data tells you which were free, and the free ones are what you're counting. Chapter 0.5 has the mechanics.

If you've kept the raw pricing payloads, filter to outbound messages whose pricing type was free_customer_service and group them by destination country. If you haven't kept them, the closest approximation is outbound free-form messages sent while a window was open.

Two details matter however you build it. Count distinct message IDs, not status rows, because one message produces several statuses and Meta redelivers webhooks; each message should count once. And bucket by the first two letters of recipient_user_id, which are the recipient's country. Every status carries them, with or without a phone number, so there's no dialling-code table to build.

If your number runs on Kapso

This report already exists. Open your project's Usage screen and switch to the WhatsApp tab. The October 1 exposure card counts your service messages by market over any window you pick and prices a month of them at today's utility rates.

What it adds per conversation

Before multiplying anything by 100,000, look at what October adds to a single conversation.

Take a support conversation where you send six replies. From October 1, each of those bills at the recipient market's utility rate, so at today's rates the whole conversation costs:

  • about $0.005 more in Colombia (rate $0.0008),
  • about $0.05 more in Mexico (rate $0.0085),
  • about $0.16 more in Argentina (rate $0.0260).

Now put that next to what you already spend producing the replies. If an AI agent handles the conversation and the model usage costs you $0.50, Meta's fee adds about 10% in Mexico and about 1% in Colombia. If a human agent handles it, their time costs dollars per conversation, and the fee barely moves the total.

So if answering already costs you something, no single conversation gets meaningfully more expensive. What makes October a budget item is volume. 100,000 of those conversations a month in Mexico is about $5,000 a month that didn't exist before. The calculator above works that out for your own volumes.