WAF Sizing Tool Niyaasoft

Sizing methodology

Everything the engine does, in the order it does it. Nothing here is hidden behind a score or a weighting: the arithmetic is the same on every design, and the result page repeats it for the numbers you entered.

Why a WAF is not sized like a firewall

A firewall forwards packets, so it is sized on throughput. A WAF terminates the connection and parses every request and response, so it is sized on layer-7 requests per second and on new TLS handshakes per second, with throughput and the connection table as secondary limits. The headline figure on a datasheet is measured with no security policy applied; with a production policy the usable rate is a fraction of it.

That is why the catalogue in this tool carries a separate WAF request rate and WAF throughput per model, and why those are the numbers every candidate is measured against.

What each vendor sizes on

VendorModule or editionSizing basis
F5 BIG-IP Advanced WAF (formerly ASM) F5 sizes a WAF on layer-7 requests per second with the security policy enabled, together with new TLS handshakes per second at the key type in use. The L4 headline throughput on a datasheet is never the WAF number: Advanced WAF with signatures, bot defence and behavioural L7 DoS delivers a fraction of the raw L7 rate.
Imperva Imperva WAF Gateway / Cloud WAF Imperva sizes a gateway on sustained throughput and on transactions per second, with the number of protected servers and the TLS handshake rate as secondary limits. Its gateways are normally deployed as a pair behind a load balancer rather than in an active/passive couple, and the management server is sized separately from the data path.
Citrix NetScaler NetScaler Web App Firewall (AppFirewall) - Premium edition NetScaler sizes on system throughput, HTTP requests per second, SSL bulk throughput and SSL transactions per second at RSA-2048 or ECDSA P-256. AppFirewall runs in the packet-processing path, so the figure that matters is throughput and request rate with the firewall profile applied - typically a third of the system rating once signatures, learning and bot protection are on.

Step 1 · Day-one request rate

A measured peak always wins. The engine takes the highest figure the form can produce, because a WAF has to survive the worst of them, not the average:

requests/sec = max( measured peak requests/sec, concurrent users x busy-hour requests per user, peak Mbps x 125 / average transaction KB )

The busy-hour rate per user comes from the application profile, so a JSON API is not sized as though it were a page-heavy intranet:

ProfileRequests/sec per userAverage transaction
Web portal / intranet (page-heavy) 0.3 40 KB
E-commerce / public website 0.5 25 KB
API / mobile back end (JSON) 1.2 4 KB
SaaS / single-page application 0.8 12 KB
Online banking / transactional 0.4 18 KB
Government / citizen services 0.25 35 KB

Step 2 · Day-one throughput

Mbps = requests/sec x average transaction KB x 8 / 1000

If a higher peak throughput was measured and entered, that figure is used instead.

Step 3 · New TLS handshakes per second

This is the figure that sinks most WAF designs. Handshake capacity runs out long before throughput does, and it is the one number nobody measures.

handshakes/sec = requests/sec / requests per TLS connection x encrypted % x 2 if the WAF re-encrypts to the back end

The rating used for the comparison is the one that matches the certificate in use: RSA 2048 or ECDSA P-256. On the same platform ECDSA is roughly twice the handshake rate, which is often cheaper than moving up a model.

Step 4 · Inspection cost

Vendor ratings are published with a standard policy. Anything heavier has to be paid for in platform size, so each capability adds a documented cost to the request-rate requirement:

