A2P SMS Traffic Seasonality: How to Plan Capacity by Destination
An operational guide to turning your own historical data into forecasts by destination and time window, checking them against agreed limits, and revising the plan when traffic signals change.

A global figure can hide a local bottleneck
Total message volume may appear stable even as the load changes for a destination, operator, or time window. That is why an aggregated forecast is not enough to make capacity decisions: it can hide concentrations that coincide with route limits or a period of intense demand.
Your unit of analysis should reflect how traffic is actually routed and managed. At a minimum, break it down by destination and time window; when your data and agreements allow, add operator, message type, and route used. Do not assume that the same total represents the same load for every component.
- Define what “destination” means in your reports, and keep that definition consistent across periods.
- Compare volumes over uniform intervals and convert timestamps to a consistent reference, while also retaining the relevant local time.
- Avoid adding incompatible categories or treating sent volume as equivalent to delivered volume.

Gather comparable historical data and operational signals
Start with your own data, and check that its definitions have not changed during the period under review. For each interval, collect submitted and accepted volume, destination, operator or route if available, traffic type, timestamps, rejection responses, and queue data. Also record known changes to configuration or agreed limits.
Delivery statuses require caution. A received DLR is a signal reported by the messaging chain; on its own, it does not prove verified receipt on the handset. Keep submission, acceptance, rejection, reported delivery statuses, and any available independent observations separate.
- Check time zones, missing intervals, duplicates, and changes in destination classification.
- Separate OTP, transactional, and marketing traffic when their time-of-day behavior or requirements differ.
- Note periods involving campaigns, incidents, route changes, tests, or policy changes so they are not mistaken for ordinary activity.
- Keep units distinct: messages, requests, segments when known, agreed TPS, and queue duration are not interchangeable measures.

