What columns does a compliance matrix need?
At minimum: the requirement, its source reference, where it is answered, who owns it, and its status. Adding the evaluation link helps writers focus on what is scored.
| Column | What goes in it |
|---|---|
| Requirement ID | Your own numbering, for tracking |
| Source | Section, paragraph, page, attachment, or amendment |
| Requirement text | The exact language, quoted |
| Type | Submission instruction, evaluation criterion, or performance requirement |
| Response location | Volume, section, and page of your proposal |
| Owner | One named person |
| Status | Not started, drafted, reviewed, compliant |
How do you build a compliance matrix from a solicitation?
Read the full solicitation, including attachments, and extract every "shall," "must," and "will" statement along with each evaluation factor. Then map them to a proposal outline before anyone starts writing.
- 1. Collect the complete package: solicitation, attachments, amendments, and Q&A
- 2. Extract submission instructions, such as page limits, fonts, and volume structure
- 3. Extract evaluation criteria and the requirements they reference
- 4. Extract performance requirements from the statement of work
- 5. Build the proposal outline so each requirement has a home
- 6. Assign owners and review dates
Does every solicitation use Sections L and M?
No. Sections L and M are common in FAR Part 15 procurements, but task orders, GSA buys, and state or local RFPs often use a different structure. Build the matrix from the solicitation's actual format.
How do you keep the matrix current through amendments and Q&A?
Log every amendment and Q&A answer as its own source, then update or add the affected rows and flag them for re-review. The final compliance check should run against the latest amendment.
Most missed requirements we see come from late amendments that changed a page limit, a due date, or a form, not from the original solicitation.
