SOC2

SOC 2 Control Testing Schedule: Annual Testing Planning

Priya Nandakumar found the gap on a Tuesday in October, nine months into a twelve-month Type II report window she had personally promised the board would be "boring." Priya runs compliance at Solstice Ledger, a mid-market payments platform that routes roughly $80 million a month in merchant.

SOC 2 Control Testing Schedule: Annual Testing Planning
Loading advertisement...
56

Priya Nandakumar found the gap on a Tuesday in October, nine months into a twelve-month Type II report window she had personally promised the board would be "boring." Priya runs compliance at Solstice Ledger, a mid-market payments platform that routes roughly $80 million a month in merchant settlements for about 600 e-commerce clients. Solstice's biggest prospect — a $2.4 million annual contract with a national retail chain — was contingent on a clean SOC 2 report covering January through December. When Priya pulled the evidence folder for CC6.1 (logical access provisioning) to prep for the auditor's Q4 interim testing, she found exactly one screenshot, dated January 14. Nobody had tested — or evidenced — that control again in nine months. The auditor's sample would almost certainly pull from March, June, and September. Two of those months had nothing.

That gap wasn't a control failure. Solstice's access provisioning process was, in fact, working fine. The failure was scheduling: nobody owned the calendar that said "test this control on this date, keep this evidence, here." Priya spent the next three weeks reconstructing evidence retroactively — a stressful, expensive, entirely avoidable scramble that a one-page testing calendar would have prevented. This article is the calendar Priya built afterward, and the one we now hand every client before their first audit period even starts.

Who this is for, and what you'll walk away with

This is for the compliance lead, engineering manager, or fractional CISO who has already mapped controls to criteria and now needs to keep them alive for the twelve (or six) months an auditor is going to sample from. You'll walk away with a cadence taxonomy for every control type, a sample annual test calendar you can adapt directly, a RACI model for who tests what, sampling guidance for testing your own controls before the auditor does, and a plan for tying manual testing to automated continuous monitoring so evidence never goes stale. If you've already read our guide to the SOC 2 control matrix, this is the next document you build: the matrix tells you what controls exist; the schedule tells you when you prove they work.

Why a testing schedule is a different document than a control matrix

Most teams building toward SOC 2 do the mapping exercise well: every Trust Services Criteria point of focus gets a control, every control gets an owner, every control gets a policy citation. Then they stop, because the control matrix looks complete on a spreadsheet. But a control matrix is a static snapshot — it says a control exists. A testing schedule is a living calendar that says a control operated, repeatedly, across the entire window an auditor is going to examine. For a Type II report, the auditor isn't asking "do you have an access review process?" They're asking "show me evidence this ran in March, and July, and November, consistently, the way your policy says it should."

That distinction is where most first-time (and plenty of second-time) SOC 2 programs get hurt. The Common Criteria alone span roughly thirty distinct control activities across CC1 through CC9 once you break policy commitments into discrete, testable actions. Add Availability, Confidentiality, or Processing Integrity criteria, and a mid-size service organization can easily be running 45-70 distinct controls simultaneously, each with its own natural cadence. Nobody holds that in their head. You need a document — a real, dated, owned calendar — or controls quietly lapse the way Solstice's did.

Continuous, daily, monthly, quarterly, annual: the five-cadence taxonomy

Every control you build has a natural frequency baked into what it's protecting. Forcing every control onto the same testing rhythm — either testing everything monthly (expensive, ignored) or testing everything annually (leaves nine-month gaps like Priya's) — is the single most common design mistake in a testing calendar. Start instead by sorting controls into five buckets.

Table 1: The Five Control-Testing Cadences

Cadence

Definition

Typical Trigger

Example Controls

Who Usually Tests

Continuous

Control operates and is evidenced automatically, every time an event occurs

Every login, deploy, or transaction

MFA enforcement, automated vulnerability scanning, real-time alerting

Automated tooling + periodic human spot-check

Daily

Control runs or is reviewed once per business day

Daily operational cycle

Backup job success checks, critical alert triage, SIEM queue review

System administrator, SOC analyst

Monthly

Control runs on a fixed monthly schedule

Calendar month close

Privileged access control review, vulnerability scanning remediation check, terminated-user access removal audit

Control owner, IT/security team

Quarterly

Control runs four times a year, often tied to a business cycle

Fiscal quarter

Vendor risk reassessment, firewall rule review, business continuity tabletop, access recertification

Control owner + manager sign-off

Annual

Control runs once per year, typically tied to policy renewal or a major event

Policy anniversary, fiscal year

Risk assessment refresh, full disaster recovery failover test, penetration test, policy re-approval

Leadership, internal audit, external testers

The taxonomy isn't arbitrary — it should trace back to how the control was worded when you built your SOC 2 control matrix. If your access review policy says "quarterly," your testing schedule tests it quarterly — not monthly because that feels safer, and not "as needed" because that's not a cadence an auditor can sample against. Consistency between what your policy commits to and what your calendar actually executes is, by itself, one of the top three things auditors flag in Type II report testing.

The observation period, and the coverage math nobody explains up front

A Type II audit period is commonly three, six, or twelve months. Whatever window you and your auditor agree to, every control in scope needs evidence spanning that entire window — not just a healthy sample near the start. Here's the coverage math that catches first-timers: for a control tested monthly, a twelve-month period requires 12 discrete evidence instances. For a control tested quarterly, four. For a control that's continuous (like MFA enforcement logs), the auditor will typically want a system-generated report covering the full period, not spot exports.

Table 2: Minimum Evidence Instances by Cadence and Observation Period Length

Cadence

3-Month Period

6-Month Period

12-Month Period

Continuous

1 full-period system export

1 full-period system export