CapabilityAdded costWhat it does
Bot management and scraping defence +25% Fingerprinting, rate control and JavaScript or CAPTCHA challenges against automation.
Application-layer (L7) DoS protection +15% Behavioural detection of request floods that look like real traffic.
API security (JSON / XML / schema validation) +20% Parses and validates structured payloads against an OpenAPI or XML schema.
Account takeover / credential stuffing defence +10% Verdict per login attempt using breached-credential and behavioural intelligence.
Response inspection and data masking +20% Scans server responses for card numbers, national IDs and error leakage. The response body has to be buffered, which is the single most expensive option here.
Policy learning with full request logging +10% Keeps the learning engine and full transaction logging on in production, rather than only during onboarding.
IP reputation / threat intelligence feed +2% Drops known-bad sources before the policy runs, so it usually pays for itself.
In-application runtime protection (RASP) none An agent inside the application itself. No cost to the WAF data path.
Load balancing on the same platform none The WAF also distributes traffic across the server pool and monitors its health.
Global server load balancing (multi-site) none DNS-based site selection across active/active data centres.
Database activity monitoring none Protects the database tier under the same management plane. Imperva only.
TLS decryption for other inspection devices +5% The platform decrypts once and service-chains the traffic to IPS, DLP or sandboxing.

Handshake capacity is crypto work rather than policy work, so the inspection factor is not applied to the TLS figure.

Step 5 · Insertion mode

ModeFactorCan block?What it means
Reverse proxy (full proxy) ×1.00 Yes The WAF terminates the client connection and opens its own to the server. Full request and response inspection, TLS termination, header rewriting and response blocking. The default for all three vendors.
Transparent inline bridge (layer 2) ×0.90 Yes The WAF sits in the wire with no addressing change. Blocking still works, but TLS has to be decrypted with a copy of the server key and connection-level rewriting is limited.
One-arm / VIP on a stick ×1.15 Yes A single interface carries both client and server traffic, with source NAT on the return path. Easy to insert into an existing network, but it doubles the load on that link.
Out-of-band monitoring (detection only) ×0.70 No The WAF inspects a SPAN or TAP copy of the traffic. It alerts and can send TCP resets, but it cannot block inline. Normally used for a learning period before enforcement.
Cloud / SaaS delivered ×1.00 Yes Traffic is redirected to the vendor cloud by DNS or BGP. There is no appliance to size, but bandwidth and request volume drive the subscription tier.

Step 6 · Growth and design headroom

required = day-one x inspection x mode x (1 + growth%)^years / (1 - headroom%)

The platform is sized for the last year of its life, not the first, and to run at no more than 100% - headroom of its rating even then. The headroom is what absorbs an attack, a failover and a policy that grows as applications are onboarded.

Step 7 · High availability

ChoiceUnitsLoad per unit
Single unit (no HA) 1 100%
Active / standby pair 2 100%
Active / active pair 2 100%
Cluster of N nodes (N+1 resilience) N (3 to 8) 1 / (N - 1)

An active/active pair is deliberately sized at 100% per unit, not 50%. Sizing a pair at half the load each is the most common WAF sizing error: it works until the day one unit is lost, which is exactly the day the load matters. A cluster is sized so that the loss of one node still leaves enough capacity.

Step 8 · Choosing the model

A model qualifies only if it clears every one of these:

The smallest qualifying model is recommended, so the tool never oversells, and every rejected model keeps the list of reasons it failed. The recommendation can be overridden with any model in the range: an undersized choice is kept and flagged with the utilisation above 100%, never silently corrected.

Scoring a model against the requirement

Any model can be measured against the figures above, whether the engine picked it or you did. Each dimension gets a coverage percentage - what the platform provides against what the design needs, capped at 100% - and the fit is the weakest of them:

coverage per dimension = min(provided / required, 1) x 100 fit = the LOWEST coverage of any dimension

It is deliberately not an average. A platform that covers the throughput twice over but only 40% of the TLS handshake rate does not fit 70% - it fails, and averaging would bury the one number that sinks the design. Exceeding a requirement never raises the fit above 100%; it shows up as headroom instead, which is what the utilisation figure reports.

A platform that cannot be used at all - it does not support the insertion mode, or it is a cloud service in an on-premises design - scores 0% however much capacity it has. One that is merely the wrong shape, such as a virtual instance when hardware was asked for, keeps its capacity score and is labelled wrong shape, because that number still means something if the preference is revisited.

What the tool does not do

WAF Sizer von NiyyasoftHilfe
DEEnglishالعربيةDeutschFrançaisSvenska