Procurement Document Library / Doc Set 2026
RFPrequestforproposaltemplate.com
Section: 04 / RequirementsSection Deep Dive
Section Guide / Requirements

Writing the RFP Requirements Section With REQ-IDs, MoSCoW, and Traceability

Bain & Company's procurement research found that RFPs with categorised, numbered requirements receive 35 percent more accurately scoped proposals than RFPs with prose-only requirements. The reason is simple: vendors can prioritise solution effort against the requirements that matter most when those requirements are labelled, numbered, and classified. This is the section structure that delivers that.

Part I / Numbering

The REQ-ID Convention

Every requirement gets a unique identifier. The standard format is a three letter prefix plus a three or four digit number: REQ-001, FNC-024, NFR-015. The prefix can encode the requirement category (FNC functional, NFR non functional, INT integration, SEC security, RPT reporting). The number is sequential within the prefix and never reused even when requirements are deleted; deleted requirements stay listed with status "Removed" for audit traceability.

Why numbering matters: vendors can respond requirement by requirement, scoring is defensible per REQ-ID, change requests reference specific IDs, and post-implementation audits can map each delivered feature back to the requirement it satisfies. Unnumbered requirements in prose get lost; vendors cherry pick the ones they meet and skip the ones they do not.

PrefixCategoryExample
FNCFunctionalFNC-014: User can submit timesheet for a week, with daily hour entry for up to 8 project codes
NFRNon-functional (performance, scalability)NFR-003: Timesheet submission completes within 2 seconds at p95 measured over a 30-day period
INTIntegrationINT-007: Approved timesheet data exported nightly to payroll system X via the documented REST API with reconciliation report
SECSecuritySEC-002: User authentication via SAML 2.0 SSO with multi-factor enforced for admin role
RPTReporting / analyticsRPT-011: Manager dashboard shows team utilisation by week with drill-down to individual; refresh under 30 seconds at 50-person team
UIUser interface / accessibilityUI-005: WCAG 2.2 AA conformance on all production templates as confirmed by axe DevTools audit at handover
DATData + retentionDAT-008: Timesheet records retained for 7 years per finance policy; deletion of records under 7 years requires admin override with audit log entry
OPSOperations + monitoringOPS-009: System exposes Prometheus-compatible metrics endpoint and ships logs to client SIEM in JSON format
Part II / MoSCoW

MoSCoW Prioritisation

Every requirement carries a priority. MoSCoW is the most widely used scheme because the four buckets are intuitive and the trade off conversation it forces is the right one. The buckets:

Must have

Non-negotiable. Failing any Must Have requirement disqualifies the proposal. Reserve this for true non-negotiables: regulatory compliance, security baseline, core functional capability without which the system has no business value. As a rule of thumb, 40 to 60 percent of requirements should be Must Have; if everything is Must Have, prioritisation has not been done.

Should have

Important but not non-negotiable. Vendor proposal that meets all Must Haves and most Should Haves is competitive. Vendor proposal that meets all Must Haves and few Should Haves goes to the bottom of the shortlist. Typically 25 to 35 percent of requirements.

Could have

Desirable but acceptable to defer. Useful for surfacing the wish-list items that may matter in a future phase. Acceptable for the vendor to mark Not Meet, partial meet, or roadmap. Typically 10 to 20 percent of requirements.

Will not have (this time)

Explicit exclusions. Items stakeholders might assume are in scope but are out of scope for this engagement. Listing them up front prevents disappointment at delivery. Typically 5 to 10 percent of the requirements list.

MoSCoW originates from DSDM (Dynamic Systems Development Method) but has long since become the cross-industry default. The BABOK Guide (Business Analysis Body of Knowledge) covers requirement prioritisation in chapter 8.

Part III / Rewrites

Rewriting Weak Requirements Into Testable Ones

The single most common requirements failure is writing requirements that cannot be tested. Untestable requirements produce subjective acceptance decisions and disputes at UAT. The rewrite pattern is to add the measurable attribute that lets a third party decide whether the requirement is met.