1 full-period system export (or quarterly exports stitched together)

Daily

~63 business-day logs (sampled)

~126 business-day logs (sampled)

~252 business-day logs (sampled)

Monthly

3 instances

6 instances

12 instances

Quarterly

1 instance

2 instances

4 instances

Annual

1 instance (must fall inside window)

1 instance (must fall inside window)

1 instance

The trap in that last row: an annual control — say, your formal risk assessment refresh — has to have actually happened inside the observation window, not six weeks before it started. Auditors will not accept a risk assessment dated the prior November as coverage for a Type II period beginning in January unless you can also show ongoing risk monitoring inside the window itself. Build annual-cadence controls into the very first month of your period, not the last, so there's zero ambiguity about whether they land inside the window.

Mapping controls to cadence across the Common Criteria

Below is a representative mapping across CC1-CC9 plus the optional criteria — adapt the specific controls to your own SOC 2 control matrix, but the cadence logic transfers almost directly.

Table 3: Control Cadence by Common Criteria Category

Criteria

Representative Control

Recommended Cadence

Rationale

CC1 – Control Environment

Code of conduct attestation

Annual

Tied to policy renewal cycle

CC2 – Communication & Information

Security policy distribution and acknowledgment

Annual (new hires: continuous)

New hires trigger it continuously; existing staff re-attest yearly

CC3 – Risk Assessment

Formal risk register review

Quarterly (light) / Annual (full)

Full reassessment yearly; interim review each quarter

CC4 – Monitoring Activities

Internal control self-assessment

Quarterly

Balances cost against drift detection

CC5 – Control Activities

Control ownership and design review

Annual

Tied to control matrix refresh

CC6 – Logical & Physical Access

User access review

Monthly (privileged) / Quarterly (standard)

Privileged access carries higher risk

CC6 – Logical & Physical Access

Termination access removal

Continuous (each event)

Time-sensitive; must be evidenced per event

CC7 – System Operations

Vulnerability scanning and remediation

Continuous (scan) / Monthly (remediation review)

Scans run automatically; remediation is tracked monthly

CC7 – System Operations

Incident response tabletop

Annual

Resource-intensive; realistic once yearly cadence

CC8 – Change Management

Change approval and testing evidence

Continuous (per change)

Every production change generates its own evidence

CC9 – Risk Mitigation

Vendor risk reassessment

Quarterly (critical vendors) / Annual (all others)

Tiered by vendor criticality

Availability

Backup restoration test

Quarterly

Balances effort against RPO/RTO assurance

Availability

Full disaster recovery failover

Annual

High cost, high disruption, once-a-year sufficient

Confidentiality

Data classification spot-check

Quarterly

Confirms labeling discipline holds

Processing Integrity

Reconciliation accuracy check

Monthly

Tied to financial/operational close cycle

Building the calendar: a five-step methodology

Once cadence is assigned per control, the actual calendar-building process is mechanical, but skipping any of these five steps is exactly how Priya's gap happened.

  1. Start from your control matrix, not from a blank sheet. Every row in your SOC 2 control matrix becomes a row in the testing schedule. If a control isn't in the matrix, it shouldn't be tested; if it's in the matrix, it must have a cadence.

  2. Assign a named owner, not a team. "IT team" is not an owner an auditor — or a corrective action plan — can hold accountable. Name a person.

  3. Set a specific evidence date, not a month. "Sometime in March" becomes "the 15th of every month" or "the first Monday after quarter close." Specificity prevents the drift that ate Priya's Q1 access review.

  4. Define what "done" looks like before the first test runs. A screenshot, an exported CSV, a signed attestation, a ticket closed with an audit trail — decide the artifact type in advance so control owners aren't improvising evidence formats nine months in.

  5. Route every test through a reviewer. Self-testing without a second set of eyes reintroduces the exact segregation of duties problem SOC 2 is designed to catch. A manager, compliance lead, or internal audit function should review and countersign.

"The calendar isn't the control. It's the thing that makes sure the control keeps existing after the kickoff meeting excitement wears off." — Marcus Feldt, Audit Partner, Kessler & Voss CPAs

Sample annual test calendar

Below is a condensed, representative annual testing calendar for a mid-size SaaS service organization covering Security plus Availability criteria, across a twelve-month observation period beginning January 1. Adapt cadence and owners to your own environment — the structure is what matters.

Table 4: Sample Annual SOC 2 Control Testing Calendar

Month

Control(s) Tested

Cadence Type

Owner

Evidence Due

Reviewer

January

Annual risk assessment refresh; policy re-approval; new-hire access provisioning check

Annual + Continuous

CISO / Compliance Lead

Jan 31

Internal Audit

February

Privileged access review; vendor criticality tiering refresh

Monthly + Annual

IT Manager

Feb 15

Compliance Lead

March

Q1 standard access recertification; Q1 vendor risk reassessment (critical vendors); backup restore test

Quarterly

Access Owner / Vendor Manager

Mar 20

Internal Audit

April

Privileged access review; change management sample review

Monthly + Continuous

IT Manager

Apr 15

Compliance Lead

May

Security awareness training completion check; termination access audit

Monthly

HR + IT Security

May 15

Compliance Lead

June

Q2 standard access recertification; Q2 vendor risk reassessment; firewall rule review

Quarterly

Access Owner / Network Team

Jun 20

Internal Audit

July

Privileged access review; vulnerability remediation SLA check

Monthly

IT Manager

Jul 15

Compliance Lead

August

Mid-year internal control self-assessment; encryption key rotation check

Quarterly

Internal Audit Lead

Aug 20

CISO

September

Q3 standard access recertification; Q3 vendor risk reassessment; backup restore test

Quarterly

Access Owner / Vendor Manager

Sep 20

Internal Audit

