Skip to content

Capacity and operations

Sizing for the Peak You Already Have: DDoS Capacity Planning Around National Event Windows

Last updated: August 2026 · Coincident peaks, stale baselines and frozen change windows · Reading time ~13 min

A transparent duct carrying a green flow that leaves a narrow band of headroom under its ceiling; an amber column enters from above, the headroom disappears, and beyond that point the duct runs dark and empty.

Sizing against attack volume alone misses the case that actually breaks: an attack arriving while legitimate load is already at its annual maximum. The same attack that was survivable in March is not survivable during the peak — your headroom is gone, your rolling baselines are wrong, a change freeze is in force, and the diversion runbook has never been exercised against this traffic shape.

Almost every DDoS sizing exercise asks the same question: how large an attack should this design survive? It is a reasonable question and it produces a number, and the number is wrong for a particular case that a Saudi operations team faces on a known schedule.

The case is not a larger attack. It is an ordinary attack arriving while legitimate load is already at its annual maximum — the Hajj period, the Ramadan and Eid retail and payment peaks, a national event window. What makes it worth its own guide is not that traffic is high. It is that four things which normally fail independently fail together, and the design that handled each of them separately handles none of them at once.

Nothing below depends on any statistic about how much traffic a particular event generates. The argument is structural, and the only numbers that matter in it are your own.

Four things that break together

Your headroom is already spent. An on-premise appliance protects you while your access circuit is not full; above that, the circuit is saturated before the appliance sees anything useful. During a peak, legitimate traffic is consuming an unusual share of that circuit — so the attack volume needed to fill it is smaller, by exactly the amount the peak is consuming. An attack that your March sizing exercise classified as comfortably absorbable can be, in this window, an attack that saturates the link.

Where the on-premise layer stops being able to help Your 10 Gbps access circuit Circuit already saturated — upstream only On-premise appliance mitigates 2 Gbps 8 Gbps 25 Gbps 120 Gbps 1 Tbps+ Attack volume (log scale)
Below the circuit, the local tier is the whole answer. During a peak, the position of that line effectively moves — because the legitimate half of the traffic has already claimed part of it.

Your baselines are describing a different service. Behavioural detection learns what normal looks like from recent history, and recent history in most products means days. Peak traffic is genuinely different — in volume, in time-of-day distribution, in geography, in device mix, in which endpoints get hit. The detector does what it was built to do and concludes that a large fraction of your real users are anomalous. Its worst false-positive rate coincides precisely with the period in which a false positive is most expensive.

You cannot tune your way out of it. The implicit plan behind most thresholds is we will adjust during the incident. During these windows a change freeze is usually in force — often the strictest of the year, and correctly so. The plan is unavailable at the only moment it was needed.

The runbook has never met this traffic. The diversion procedure has been exercised, if at all, against ordinary weekday traffic. It has never been exercised against a shape that occurs once a year, with volumes the team sees once a year, in a period when the people who know the procedure are on a rota that is also different from usual.

Each of the four is manageable. Together they describe a scenario where every mitigation you had planned is either unavailable or mis-tuned.

The fix is mostly process, and it is cheap

Three of the four are process problems, which is good news: process is far cheaper than capacity.

Rehearse against peak baselines, not average ones. This requires having peak baselines, which requires capturing the peak. The single highest-return action an operations team can take during one of these windows is to store a representative capture of it — full or sampled, whatever the storage budget allows. That capture becomes next year’s test corpus: for tuning, for exercising the runbook, and for putting a candidate appliance through a proof of concept against traffic that actually resembles the hard case rather than against synthetic floods.

Pre-authorise diversion before the freeze window opens. Not the technical steps, which are already documented, but the decision. Who may trigger it, on what observed condition, with what notification and what time limit. If that is settled in writing a fortnight before the window, then the action during the window is the execution of an existing decision rather than a new decision requiring an exception to a freeze. This costs one meeting and removes the most common source of delay.

Set thresholds for the window in advance, and set them deliberately. If the detector cannot hold a seasonal profile, then the honest response is to choose, before the window, which way you would rather be wrong — and to write down why. A team that has consciously accepted reduced sensitivity for a defined period, with compensating monitoring, is in a different position from a team that discovers mid-incident that it cannot change anything.

Hold packet-level evidence locally. The post-event review of an incident during a national window will involve people who were not in the operations centre — executives, regulators, sometimes the public. The questions will be specific and will arrive weeks later. Producing the answer from your own storage, on a retention period you set, is a query; requesting it from a third party is a support ticket answered inside their retention window. This is the same argument the licence-obligation guide makes for operators, arriving here by a different route.

The one thing that is a purchasing requirement

The fourth problem — baselines learned from a rolling window — is not fixable by process, and it is the item worth putting in a tender.

The requirement is that the device can retain and apply a traffic profile learned from a period other than the immediately preceding days. Phrased for a specification: the system shall support retention and selective application of a learned baseline captured during a defined historical window, and shall permit that profile to be applied as the reference for anomaly detection during a nominated future period.

That is testable. Give a candidate a stored capture from last year’s peak, replay it as current traffic, and observe what the detector concludes — with and without the seasonal profile applied. The difference between products here is large, it separates appliance classes rather than models, and it almost never appears in a datasheet because the buyers who need it are a minority of the market.

Two related properties are worth checking at the same time, because they interact with the freeze problem. Whether policy can be scheduled — a profile that activates on a date, without a human making a change during the window — and whether detection depends on anything outside your network, since an external dependency is one more thing that can behave unexpectedly during a period of unusual regional load. HARPP DDoS Mitigator runs its detection on the customer’s own infrastructure, which means the tuning done against a stored peak capture stays applicable regardless of what any external service is doing; whether its baselining supports a seasonal profile in the form you need is exactly the thing to put in the proof of concept rather than to take on trust. Radware DefensePro has a strong behavioural pedigree and is the other obvious candidate to test this way.