Distinguish seasonality, campaigns, exceptions, and trends
An observed increase does not, by itself, explain its cause or duration. To classify it, compare equivalent periods in the available historical data and review the context: calendar, known campaigns, changes in traffic mix, operational changes, and exceptional events. If there is not enough comparable history, document that limitation instead of presenting a pattern as seasonal.
Treat a one-off campaign as a scenario tied to specific dates or conditions, not as permanent growth. Consider a change to be a persistent trend only when it recurs in comparable observations and cannot be explained by a change in measurement, mix, or routing. This classification is an operational hypothesis that should be reviewed against later data.
- Seasonality: a pattern that recurs in comparable periods of the available historical data.
- Campaign peak: an increase linked to an identifiable activity or window.
- Exceptional event: an isolated variation whose recurrence has not been confirmed.
- Trend: a sustained change that persists when comparing consistent periods and reviewing contextual changes.
Build a destination-level forecast with explicit assumptions
Prepare a forecast for each destination and time window that is operationally relevant. Start with comparable historical intervals, adjust only for known changes, and document your assumptions, the evidence supporting them, and the remaining uncertainty. Do not extrapolate a growth rate without data to justify it.
Rather than relying on a single figure, develop scenarios. A baseline scenario can describe continuity with the observed pattern; others can represent a confirmed campaign or a plausible deviation based on your own historical data. Specify what condition triggers each scenario and who approves the change. Scenarios are for exploring load, not for promising volume or delivery.
- Document the reference period, granularity, internal sources, and exclusions.
- Record assumptions about traffic mix, calendar, routes, and configuration changes.
- Specify the owner, review date, and signal that would require each hypothesis to be updated.
- Keep the forecast, chosen operating margin, and agreed capacity separate.
Check demand against limits and route behavior
Before assigning traffic, compare forecast load with the applicable and confirmed limits for each segment: agreed TPS, connection capacity, provider restrictions, and sending policies. Also check observed queue behavior and the flow-control mechanisms available in your integration. A stated limit does not mean that capacity is guaranteed to be available at all times.
Clarify what each limit measures and where it applies: per connection, account, route, destination, or provider. Do not add capacities of different components as if they were interchangeable. If the contractual or technical documentation does not specify the scope of a value, ask for clarification before using it for planning.
- Verify current limits and their scope against the applicable technical documentation and agreements.
- Compare demand in each interval with every relevant limit, not just one global figure.
- Observe queue buildup and drain, rejections, and flow-control signals; a single signal does not, by itself, determine the cause.
- Plan authorized and validated operational alternatives without assuming another route has equivalent coverage, capacity, or quality.
Set an operating margin without turning it into a guarantee
An operating margin is an internal decision to absorb variability and respond to uncertainty; it is not a universal property or a delivery commitment. Set it based on observed variability, service requirements, confirmed limits, and your team’s ability to respond. If there is not enough data to estimate it, document the uncertainty and limit the scope of your conclusion.
Agree in advance on the actions each owner can take as load approaches a limit: review traffic allocation, coordinate with the provider, activate approved operational controls, or temporarily reduce acceptance of new requests if service policy allows. Actions must comply with agreements, applicable obligations, and expectations communicated to customers.
- Do not describe nominal TPS as sustained available throughput without confirmation and operational evidence.
- Do not treat a small or empty queue at a particular moment as proof of sufficient capacity for a future campaign.
- Distinguish planned capacity, observed capacity, and agreed capacity.
- Define who can authorize changes and how degradation or limitations will be communicated.
Validate gradually and compare the forecast with actual results
Review the plan incrementally and within authorized limits. Before making any load change, confirm the conditions with the responsible parties and decide which metrics to observe, for how long, and what action to take if an anomaly occurs. Do not use unsolicited traffic or tests that violate applicable rules.
Afterward, compare the forecast with what happened for the same destination and time window. Record both deviations and contextual changes: a difference between forecast and outcome may be due to demand, configuration, limits, data quality, or other factors. Update assumptions and scenarios based on evidence without turning a single observation into a general rule.
- Use comparable windows and keep the same definitions of volume and status.
- Record changes made during the observation period so the results can be interpreted.
- Review queues, rejections, latency, and reported statuses alongside volume; no single indicator describes the entire service.
- Keep a record of the forecast, result, provisional explanation, and decision made.
Use review signals, not automatic diagnoses
Review the forecast when the traffic mix or time-of-day profile changes, queues grow, rejections increase, or agreed limits are reached. These signals indicate that an investigation is warranted; they do not identify a single cause on their own. Before attributing the issue, check timing, the scope of the limit, provider or route changes, and record quality.
Maintain a disciplined review process: record the signal, its scope, the hypothesis, the checks performed, and the decision. This helps the team distinguish a brief peak from a sustained change and avoid both over-sizing for an exception and overlooking localized saturation.
- A different-than-expected mix or volume for a particular destination and time window.
- Queues that grow or take longer to drain than in comparable periods.
- Recurring rejections, reached limits, or flow-control signals.
- Persistent differences between the forecast, accepted volume, and reported delivery statuses.
- Changes to route, operator, connection, policies, or data quality.
Frequently asked questions
How much historical data do I need to identify seasonality?
There is no universal period to recommend without knowing the granularity, how stable the definitions are, and whether comparable observations are available. Use your own available history, state its limitations, and do not call a pattern seasonal until it has recurred in comparable observations.
Does an increase in traffic mean I should increase capacity?
Not necessarily. First determine whether it is a one-off peak, a change in traffic mix, a data issue, or a persistent trend. Then compare load by destination and time window with confirmed limits, queues, and rejections, and coordinate any adjustment with the route owners.
Does a route’s advertised TPS guarantee that I can sustain that rate?
No. Clarify whether the value is contractual, technical, or merely stated, where it applies, and under what conditions. Available capacity may depend on multiple segments and operating conditions; a TPS figure on its own does not guarantee acceptance, delivery, or receipt on the handset.
Does a DLR notification confirm that the SMS reached the phone?
A DLR is a status reported by the messaging chain and should be interpreted according to its definition and origin. On its own, it is not equivalent to independent verification of receipt on the handset.
How should I use scenarios if I do not have enough data?
Describe them as hypotheses, not precise forecasts. Explain what is known, what is missing, which assumption is being used, and what observation would allow you to review it. Avoid inventing growth rates or presenting a scenario as guaranteed capacity.
Sources consulted
- El mercado de mensajería A2P: problemáticas, retos y oportunidadesTelefónica (estudio de Analysys Mason)
- Especificaciones por series3GPP
- Recomendación E.164Unión Internacional de Telecomunicaciones (UIT-T)
- SMPP v3.4 Issue 1.2SMPP Developers Forum
- Semántica HTTPIETF