October

Privileged access review; incident response tabletop exercise

Monthly + Annual

IT Manager / CISO

Oct 20

Internal Audit

November

Q4 standard access recertification; Q4 vendor risk reassessment; full DR failover test

Quarterly + Annual

Access Owner / Infrastructure Lead

Nov 20

CISO

December

Annual internal control self-assessment wrap-up; year-end policy attestation; readiness review for auditor interim

Annual

Compliance Lead

Dec 15

Executive Sponsor

This calendar deliberately front-loads the annual-cadence controls (risk assessment, policy re-approval) into January so they unambiguously fall inside the window, and back-loads the year-end self-assessment into December so gaps surface with time to remediate before the auditor's final fieldwork — not after.

Who tests: building a RACI for control testing

A recurring failure mode is treating "who tests the control" as self-evident. It rarely is, especially as headcount grows and the person who built a control isn't the person still running it a year later.

Table 5: Control Testing RACI

Role

Responsible (does the test)

Accountable (owns the outcome)

Consulted

Informed

Control Owner

Yes

Yes

—

—

Compliance/GRC Lead

Sometimes (for cross-functional controls)

No

Yes

Yes

Internal Audit Function

No (independent reviewer)

No

Yes

Yes

Department Manager

No

Yes (for team-level controls)

Yes

Yes

External SOC 2 Auditor

No (tests independently, later)

No

No

Yes

Executive Sponsor

No

Yes (organization-wide)

No

Yes

The critical design rule: the person who is Responsible for running a control's day-to-day operation should rarely also be the sole Accountable reviewer of whether it was tested correctly. That's not bureaucracy for its own sake — it's the same segregation of duties logic that shows up throughout CC5 and CC8. A control owner tests their own work; someone one level removed reviews the evidence before it's filed.

Sampling your own controls before the auditor does

Here's a nuance most internal testing programs miss: you don't need to test 100% of every instance of every control to have confidence it's working — the same audit sampling logic your external auditor will use applies internally too. If your access review control runs against 40 employees every month, you don't need to manually re-verify all 40 to catch drift; a defensible internal sample, applied consistently, does the job at a fraction of the cost.

Table 6: Internal Sample Sizing Guidance by Control Frequency

Control Frequency (Population Size)

Recommended Internal Sample

Minimum for High-Risk Controls

Continuous (100+ events/month)

10-15 random instances/month

25 instances/month

Daily (20-31 events)

5 business days/month

8 business days/month

Weekly (4-5 events/month)

2 of 4-5

3 of 4-5

Monthly (1 event)

Test of one (that instance)

Test of one, plus manager countersign

Quarterly (1 event)

Test of one

Test of one, plus internal audit review

Annual (1 event)

Test of one, full documentation

Test of one, plus executive sign-off

For low-frequency, high-consequence controls — an annual risk assessment, a full DR failover — a test of one is standard and expected; there's only one instance to test. For high-frequency, high-volume controls, calculate a defensible population (audit) and sample from it the way your external auditor will, so your internal deviation rate estimate is a realistic preview of what they'll find. If your internal sample turns up a 15% deviation rate on access reviews, assume the auditor's sample — likely larger and less forgiving — will surface it too, and fix it before interim testing, not after.

"We started running our own control testing with the exact same sampling math our auditor uses. It stopped being a surprise every fieldwork cycle — we already knew where the weak spots were." — Rafael Ibsen, Internal Audit Lead, Northfield Analytics

Evidence timing: making sure the Type II window is fully covered

Evidence timing is where testing schedules quietly fail even when the tests themselves happened. A control that ran correctly but whose evidence was captured outside the sampled evidence window, overwritten by a later export, or filed without a clear timestamp is functionally the same as a control that didn't run, from the auditor's perspective. Audit evidence has to be dated, attributable, and retained for the full period plus the time it takes to complete fieldwork.

Table 7: Evidence Requirements by Cadence

Cadence

Evidence Artifact

Minimum Retention

Common Pitfall

Continuous

System-generated log/report with timestamp range

Full period + 3 months post-report

Live dashboards that don't retain historical exports

Daily

Daily log or ticket with date stamp

Full period + 3 months post-report

Logs rotated/purged before evidence is pulled

Monthly

Dated screenshot, exported report, or signed checklist

Full period + 3 months post-report

Screenshot with no visible date/timestamp

Quarterly

Formal review document with reviewer sign-off

Full period + 3 months post-report

Review happened but was never documented

Annual

Formal report (risk assessment, DR test report, pen test report)

Full period + 3 months post-report, often 3 years for trend evidence

Report dated just outside the observation window

Build evidence capture into the test itself — never as an afterthought. If a control owner runs an access review in a live admin console, the test step should explicitly include "export and timestamp the results," not just "review the list." That single habit is the difference between Solstice's nine-month gap and a clean audit trail.

Continuous monitoring: the backbone that keeps the calendar honest

A testing calendar built entirely on manual, human-driven reviews will always be fragile — people go on leave, change roles, or simply forget. That's why the calendar should lean as heavily as possible on continuous monitoring tooling for the controls that support it, reserving manual testing for controls that genuinely require human judgment. Our companion piece on SOC 2 continuous monitoring goes deep on the tooling side; here, the relevant point is scheduling: continuous monitoring doesn't replace your testing calendar, it feeds it. An automated control (say, MFA enforcement) still needs a monthly or quarterly checkpoint where a human confirms the monitoring tool itself is still configured correctly and alerting as expected — monitoring the monitor.

Table 8: Manual Testing vs. Continuous Monitoring by Control Type

Control Type

Best Suited To

Human Checkpoint Needed

MFA/authentication enforcement

Continuous monitoring

Quarterly config verification

Vulnerability scanning