Two sizing assumptions, one calendar
ApplianceSized for the average weekSized for the coincident peak
Headroom assumedCircuit utilisation at a typical levelCircuit already carrying its annual maximum
Detection baselineRolling window, retrained continuouslySeasonal profile, held from the previous cycle
False positives at the worst momentHighest, because normal looks abnormalContained, because this normal was learned
Tuning during the incidentAssumed availableUnavailable — change freeze in force
Diversion authorityDecided when neededPre-authorised before the freeze window opens
Runbook rehearsalAgainst ordinary trafficAgainst a replay of last year's peak
What the vendor must demonstrateThroughput at line rateThat baselining can hold a seasonal profile

The last row is the one that separates appliance classes, and it is almost never in a tender. Everything above it is process, and process is cheaper than capacity.

A calendar-shaped checklist

Working backwards from a known window:

Twelve weeks before. Confirm the freeze dates. Identify which services carry the peak. Retrieve last year’s capture if one exists; if not, schedule this year’s.

Six weeks before. Rehearse the diversion runbook against the stored peak capture, not against ordinary traffic. Measure decision-to-mitigation on your own network rather than accepting the upstream provider’s published figure.

Two weeks before. Pre-authorise diversion in writing: trigger condition, authority level, notification list, time limit, review point. Apply or schedule the seasonal detection profile. Confirm with the upstream provider what their behaviour is if many of their customers in the region divert simultaneously.

During. Capture. Whatever else happens, capture — this window is the only source of the corpus that makes next year cheaper.

Four weeks after. Review with the capture in hand. What fired, what should have, what did the detector call wrong, and what would you have changed if the freeze had allowed it. That list is next year’s tuning plan, and it is worth more than any vendor’s tuning recommendation because it is about your traffic.

The honest limit

None of this creates capacity. If the coincident volume exceeds your access circuit, the local tier has lost before it sees a packet, and the answer is upstream capacity engaged through a procedure that was agreed before the freeze. The value of everything above is that it moves the point at which you need that upstream tier, makes the handover deliberate rather than panicked, and stops the detector from creating a second incident inside the first one.

And a team that already runs seasonal profiles, rehearses against captured peaks and pre-authorises diversion does not need this guide. In our experience that team is rarer than the practice deserves — the analysis is not difficult, it simply belongs to a calendar rather than to a project, and calendars have no budget owner.

Sources and further reading

The relevant inputs here are all internal: your own flow records at the border, your own circuit utilisation history, your own freeze calendar. For the sizing question in general, see the architecture comparison; for what changes when the service is sold to subscribers under a licence, see DDoS as a licence obligation.

Frequently asked questions

Why isn't sizing against attack volume enough?
Because the quantity that matters is the sum, not the attack. Your access circuit carries legitimate traffic plus attack traffic, and the appliance behind it only helps while the circuit is not full. During an annual peak the legitimate half is already consuming an unusual share of the circuit, so the attack volume required to saturate it is much smaller than your sizing exercise assumed. The threshold that matters moves, and it moves downward exactly when the service is most visible.
What specifically goes wrong with anomaly detection during a peak?
Most behavioural detection learns normal from a rolling recent window — commonly days rather than months. A national peak produces traffic that is genuinely abnormal relative to that window: different volumes, different times of day, different geographic distribution, different device mix. The detector is working correctly and reaching the wrong conclusion, and it produces its highest false-positive rate at the moment a false positive is most expensive.
Can't we just raise the thresholds during the peak?
That is the usual plan and it has two problems. The first is that a change freeze is typically in force during exactly these windows, so the change is either not permitted or requires an exception process that takes longer than the incident. The second is that a blanket threshold rise reduces sensitivity to the attack you are trying to catch. Raising thresholds is a way of turning a false-positive problem into a false-negative problem while a service is at maximum exposure.
What does "a seasonal profile" mean as an appliance requirement?
That the device can retain and apply a learned traffic profile from a period other than the immediately preceding days — so last year's peak, or the first days of this year's, can be the reference for what normal looks like now. Products differ substantially here and the capability rarely appears in marketing material. It is testable in a proof of concept by replaying a stored peak-period capture and observing what the detector does with it.
How do we rehearse against a peak we only get once a year?
Capture it. A full or sampled capture of the peak window, stored deliberately, becomes the test corpus for the following year — for tuning, for proof of concept work against new vendors, and for exercising the diversion runbook against a traffic shape the team otherwise never sees outside a live event. This is the single highest-return thing an operations team can do during a peak, and it costs storage.
Does the change freeze argument apply to the upstream tier as well?
More strongly, because you do not control it. If diverting requires a decision, an announcement and a provider action, then every one of those is subject to somebody's change process, and yours is frozen. The fix is to pre-authorise: agree before the freeze opens who may trigger diversion, under what condition, with what notification, so that the action during the window is an execution of a decision already made rather than a new one.
Is this only relevant to consumer-facing services?
No, though those are the clearest cases. The coincidence problem applies to any service whose legitimate load has a strong, predictable annual or seasonal maximum — retail and payments around religious and shopping seasons, government portals around filing and enrolment deadlines, transport and logistics around travel peaks, media around scheduled events. Substitute your own calendar; the analysis is identical.

Published: August 2026

This guide is updated as vendors release new models and pricing. How we compare vendors