How the calculation works
Coverage. Hours to cover a year = hours per day × days per week × 365 ÷ 7. A 24×7 SOC covers 8,760 hours; a 12×5 one covers 3,128.6.
Productive hours per analyst = paid hours per week × 52 − days off × (paid hours per week ÷ 5). Days off are PTO + holidays + training + sick days, and a day counts as one fifth of the weekly hours. The defaults (40 hours a week; 15 PTO, 10 holidays, 10 training and 5 sick days) give 2,080 − 40 × 8 = 1,760 hours. They are planning assumptions, not published figures: use your own policy.
People per seat = coverage hours ÷ productive hours. Nothing is hard-coded: the familiar “about five people per 24×7 seat” comes out of these inputs and moves when they change. Coverage FTE = seats × people per seat.
Alert workload (optional). Triage hours a year = alerts per day × minutes per alert ÷ 60 × days covered a year. Workload FTE = triage hours ÷ (productive hours × the share of time on queue work, 70% by default). Alerts are assumed to arrive while the SOC is staffed, spread over the shift; bursts during an incident are not modeled.
L1 analysts = the larger of coverage FTE and workload FTE, rounded up to whole people. L2 and L3 = L1 ÷ the ratio you set (one per N), rounded up. Annual cost = total headcount × the loaded cost per person you enter. The calculator has no salary data of its own.
Worked example
A 24×7 SOC with two analysts on shift, the default time-off assumptions, 300 alerts a day that reach a person at 10 minutes each, one L2 per five L1, one L3 per ten L1, and $140,000 loaded cost per person (an example input, not a market rate):
- Productive hours: 2,080 − 40 × 8 = 1,760 per analyst
- People per seat: 8,760 ÷ 1,760 = 4.98, so coverage alone needs 2 × 4.98 = 9.95 FTE
- Triage: 300 × 10 min = 50 hours a day × 365 = 18,250 hours a year ÷ (1,760 × 70% = 1,232) = 14.81 FTE, about 3 analysts on shift on average
- The workload is larger, so 15 L1 analysts; L2: 15 ÷ 5 = 3; L3: 15 ÷ 10 = 1.5, rounded up to 2
- Total: 20 people, × $140,000 = $2,800,000 a year
With only 20 alerts a day the triage load is under 1 FTE, coverage sets the number, and the two seats need 10 L1 analysts.
In-house SOC or MDR
Building a 24×7 SOC means hiring and keeping around five people for every seat, plus a SIEM, endpoint tools and someone to run them. Managed detection and response is the usual alternative: the provider staffs the shifts and you keep the decisions. Some teams split the work, with an internal analyst or two in business hours and a provider covering nights and weekends. Run this calculator for the coverage you would keep in-house and compare the cost with quotes for the rest.