Continuous monitoring

Monthly remediation SLA review

Access provisioning/deprovisioning

Continuous monitoring + manual sample

Monthly sample review

Change approval workflow

Continuous monitoring (ticketing system)

Monthly sample review

Vendor risk assessment

Manual (judgment-based)

N/A — inherently manual

Risk assessment refresh

Manual (judgment-based)

N/A — inherently manual

Security awareness training

Continuous monitoring (LMS completion tracking)

Quarterly completion audit

Backup success

Continuous monitoring (job status)

Monthly restore-test spot-check

Incident response

Manual (tabletop, judgment)

N/A — inherently manual

Physical access logs

Continuous monitoring (badge system)

Quarterly review

The controls in the "manual" rows are exactly the ones your testing calendar should protect most jealously — they don't self-report, and if nobody schedules them, nobody notices they didn't happen until an auditor asks.

Tying the calendar to your internal audit program

A testing calendar without a review layer is just a to-do list — it becomes a control when someone independent checks that the to-dos actually happened, correctly, on schedule. That's the job of your internal audit program: a structured, recurring self-assessment that sits between "control owner says it's fine" and "external auditor tests it in six months." At minimum, internal audit should reconcile the testing calendar against actual evidence quarterly — not just check that a file exists, but verify dates, sample sizes, and reviewer sign-offs are all present and internally consistent.

Table 9: Quarterly Internal Audit Rhythm Against the Testing Calendar

Quarter

Internal Audit Activity

Output

Q1

Verify annual-cadence controls (risk assessment, policy re-approval) landed inside the window with complete evidence

Gap list + remediation owners

Q2

Spot-check monthly-cadence evidence from Q1 for completeness and consistency

Deviation rate estimate

Q3

Full reconciliation of calendar vs. evidence repository at the audit period's midpoint

Mid-year readiness memo to leadership

Q4

Pre-fieldwork dry run: pull the exact evidence set the external auditor is likely to sample

Final gap closure before interim/final testing

This rhythm is what would have caught Priya's gap in April, not October. A quarterly reconciliation against the calendar — a simple "did month 2, 3, and 4 all get their evidence filed?" check — takes an internal auditor perhaps two hours a quarter for a control set the size of Solstice's. It is, by a wide margin, the cheapest insurance in the entire SOC 2 program.

"Internal audit isn't there to catch people doing something wrong. It's there to catch the calendar quietly not happening, which is a much more common failure mode than anyone wants to admit." — Toni Okafor, CISO, Vantage Point Health

Monthly cadence in practice: access reviews and vulnerability remediation

Two control families dominate the monthly-cadence bucket for most service organizations: privileged access control reviews and vulnerability remediation tracking. Both are high-volume, high-consequence, and both degrade fast without a fixed monthly rhythm.

For access reviews, the monthly test isn't a full recertification (that's usually quarterly) — it's a targeted check on privileged accounts: admins, database superusers, production deploy keys, and anyone with standing access to customer data. The control owner pulls the current privileged roster, compares it against an HR roster of active employees in privileged roles, and flags mismatches. Evidence is the comparison itself, dated and signed.

For vulnerability scanning, the monthly test checks remediation SLA adherence, not scan execution (scans typically run continuously or weekly via tooling). The monthly checkpoint answers: are critical findings closed within the committed SLA (commonly 15-30 days for criticals, 30-90 for highs)? Evidence is a report from the vulnerability management platform showing open findings against their age, with anything past SLA flagged and assigned a corrective action plan.

Table 10: Monthly Control Testing Checklist Template

Step

Action

Evidence Captured

1

Pull current privileged access roster

System export, timestamped

2

Reconcile against HR active-employee list

Comparison worksheet

3

Flag and remediate mismatches within 5 business days

Ticket/remediation log

4

Pull vulnerability scan findings aged >SLA

Vulnerability platform report

5

Confirm remediation or documented exception for each aged finding

Corrective action plan or risk acceptance memo

6

Reviewer countersigns completed checklist

Signed checklist, filed with date

Quarterly cadence in practice: vendor risk and access recertification

Quarterly-cadence controls typically involve more judgment and more people than monthly ones, which is exactly why quarterly is the right frequency — testing them monthly would burn reviewer goodwill for marginal benefit, and testing them annually leaves too much drift. Standard access recertification (as opposed to the monthly privileged-account spot-check) asks every manager to review their direct reports' access to in-scope systems and confirm it's still appropriate. Vendor risk management reassessment for critical vendors follows a similar logic: confirm the vendor's SOC 2 report or equivalent attestation is current, check for any reported incidents, and reconfirm the relationship still needs the access it has.

Table 11: Quarterly Control Testing Checklist Template

Step

Action

Evidence Captured

1

Generate full access roster by system and department

System export

2

Route to each manager for review and attestation

Attestation form/tool export

3

Remove or downgrade flagged access within 10 business days

Access change ticket

4

Pull critical vendor list and confirm current attestation on file

Vendor register export

5

Flag any vendor with an expired attestation or reported incident

Vendor risk memo

6

Internal audit reviews completion rate and signs off

Signed quarterly summary

Completion rate matters as much as completion. An auditor sampling a quarterly access recertification will notice — and flag — if only 70% of managers actually attested. Track completion percentage as its own metric inside the calendar, with an escalation path (typically to the executive sponsor) for chronic non-responders.

Annual cadence in practice: risk assessment, DR testing, and pen testing

Annual-cadence controls are the most expensive per-instance and the easiest to under-resource, because "once a year" makes them feel optional in any given month. They aren't. A formal risk assessment refresh, a full disaster recovery failover test, and an annual penetration testing engagement are each, individually, load-bearing evidence an auditor will specifically ask for by name — there's no continuous-monitoring substitute for any of them.

