All posts

How MSSPs Can Close the Planned vs. Actuals Gap in Security Awareness

S

Symbol Security

Author

11 min read
Share:
How MSSPs Can Close the Planned vs. Actuals Gap in Security Awareness

TLDR: MSSPs running security awareness training and phishing simulations across many tenants can usually show a calendar. They often cannot show what was scheduled this month versus what actually ran. That planned-vs-actuals gap shows up in QBRs, audits, and renewals. This post defines the operator questions that should be easy, the four ledgers that make a program reconcilable, and a 90-day plan to close the gap.

Jordan runs security awareness for a regional MSSP. Dozens of client tenants sit behind one console. A vCISO quarterly review starts in twelve minutes. The client asks a reasonable question: How many phishing simulations actually went out this quarter, and did every in-scope user get this month’s training?

The dashboard looks fine. January has a simulation. February has another. Training is assigned on the first of each month. Then the exceptions start. One tenant paused the program during a merger. A second had the campaign built but never sent. A third went to a stale list that still included departed users. A fourth looks complete until someone notices due dates that drifted because of timezone handling.

The calendar still says the program ran. The operator cannot say what actually ran. That is the gap.

The Calendar Is Not the Program

A schedule is a promise. Actuals are evidence. Security awareness platforms are very good at the first and uneven at the second, especially when one team is operating many logically isolated tenants.

Fortinet’s 2024 Security Awareness and Training Global Research Report, based on interviews with 1,850 executive and management-level professionals across 29 countries, found that 75% of security awareness campaigns are planned in advance, and that those campaigns are delivered monthly (34%) or quarterly (47%). Eighty-one percent of organizations run awareness training monthly or quarterly.1

Planning is the industry default. The operational problem for MSSPs is not “do we have a calendar?” It is “can we prove the calendar executed, for every tenant, against the right population, this month?”

That proof matters because the human layer is still the path in. Verizon’s 2026 Data Breach Investigations Report finds the human element present in 62% of breaches, a slight increase from 60% the prior year.2 IBM’s Cost of a Data Breach Report 2026 puts the global average breach cost at $4.99 million, a 12% increase over the prior year, and finds that organizations using AI and automation extensively in security save $1.93 million compared with those using none.3

KnowBe4’s 2026 Phishing by Industry Benchmarking Report shows why consistency is not optional. Before training, the global average Phish-prone Percentage is 33.2%. Organizations that commit to a full year of continuous training and simulated phishing reduce that figure by 87%, to 4.2%. The largest gains do not arrive in the first 90 days; they arrive between month three and month twelve.4

If the program did not actually run in months four through nine, the twelve-month outcome is a story, not a result. MSSPs that cannot reconcile planned versus actuals cannot honestly claim the benefit of a continuous program.

For an MSSP or vCISO practice, a missed month is a service-quality defect that multiplies by tenant count. Each tenant has its own program state, user population, timezone, and hold requests. Reconstructing the month tenant by tenant does not scale, and it steals the advisory conversation: the QBR becomes an argument about whether February’s simulation went out instead of a discussion of what to change next quarter. Insurance questionnaires and compliance reviews are less patient. They expect an artifact. A screenshot of a schedule is not one.

The Operator Questions That Should Be Easy

A mature managed service should answer these questions on the first business day of the month, without a hero analyst rebuilding the month from screenshots.

QuestionWhat the calendar showsWhat actuals must show
Which tenants were in-program this month?Tenants with a schedule rowTenants whose program was active, not paused, expired, or leftover
What training was scheduled?Module names on a dateAssignments created, for which users, with which due dates
What training actually completed?Sometimes a completion percentageCompletions, incompletes, and overdues against the in-scope population
What phishing was scheduled?Campaigns on a calendarCampaigns that were configured to send
What phishing actually sent?Often the same calendarSends, holds, failures, and cancelled launches
Who was in scope?Last known user listActive users after status filters; joiners, leavers, and exclusions
What evidence exists?A dashboard screenshotAn export or audit record that would survive a QBR and an auditor

If any row on the right requires opening a tenant, clicking around, and copying numbers into a spreadsheet, the service is still operating at “calendar plus memory.” That model does not survive a busy month, a vacation, or a client who asks a precise question.

