SOC 2 Control Matrix Template for Startups: Map Work to Proof
Build a SOC 2 control matrix for your startup with criteria, control owners, scope, cadence, source evidence, and review status. Use a worked access-control row.

A SOC 2 control matrix is a working map from the criteria in your proposed report to the controls your team actually runs. For each control, record its scope, owner, procedure, timing, source system, expected proof, and current status. Build it after you define the service and design the controls. A downloaded list of generic safeguards cannot tell you whether your system uses those safeguards or whether they cover the right people and data.
What goes in a SOC 2 control matrix template?
The AICPA Trust Services Criteria are criteria for evaluating controls over Security, Availability, Processing Integrity, Confidentiality, and Privacy. They are not a prescribed set of company procedures or a spreadsheet format. Management defines controls for the service in scope, its risks, and its commitments, then discusses the proposed report with the CPA firm.
Use these fields as a starting worksheet:
| Field | What to record |
|---|---|
| Criterion | The applicable criterion ID and category, with a link to the current source |
| Control ID and outcome | A stable ID and the result the activity is meant to achieve |
| Scope | The service, systems, accounts, people, or data the control covers |
| Activity and procedure | What the owner does and where the approved steps live |
| Owner and reviewer | Who operates the control and who checks the result when review is required |
| Timing | The schedule or event that starts the work and its due rule |
| Source and expected proof | The authoritative system, safe locator, and record that should exist after real operation |
| State and date | Proposed, implemented, operating, or blocked, with the date and basis for that assessment |
| Gap and next action | What is missing, who will fix it, and when to recheck |
Keep a criterion-to-control mapping separate from the control record if one activity supports several criteria. That lets you change one procedure without copying edits across many rows. One criterion can also need several controls. Neither relationship gives you a universal target count.
What does a copyable matrix row look like?
Suppose your team grants and removes production access through an identity provider. AICPA criterion CC6.2 addresses authorizing users before granting credentials and removing access when it is no longer authorized. Copy this CSV header and illustrative row into a sheet, then replace each field with your own facts:
criterion,control_id,outcome,scope,activity_procedure,owner,reviewer,trigger,due_rule,source_proof,status,status_date,gap_next_action,gap_owner,recheck_date
CC6.2,AC-01,"Access starts after approval and ends when no longer authorized","Production identity groups and governed systems","Approve requests before provisioning; remove access after departures",Identity owner,Service owner,"Each access request or departure","Before provision or within the approved departure window","Safe links to approval and removal records in approved systems",Proposed,YYYY-MM-DD,"Check procedure and source access",Engineering lead,YYYY-MM-DD
The dates and due rule are placeholders for your own approved schedule. Move the row from proposed to implemented only after management checks the actual scope, owner, procedure, and usable source. Mark it operating only after a real due occurrence has a dated record. If one control maps to another criterion, add a mapping rather than creating a second, diverging copy of its procedure.
This is an illustration, not an AICPA control requirement. A SaaS team with support tools, contractors, or separate cloud roles would need to test whether those paths belong in the control scope. The controls guide explains how to design the activity; the gap analysis guide helps record what is missing before relying on a candidate Type 2 period.
How do you keep the matrix current?
Review a row when a control owner, service boundary, procedure, source system, or customer commitment changes. Do not change a status to operating because a policy was approved or a test run succeeded. Check a real occurrence and its dated record. During a Type 2 period, preserve the prior control version and the date of each change so management can explain what operated when.
Before sharing the matrix with a CPA firm, reconcile its criteria and scope with the agreed engagement, then trace requested evidence to the source. A matrix is an index for management, not a substitute for the complete populations, operating records, or the CPA firm’s procedures. The Type 2 populations guide explains how to define a complete source set when sampling applies.
FileGRC can hold the proposed criteria, controls, owners, source components, and safe evidence references in a Git-native GRC workspace. JSON holds structured records, Markdown holds long-form work, and Git supplies the change history. Starter records are proposals, not compliance claims. Keep restricted exports in their source systems or approved stores. Your team operates the controls, and the CPA firm examines them and decides whether evidence is sufficient.
Run your SOC 2 program as files in Git.
Keep policies, controls, work, and evidence indexes in a repository your team and agents can inspect. Add optional FileGRC Autopilot email and Slack reminders to keep work moving.
Frequently asked questions
What is a SOC 2 control matrix?
It is management's working map between the criteria in its proposed report and the controls it designs for the scoped service. Useful rows identify the control, owner, procedure, operating frequency or trigger, source systems, expected evidence, and current status. The CPA firm evaluates controls during the examination.
Does the AICPA require this exact control matrix template?
No. The AICPA provides Trust Services Criteria for evaluating controls. This worksheet is a management method for organizing the mapping; its columns and sample control are not an AICPA-prescribed form. Confirm the criteria and control design for your planned examination with the CPA firm.
Should a startup put one row per criterion or one row per control?
Keep one stable control record for each distinct activity and map it to every applicable criterion. A criterion may need several controls, while one control may support several criteria. In a spreadsheet, use a separate mapping table or repeated mapping rows so you do not duplicate and drift the control wording.
Can a policy count as evidence that a control operated?
A policy can define an expected procedure, but it does not show that the team performed the control. Name the source system and dated operating record separately, such as an access approval ticket or review decision. The CPA firm decides what evidence is sufficient for its tests.
Should we put raw access exports in a Git control matrix?
No. Keep restricted identity exports and customer data in approved source systems or controlled storage. Put safe references and retrieval details in the matrix, and review classification before attaching any fixed artifact to a repository.
Can FileGRC replace the source systems in a control matrix?
No. FileGRC can connect proposed criteria, controls, owners, source components, and evidence references as JSON and Markdown records with Git history. Identity, infrastructure, monitoring, and other source systems still operate controls and produce proof. A CPA firm performs the SOC 2 examination.