Table 12: Annual-Cadence Controls and Lead Time Requirements

Control

Typical Duration

Lead Time to Schedule

Common Delay Cause

Formal risk assessment refresh

2-4 weeks

6 weeks (stakeholder calendars)

Waiting on department input

Full DR failover test

1-3 days (plus planning)

8-10 weeks (infrastructure booking)

Production-impact concerns delay scheduling

Annual penetration test

1-2 weeks execution, 2-4 weeks total

10-12 weeks (tester availability)

Booking too close to audit fieldwork

Policy suite re-approval

1-2 weeks

4 weeks

Legal/leadership review bottleneck

Incident response tabletop

Half-day

4 weeks

Scheduling conflicts across leadership

Security awareness training refresh

Ongoing over 4-6 weeks

4 weeks

LMS content update delays

The lead-time column is the one most first-time programs ignore, and it's the one that causes the most schedule slippage. A penetration test booked eight weeks before the auditor's fieldwork, with a testing firm that has a ten-week backlog, is a control that will not be evidenced in time. Build annual-cadence controls into the calendar with their real-world lead time counted backward from when the evidence is actually due — not from when you'd like to start.

Handling exceptions found during self-testing

Finding a control deficiency during your own internal testing is a good outcome — it means the calendar is doing its job. What happens next is where programs either compound the win or squander it. Every exception needs a documented severity, a root cause analysis, a corrective action plan with an owner and due date, and — critically — a note on whether it affects evidence you've already promised covers the full observation period.

Table 13: Exception Severity and Response Thresholds

Severity

Definition

Example

Response Timeline

Escalation

Critical

Control failed entirely; direct risk to in-scope data or systems

Terminated employee retained production access for 30+ days

Immediate remediation, root cause within 5 days

CISO + Executive Sponsor

High

Control operated inconsistently across multiple sampled instances

2 of 4 quarterly vendor reviews missing documentation

Remediate within 10 business days

Compliance Lead

Medium

Control operated but evidence quality was weak

Screenshot with no visible timestamp

Remediate within 15 business days

Control Owner + Manager

Low

Isolated, non-recurring gap with no risk exposure

One monthly checklist filed 2 days late

Note and monitor for recurrence

Control Owner

Track mean time to remediate as a program-level metric across all exceptions — it's one of the clearest indicators to leadership (and eventually to auditors, who often ask about it directly) that the self-testing program is functioning as a real control rather than a paperwork exercise.

Tooling: spreadsheets, GRC platforms, and where each earns its keep

You do not need an expensive GRC platform to run a credible testing calendar in year one. You do need discipline about where evidence lives and how reminders fire. Most organizations move through a predictable tooling progression as their control count and headcount grow.

Table 14: Testing Calendar Tooling Options

Tooling Approach

Best For

Strengths

Weaknesses

Shared spreadsheet + calendar reminders

<30 controls, first Type II cycle

Zero cost, fast to stand up

Manual reminders, easy to let slip, no audit trail of changes

Project management tool (recurring tickets)

30-60 controls, small compliance team

Automated recurring reminders, ticket-level evidence attachment

Not purpose-built; reporting requires manual rollups

Dedicated GRC platform

60+ controls, multiple frameworks, growing team

Automated evidence collection integrations, built-in sampling, audit-ready exports

Cost, implementation time, still needs a human owner

Continuous monitoring platform + GRC hybrid

Organizations layering SOC 2 with ISO 27001 or other frameworks

Cross-framework control mapping, real-time evidence freshness dashboards

Highest cost and complexity; overkill for a single-framework, single-entity program

Whatever tool you choose, the non-negotiable feature is a dated, timestamped, retained evidence trail per control per cadence instance — not a live dashboard that only shows current state. An auditor sampling August needs to see August's evidence in August's form, not a dashboard that only shows "green" as of today.

Table 15: Approximate Annual Effort by Organization Size

Organization Size

Control Count (typical)

Estimated Internal Testing Hours/Year

Recommended Tooling

Startup (under 50 employees)

35-50

80-120 hours

Spreadsheet + calendar reminders

Growth-stage (50-250 employees)

50-70

150-250 hours

Project management tool or entry-tier GRC platform

Mid-market (250-1,000 employees)

65-90

300-500 hours

Dedicated GRC platform

Enterprise (1,000+ employees)

85-120+

600+ hours

GRC platform integrated with continuous monitoring stack

These are illustrative planning figures based on programs we've built, not published benchmarks — use them to size a budget conversation, not as a guarantee.

Common pitfalls that break a testing schedule

Table 16: Testing Calendar Pitfalls and Fixes

Pitfall

Why It Happens

Fix

Cadence mismatched to policy wording

Nobody checked the policy said "quarterly" before scheduling monthly

Cross-check every calendar row against its source policy line

Owner turnover with no handoff

Control owner leaves; nobody reassigns the calendar row

Quarterly ownership audit as part of internal review

Evidence with no timestamp

Screenshots taken without date visible, or exports overwritten

Standardize evidence capture format per control type

Annual controls scheduled too close to fieldwork

Lead time for pen tests/DR tests underestimated

Schedule annual controls with lead time counted backward from evidence due date

Calendar exists but nobody reviews completion

Calendar built, then treated as "set and forget"

Route completion tracking through internal audit, not just the control owner

Testing "the way it's always been done" instead of what the control actually says

Institutional habit drifts from documented control language

Reconcile calendar against control matrix at every control matrix refresh

One person holds the whole calendar in their head

Small team, informal process

Document the calendar in a shared, access-controlled system from day one

"Every broken testing schedule I've ever inherited had the same root cause: it lived in someone's head, or in a spreadsheet only they opened. The fix is never clever — it's just making the calendar boringly, visibly shared." — Dana Whitcombe, GRC Platform Architect, Ledgerline Systems