Four Ledgers of a Reconcilable Program

Reconciling planned versus actuals is bookkeeping. Four ledgers cover almost every operator failure mode.

1. The Schedule Ledger (Planned)

This is the intended work: which tenants should receive which training and which simulations in which window. A useful schedule ledger excludes inactive program rows. A paused or never-activated program is not a miss against the plan. Mixing those rows with live programs inflates “scheduled” activity and makes every variance look worse than it is.

2. The Activity Ledger (Actuals)

This is what ran: assignments created, reminders sent, simulations launched, policies presented, completions recorded. A campaign that was built and never sent is planned, not actual. Operators need an activity audit they can pull by month, across tenants, without reconstructing the story by hand.

3. The Population Ledger (Who Counted)

Actuals without a population denominator are theater. Completion rates are meaningless if the denominator includes deactivated users or excludes new hires. Status filters on the user list are how the denominator stays honest.

4. The Evidence Ledger (What You Can Show)

QBRs and audits do not accept “it is on the calendar.” They accept artifacts: activity exports, signed policy records, completion files that identify the company, and due dates that mean the same thing in every timezone.

LedgerRecordsFailure if missing
ScheduleIntended campaigns and assignments for active programsOperators defend a plan that includes dead rows
ActivityWhat actually launched, sent, completed, or failedCalendars get presented as proof of delivery
PopulationIn-scope users by status at the time of the workCompletion and click rates are computed on the wrong people
EvidenceExports, audit records, signed policies, branded reportsQBRs become slideware; reviews become a scramble

Where Planned and Actuals Diverge

The gap is rarely one dramatic outage. It is a pile of small, reasonable exceptions that never get rolled up.

DivergenceWhat it looks like in operationsHow it shows up to the client
Inactive program still on the calendarPaused or unused tenant still has monthly rows“You said you would train us” when the program was on hold
Campaign built, not sentDraft simulation sitting in a queueCalendar green, mailbox empty
Stale populationDeparted users still in the send list; new hires missingClick rates and completion rates that nobody trusts
Timezone due datesOn time in one region, late in anotherFalse overdue flags and noisy reminders
Partial sendOne group got the test; another did not“We ran phishing” is true for some people and false for others
Missing company identity on exportsUsers’ activity file with no tenant nameAnalysts cannot assemble a multi-tenant month without hand tagging
Assumed notificationsOperators believe users were warnedAlerts were never enabled; nothing fired

None of these is exotic. The difference between a fragile service and a defensible one is whether the exceptions are visible in a monthly close, or only when a client asks.

What Good Actuals Look Like in a QBR

Clients buy security awareness for compliance, insurance, and risk reduction. They renew when the MSSP can explain what changed. A reconcilable monthly pack is short and specific:

  1. Plan for the month. Training modules and phishing simulations that were supposed to run, limited to active programs.
  2. Actuals for the month. What assigned, what sent, what completed, what failed, with counts.
  3. Population snapshot. Active versus inactive users; notable joiners and leavers.
  4. Variance. Planned items that did not run, and actual items that were not on the original plan, such as off-cycle coaching.
  5. Exceptions and owners. Who is closing each miss, and by when.
  6. Trend, not trivia. Click rate, report rate, and completion rate against the same denominator as last month.

That pack is how a vCISO walks into a board pre-read without hoping the dashboard still matches memory. Keep the narrative on the variance. A client can live with a month that slipped if the miss is named and owned. A client cannot live with a month that looked green and was not.

A 90-Day Plan to Close the Gap

Do not rebuild the entire stack in a quarter. Install a monthly close.

Days 1–30: Name the Ledgers and Freeze Definitions

Write down, in one page, what “scheduled,” “sent,” “completed,” and “in scope” mean. Pick a monthly window. Decide which tenant states count as in-program. If a program is paused, it leaves the schedule ledger until it is reactivated.

Then pull last month for a handful of tenants using dashboards, CSVs, or API exports. Typical findings: inactive rows mixed into schedules, no send confirmation distinct from “campaign exists,” user lists that cannot be filtered by status, and activity files that omit the company name.