Weak (untestable)Testable rewrite
System must be user-friendlyREQ-UI-001: System achieves SUS (System Usability Scale) score of 80+ in UAT with 20 representative users
System must be fastREQ-NFR-003: Search results return within 2 seconds at p95 measured over 30 days on production traffic
System must be secureREQ-SEC-007: Authentication via SAML 2.0 SSO with MFA enforced; SOC 2 Type II report covering past 12 months provided under NDA
System must support mobileREQ-UI-004: Production templates render correctly on iOS Safari 16+ and Android Chrome 110+ at viewport widths 360px to 1920px
System must integrate with our HR systemREQ-INT-009: Nightly batch export to Workday in CSV format matching the agreed schema (Appendix C) with reconciliation report; failure alerts to client SRE on-call
System must be reliableREQ-NFR-006: 99.9% monthly uptime measured by independent third-party probe (Pingdom or equivalent); service credit if missed
System must scaleREQ-NFR-008: Supports 10,000 concurrent users with p95 response time under 2s; demonstrated in load test before go-live
System must be accessibleREQ-UI-002: WCAG 2.2 Level AA conformance verified by axe DevTools and manual audit by an accessibility specialist on 10 representative templates
Part IV / Traceability

The Traceability Matrix

Once requirements have IDs and priorities, build a traceability matrix that maps each requirement to its scope statement section, the vendor's proposed solution, and the acceptance test. The matrix is usually maintained in Excel or Confluence; for large engagements it lives in a dedicated requirements management tool (Jira, DOORS, Polarion). The matrix has columns:

The matrix becomes the single source of truth for the engagement. Change requests reference REQ-IDs and update the matrix. UAT scripts derive from the acceptance test column. Disputes about whether a feature was delivered reference the matrix row. For the requirements engineering framework see ISO/IEC/IEEE 29148 (requirements engineering) and the BABOK guide from IIBA.

Part V / FAQ

Frequently Asked Questions

Q.How many requirements should a typical RFP have?+
A.30 to 60 numbered requirements for an enterprise software RFP. Fewer than 20 typically signals insufficient analysis (you have not yet thought through what you need). More than 80 signals scope creep (you have included every wish from every stakeholder without prioritisation). The IEEE 29148 standard on requirements engineering describes the trade-offs between coverage and tractability.
Q.What does MoSCoW classification mean?+
A.Must-have, Should-have, Could-have, Will-not-have-this-time. Must-have requirements are non-negotiable; failing any one disqualifies the proposal. Should-have requirements are important but not non-negotiable. Could-have requirements are desirable but acceptable to defer. Will-not-have explicitly removes scope that stakeholders might assume is included. MoSCoW is widely adopted because the prioritisation forces stakeholders to choose what matters most, which is the hardest part of requirements work.
Q.Should requirements be functional or non-functional?+
A.Both. Functional requirements describe what the system does (a user can submit a timesheet). Non-functional requirements describe how the system behaves (the timesheet submits within 2 seconds at p95). Non-functional requirements (performance, security, accessibility, scalability, availability) often differentiate vendors more than functional requirements, because most established products meet most functional requirements. Split them in the RFP so each gets its own scoring.
Q.How do I write a testable requirement?+
A.Every requirement should pass the test: a third party can read the requirement and design a test that proves whether the vendor met it. 'The system must be user-friendly' fails this test. 'The system must achieve a System Usability Scale (SUS) score of 80+ in UAT with 20 representative users' passes. Apply the test consistently and your requirements will become more specific, which is usually what they need to be useful.
Q.What is a traceability matrix?+
A.A table that maps each requirement to other artifacts: the scope statement section it supports, the vendor's proposed solution, the acceptance test that will verify it, the UAT script that will demonstrate it. Traceability is the audit trail showing every requirement has an owner, a solution, and a test. It is the deliverable that makes implementation-phase change requests defensible (the change adds or removes a specific REQ-ID with documented impact).
Q.Should vendors respond requirement-by-requirement?+
A.Yes for must-have requirements; selectively for should-haves and could-haves. The standard format is a response matrix where vendors mark each must-have requirement as Fully meets, Partially meets, Will not meet, or Will meet via customisation. Partial-meets and customisation responses include detail on the gap and how it would be addressed. This forces vendor accountability per requirement and surfaces which products are weak in which areas.
Related Sections

Other RFP section deep-dives