Case study: Solstice Ledger's recovery, and what changed afterward

Priya's three-week scramble in October ultimately produced clean evidence for the missed months — Solstice's access provisioning control had, in fact, been operating correctly, it just hadn't been evidenced. The auditor accepted reconstructed evidence for two of the three gap months (with a management-response note) but flagged the third as a documented control deficiency in the final report, resolved through a corrective action plan rather than a clean pass. The $2.4 million retail contract still closed — the prospect's security team accepted the qualified note given the fast remediation — but Priya estimates the reconstruction scramble cost roughly 90 person-hours and several very tense weeks that a calendar would have eliminated entirely.

Table 17: Solstice Ledger — Before and After the Testing Calendar

Metric

Before (Year 1)

After (Year 2, with calendar)

Controls with evidence gaps at auditor interim testing

6 of 52

0 of 58

Hours spent reconstructing evidence retroactively

~90 hours

0 hours

Auditor-noted exceptions in final report

1 (access provisioning)

0

Internal audit hours spent on quarterly reconciliation

0 (didn't exist)

~32 hours/year

Time from auditor request to evidence delivery

3-5 business days (reconstruction)

Same day (pre-filed)

Case study: a healthcare SaaS platform's sampling overhaul

A healthcare technology client — call the company Meridian Health Systems, a clinical scheduling SaaS platform — came to us after their first SOC 2 Type II report drew an unusually high number of auditor sample exceptions: 18% of tested access-review instances failed to show adequate evidence, well above what the audit committee considered acceptable. The root cause wasn't that access reviews weren't happening; it was that the internal team had never applied a consistent internal sample before the auditor's sample arrived, so nobody had visibility into weak spots until fieldwork. We rebuilt their testing calendar with internal sampling mirroring the auditor's expected methodology (Table 6 above), plus a dedicated quarterly internal audit reconciliation step.

Table 18: Meridian Health Systems — Sampling Overhaul Results

Metric

Year 1 (pre-overhaul)

Year 2 (post-overhaul)

Auditor sample exception rate (access reviews)

18%

2%

Internal control self-assessment coverage

Not performed

100% of controls, quarterly

Average evidence retrieval time during fieldwork

6 business days

Same day

Auditor report opinion

Qualified

Unqualified

Case study: a DevOps-heavy company decentralizing test ownership

A fast-growing developer-tools company — we'll call it Corvid Build, roughly 180 employees at the time — had centralized nearly all control testing under a single compliance analyst, who was drowning in recurring checklist work by month four of their first observation period. We helped Corvid redesign the RACI so that engineering managers owned testing for controls directly tied to their teams (change management, configuration management, access to production), with the compliance function shifting into the Accountable and Consulted role rather than Responsible for every single test.

Table 19: Corvid Build — Decentralization Impact

Metric

Centralized Model

Decentralized Model

Compliance analyst hours/month on control testing

~65 hours

~18 hours

Controls tested on schedule (no lapses)

81%

97%

Engineering manager engagement in audit readiness

Low

High (direct ownership)

Time to close identified exceptions

21 days average

9 days average

Decentralizing ownership didn't reduce total effort — it redistributed it to the people closest to the control, who could test and remediate faster than a single centralized reviewer chasing down context from every team.

Connecting the schedule back to your control matrix

A testing calendar and a control matrix should be reconciled against each other at least twice a year — every new or modified control in the matrix needs a corresponding calendar entry, and every calendar entry should trace back to a specific matrix row and criteria point of focus. When these two documents drift apart — a common outcome when the matrix gets updated during a scoping change but nobody tells whoever owns the calendar — you end up either testing controls that no longer exist or, worse, having controls in scope with no testing plan at all.

Table 20: Control Matrix ↔ Testing Calendar Reconciliation Checklist

Check

Frequency

Owner

Every matrix control has a calendar row with assigned cadence

Semi-annual

Compliance Lead

Every calendar row traces to a matrix control ID

Semi-annual

Compliance Lead

New controls added mid-year get a calendar entry within 2 weeks

Ongoing

Control Owner + Compliance Lead

Retired controls are removed from the active calendar

Semi-annual

Compliance Lead

Cadence in the calendar matches cadence stated in policy

Semi-annual

Internal Audit

How internal testing differs from what your external auditor will do

Running your own testing calendar is not a substitute for the external examination — it's preparation for it, and the two exercises use related but distinct techniques. Understanding the difference keeps your internal program honest instead of just performative. Your external auditor's control testing procedures typically combine inquiry (asking the control owner how it works), observation, inspection of evidence, and — for the controls that matter most — re-performance, where the auditor independently redoes the control to confirm the result matches. A walkthrough usually happens once, early in fieldwork, to confirm the auditor's understanding of the process before formal sample selection and testing begins.

Table 22: Internal Self-Testing vs. External Auditor Testing

Dimension

Internal Self-Testing

External Auditor Testing

Purpose

Catch gaps early, build evidence discipline

Form an independent opinion on design and operating effectiveness

Frequency

Matches control cadence (monthly/quarterly/annual)

Typically twice: interim and final fieldwork

Sample size

Internally defined, often smaller

Determined by auditor methodology, risk, and population size

Techniques used

Mostly inspection of evidence, some re-performance

Inquiry, observation, inspection, and re-performance

Independence

Reviewer one level removed from control owner

Fully independent CPA firm

Outcome

Internal gap list and corrective action plans

Formal auditor's opinion in the SOC 2 report

The practical implication for your calendar: build in a light walkthrough of your own testing process — not just the underlying controls — at least once before the auditor's interim fieldwork. If your internal reviewer can't clearly explain how a control was tested and why the sample was sized the way it was, the auditor's version of that same conversation will surface the same weakness, at a worse time.

Subservice organizations: whose calendar are their controls on?

Not every control your service depends on is one you test yourself. If Solstice Ledger relies on a cloud infrastructure provider for physical data center security, that provider is a subservice organization — and depending on whether your report uses the carve-out method or the inclusive method, your testing calendar treats it very differently. Under the carve-out method (the far more common approach), the subservice organization's controls are excluded from your report entirely; your calendar's job is simply to track that their own attestation (usually their SOC 2 report) is current, request it on a fixed cadence, and review it for anything that affects your risk posture — not to re-test their controls yourself.

Table 23: Testing Calendar Treatment by Subservice Organization Method

Method

What Your Calendar Tracks

Typical Cadence

Carve-out (most common)

Confirm subservice organization's own report/attestation is current and reviewed

Annual, or whenever their report renews

Carve-out

Monitor for reported incidents or material changes at the subservice organization

Quarterly check-in

Inclusive

Test the subservice organization's controls directly, as if they were your own

Same cadence as equivalent internal controls

This is also where complementary user entity controls show up in reverse — just as your customers have controls they must operate for your system to work as intended, you likely have CUEC-equivalent obligations toward your own subservice organizations. Track those obligations on the same calendar, with the same owner-and-evidence-date discipline as any other control, rather than assuming a vendor contract alone satisfies the requirement. Our vendor management guide goes deeper on structuring the underlying due diligence process this calendar draws from.

Getting control owners to actually follow the calendar

A beautifully designed calendar that control owners quietly ignore is worse than no calendar at all, because it creates false confidence. Adoption is a people problem before it's a process problem, and the fixes that work are unglamorous but effective.

Table 24: Common Adoption Barriers and What Actually Fixes Them

Barrier

Why It Happens

What Fixes It

Control owner sees testing as "compliance's job"

Ownership was assigned without buy-in conversation

Involve owners in building their own cadence and evidence format

Reminders get lost in email

No dedicated tracking system, reminders buried

Move reminders into the tool the owner already uses daily (ticketing, calendar invites)

Evidence capture feels like extra work on top of the "real" task

Testing treated as a bolt-on step, not part of the workflow

Bake evidence capture into the existing process (e.g., auto-export on access review completion)

No visible consequence for missing a test

Nobody tracks completion at a level anyone senior sees

Report calendar completion rate to leadership monthly, tied to the metrics in Table 17-19

Owner changed roles and nobody updated the calendar

No trigger tied to HR offboarding/role-change process

Add calendar reassignment as a required step in any role-change checklist

The single most effective lever, in our experience, is the second-to-last row: visibility. A control owner who knows their completion rate shows up on a dashboard the CISO reviews monthly behaves very differently than one who believes nobody's watching until the audit.

First-time Type II periods vs. renewal periods

Your first Type II observation period and every renewal after it are testing calendar exercises, but they carry different risks. In year one, the calendar itself is unproven — you're testing whether the cadence and evidence formats you designed actually work in practice, often while control owners are still learning the process. In renewal years, the risk shifts toward complacency: teams that passed cleanly once assume the calendar will keep running itself, and drift creeps back in exactly the way it did for Solstice before year one's gap.

Table 25: Testing Calendar Priorities, First Period vs. Renewal

Consideration

First-Time Type II Period

Renewal Period

Primary risk

Untested processes, unclear evidence formats

Complacency, owner turnover, undocumented drift

Calendar changes needed

Build from scratch against the control matrix

Reconcile against prior-period gaps and any scope changes

Evidence retention

Establish retention standard for the first time

Confirm continuity — is there a gap between report periods needing a bridge letter?

Internal audit involvement

Heavier, since nothing is proven yet

Lighter but still quarterly — don't skip it because last year was clean

Common failure mode

Cadence doesn't match what's actually operationally feasible

Calendar exists on paper but ownership has silently lapsed

If a gap opens between when one Type II period ends and the next begins, your testing calendar for the new period needs to start early enough that the bridge letter covering the interim gap doesn't have to lean on assumptions instead of evidence. And whatever your prior final report noted as an exception, build an explicit calendar checkpoint in the first quarter of the new period to confirm it's genuinely resolved — auditors specifically look for repeat findings across periods, and a testing calendar is the cleanest way to prove one didn't recur.

A 90-day plan to stand up your first testing calendar

If you're starting from nothing — no calendar, no cadence assignments, just a control matrix and an approaching observation period — here's the sequence we walk clients through, compressed into three sprints.

Table 21: 90-Day Testing Calendar Build Plan

Days

Focus

Deliverable

1-30

Cadence assignment: tag every control in the matrix with continuous/daily/monthly/quarterly/annual, using policy language as the source of truth

Cadence-tagged control matrix

31-45

Owner assignment: name a specific person per control, confirm with their manager, document backup owners

Named owner list with backups

46-60

Evidence format definition: decide the artifact type and storage location per control before the first test runs

Evidence capture standard

61-75

First full test cycle: run every control's first scheduled test, including annual-cadence controls with long lead times

First evidence set filed

76-90

Internal audit reconciliation: independently verify the first cycle's evidence against the calendar, close any gaps

Readiness memo to leadership

Two things matter more than the sequence itself. First, start the clock on long-lead annual controls (penetration tests, DR failover exercises) in the very first sprint — by the time you're 60 days in, an eight-to-twelve-week testing firm backlog will already be biting if you haven't booked it. Second, treat day 90 as a checkpoint, not a finish line: the calendar runs for the full observation period, and the discipline that matters is what happens in month 7, not what happened in week 1.

Evidence discipline built during this 90-day window should connect directly into your broader evidence collection practice, and any changes made to production systems during testing setup should route through your normal change management process rather than being treated as one-off exceptions.

Turning the testing calendar into a business opportunity

It's tempting to treat a testing calendar as pure overhead — a compliance tax that exists to keep an auditor happy once a year. That framing undersells what the calendar actually buys you. A service organization that can produce same-day evidence for any control, for any month, on request isn't just audit-ready; it's sales-ready. Enterprise security reviewers increasingly ask pointed questions about how controls are tested, not just whether they exist, and "we test on a documented schedule with independent internal audit reconciliation" is a materially stronger answer than "we get everything together before the audit." Priya now uses Solstice's testing calendar — anonymized — as a talking point in security questionnaires, and it routinely shortens vendor security review cycles by a week or more.

The same discipline compounds if you're carrying more than one framework. Organizations layering ISO 27001 onto their SOC 2 program — a common move for companies selling into both US and European enterprise buyers — find that a well-built control testing calendar maps almost directly onto ISO 27001's Clause 9.1 monitoring/measurement and Clause 9.2 internal audit requirements, since both frameworks are fundamentally asking the same question: does this control still work, and can you prove it, continuously? If that's on your roadmap, our guides on running ISO 27001 and SOC 2 together and the ISO 27001, SOC 2, and NIST CSF crosswalk walk through where the testing cadences and evidence models overlap, so you're not running two parallel calendars from scratch. If you're still deciding which framework to pursue first, our comparison of how ISO 27001 and SOC 2 differ is a good starting point.

None of this works without leadership treating the calendar as load-bearing rather than optional. The single highest-leverage move we've seen: put testing calendar completion on the same executive dashboard as revenue and uptime metrics. Controls that are visible to leadership get tested on schedule. Controls that live only in a compliance analyst's inbox drift — quietly, and usually right before an auditor's sample lands on the exact month nobody covered.

"The board doesn't want to hear about our testing calendar in the abstract. They want to hear that when a customer asks for August's access review evidence, we hand it to them in an hour, not a week." — Liu Chen, Engineering Manager, Corvid Build

Get your testing calendar audit-ready

Building this calendar from scratch is faster with a starting structure rather than a blank spreadsheet. PentesterWorld's SOC 2 Control Matrix / RACI Template gives you a pre-built cadence and ownership structure you can adapt directly from Table 4 and Table 5 above, and our SOC 2 Gap Analysis Tool helps you sanity-check that every in-scope control actually has a testing plan before your auditor asks. If you're still early in the process, the SOC 2 Readiness Checklist and our SOC 2 Cost Calculator can help you budget the internal hours a calendar like this realistically requires (see Table 15). And if terminology across this article was new to you, bookmark the SOC 2 Glossary — it's the same reference we hand new compliance hires on day one.

A testing calendar won't make your controls better on its own. But it will make sure the good controls you've already built get to prove themselves, every month, for the full window an auditor — and increasingly, your customers — are watching. Build the calendar before the observation period starts, not during month nine.

Frequently asked questions

How far in advance should we build the testing calendar before the observation period starts?

At least 60-90 days. Annual-cadence controls with long lead times — penetration tests, DR failover exercises, formal risk assessments — need booking well before the period even opens, and cadence/owner assignment itself takes several weeks to do properly across a full control matrix.

Can the same person who operates a control also test it?

For routine, low-risk, high-frequency controls, yes, with a reviewer countersign layered on top. For higher-risk controls — access provisioning, change approvals, anything touching production data — segregation of duties matters, and the tester should be one step removed from day-to-day operation.

What happens if internal testing finds a gap mid-period?

Document it, run root cause analysis, remediate on the severity-appropriate timeline (see Table 13), and don't hide it. Auditors respond far better to a documented, self-identified, and remediated gap than to a clean-looking calendar that turns out to have been quietly incomplete. Our guide to SOC 2 exception management covers the full deficiency-handling workflow in depth.

Do we need a GRC platform to run a credible testing calendar?

No, especially for a first Type II cycle under roughly 50 controls. A well-maintained shared spreadsheet with calendar reminders and a disciplined evidence-filing habit is entirely credible. Platforms earn their cost once control count, headcount, and cross-framework complexity (SOC 2 plus ISO 27001, for instance) make manual tracking genuinely unwieldy.

How does the testing calendar relate to continuous monitoring tooling?

They're complementary, not competing. Continuous monitoring automates evidence capture for controls that generate machine-readable signals (access logs, scan results, uptime data); the testing calendar governs everything else, plus the periodic human checkpoints that confirm the automated tooling itself is still configured correctly. Neither replaces the other.

What's a realistic internal sample size if we can't test every instance of a control?

For high-volume monthly or continuous controls, 10-15 random instances per cycle is a defensible starting point, rising to 25+ for high-risk controls. For quarterly and annual controls, you're usually testing the single instance that exists — a test of one — with extra documentation rigor to compensate for the smaller sample.

Should vulnerability scanning and patching follow the same cadence?

No — keep them separate line items. Scanning is typically continuous or weekly and largely automated; remediation against SLA is the monthly-cadence checkpoint that actually needs human review. Our vulnerability management article breaks down scan cadence versus remediation cadence in more detail.

What if a control owner leaves mid-period?

Reassign immediately and document the handoff date in the calendar itself — an auditor may ask who owned a control for which months, and a clean ownership trail avoids ambiguity about accountability during a transition. This is exactly the kind of drift the quarterly ownership audit in Table 16 is designed to catch.

56

About the author

Cybersecurity Expert

Satish Kumar writes about cybersecurity, offensive security, and practical defense strategies on PentesterWorld.

Related Articles

Comments (0)

No comments yet. Be the first to share your thoughts!