Days 1–30 outputOwner
Written definitions for scheduled, sent, completed, in-scopeProgram lead
Tenant-state rules (active, paused, offboarded)Operations
Baseline reconstruction of last month for a sample of tenantsAnalyst
List of missing artifactsProgram lead

Days 31–60: Instrument the Monthly Close

Turn the reconstruction into a repeatable pull. Prefer APIs and structured exports over screenshots. At minimum, the close should produce:

  • A schedule extract for the month that excludes inactive program rows.
  • An activity audit of what actually ran.
  • A user extract with status filters so the population ledger is exact.
  • A completion or users-activity file that identifies the company, so multi-tenant rolls do not require hand labeling.
  • Policy evidence that can be retrieved on demand, including signed-policy records.

Assign a close date. Many MSSPs use the second business day. The close is the internal packet that makes every later QBR cheap. Add exception codes: not sent, partial send, paused tenant, population mismatch, timezone due-date issue.

Days 31–60 outputOwner
Automated or scripted monthly extractsOperations
Exception taxonomyProgram lead
First real monthly closeAnalyst
Variance review meeting (30 minutes)Program lead

Days 61–90: Put Actuals in Front of Clients

Fold the close into client reporting. The QBR slide should show planned versus actuals before it shows click rates. Click rates on a month that did not run are a distraction. Use the same pack internally as a service-quality metric:

MetricWhy it belongs in the close
Schedule attainmentDistinguishes a delivery miss from a paused program
Population integrityStops bad denominators from entering QBRs
Close completenessMakes the pack a service standard, not a heroic extra
Time to explain a missMeasures whether evidence is actually retrievable

By day 90, a new operator should be able to answer “what was scheduled versus what ran last month?” without asking the person who “knows the calendar.” Do not treat the calendar as the system of record. Do not leave inactive programs in attainment math, compute rates on the wrong people, or assume notifications ran. If a warning channel is opt-in, it is not evidence unless enrollment is confirmed.

Closing the Evidence Gap in the Platform

The operator gap is a process problem first. It is also a platform problem. If the product cannot emit schedule, activity, population, and evidence as data, the MSSP will keep paying analysts to reconstruct the month.

Symbol Security’s 2026.08.9 release, in late August, added MSP-oriented APIs and exports aimed at this reconciliation: a users list with status filters for the population ledger; monthly schedules that exclude inactive program rows; a monthly activity audit of what actually ran; signed-policy download via API; company name on the Users’ Activity CSV so multi-tenant rollups do not require hand tagging; and a due-date timezone fix that removes false overdues.

Email Threat notifications, shipped in 2026.08.8, remain opt-in and off by default. Operators should not treat those alerts as something that went out for every tenant unless the tenant is actually enrolled.

Partners who want this wired into their own PSA, QBR pack, or client portal can start with the Symbol API. Providers who want the operating model without building it from scratch can become a partner through the MSSP program, or look at the vCISO Partner Program and Managed Program Services.

The Bottom Line

A calendar is a good start and a bad audit trail. MSSPs that run security awareness across many tenants will keep losing QBR time, and eventually renewals, if they cannot separate what was supposed to happen from what happened.

The fix is not a prettier dashboard. It is four ledgers, a monthly close, and a platform that emits planned versus actuals as data. Start with last month. Reconcile a sample of tenants. Then make the close boring.


References

  1. Fortinet, 2024 Security Awareness and Training Global Research Report. Survey of 1,850 leaders across 29 countries. Finds that 75% of campaigns are planned in advance and delivered monthly (34%) or quarterly (47%); 81% of organizations train monthly or quarterly.
  2. Verizon, 2026 Data Breach Investigations Report. Finds the human element present in 62% of breaches, up from 60% the prior year.
  3. IBM, Cost of a Data Breach Report 2026. Reports a global average breach cost of $4.99 million, a 12% increase over the prior year, and $1.93 million in average savings for organizations using AI and automation extensively in security.
  4. KnowBe4, 2026 Phishing by Industry Benchmarking Report. Reports a global baseline Phish-prone Percentage of 33.2%, reduced by 87% to 4.2% after one year of continuous training and simulated phishing. The largest gains arrive between month three and month twelve.
S

Written by Symbol Security

Cybersecurity experts dedicated to helping organizations protect their digital assets through comprehensive security awareness training and phishing simulations.