Non-Functional Requirements
The qualities a system shall keep: each non-functional requirement with the category it belongs to and the measure that says when it is met, the categories, how to write a target and what reads them.
By the end of this page you will have written the qualities a project's system shall keep as non-functional requirements with a category and a measurable target, know which category each quality belongs to and what reads it, and know how a target is written so it can be tested.
A non-functional requirement says a quality the system keeps while it does what the functional
requirements say: how fast, how available, how safe, how accessible. It is written on the same
Requirements page with the same fields, plus two of its own:
the category the quality belongs to and the measure, the metric and the target that say
when the requirement is met. Non-functional requirements number on their own sequence
(CRM-NFR-3), and the house stack brings presets for most categories: a Laravel and Livewire
application has well-known answers for performance, security, accessibility and availability, and
the standards step of the intake wizard will offer them once it lands.
Before you begin
| You want to | You need |
|---|---|
| Read the non-functional requirements | requirement:view-any on the project. A client guest sees the agreed ones only. |
| Add or change one | requirement:create to add, requirement:update to change. |
Everything else on the page (opening, moving, deleting, the versions and the permissions) is as the functional requirements page describes.
Write a non-functional requirement
- Press New Requirement on the Requirements page and set the Kind to non-functional. The Quality and Measure fieldset appears.
- Pick the Category: the quality the requirement is about. The list below says what each covers.
- Type the Title and the Statement as for any requirement: one sentence in the shall form, in the client's words.
- Type the Measure: the metric, the target and where it is measured, such as p95 under 300 ms at 500 concurrent users, measured on staging.
- Fill the source, the owner, the priority and the verification method, and press Create Requirement.
The requirement takes the next number of the non-functional sequence (CRM-NFR-1 for the first),
starts as a draft and writes its first version. A non-functional requirement without a category is
refused; a category on a functional requirement is ignored.
A quality without a number cannot be tested
The system shall be fast is an opinion. The system shall render the tier page within 300 ms at the 95th percentile with 500 members browsing at once is a requirement a test can pass or fail. Put the number in the measure, say where it is measured, and pick the verification method that can produce it.
Pick the category
| Category | What it covers | A typical measure |
|---|---|---|
| Performance | How fast it answers and how much it handles under load. | p95 response time at a stated concurrency. |
| Scalability | How it grows with more users, data or traffic. | Users or rows it serves without a change of architecture. |
| Availability | How much of the time it is up, and when it may be down. | Monthly uptime, and the maintenance window. |
| Reliability | How rarely it fails and how it recovers when it does. | Error rate, recovery time, data loss allowed. |
| Security | How it keeps out who should be out and keeps data safe. | A standard met, a control in place, a test passed. |
| Privacy | How personal data is collected, kept and removed. | Retention period, erasure time, consent recorded. |
| Usability | How easily a person gets things done with it. | Task completion time or rate in a usability test. |
| Accessibility | How people with disabilities use it, and the standard it meets. | A WCAG level with zero failures in an audit. |
| Compatibility | The browsers, devices, systems and versions it works with. | The named browsers and versions it is tested on. |
| Maintainability | How easily the team changes it without breaking it. | Test coverage, build time, a quality gate kept green. |
| Portability | How it moves between environments, hosts or providers. | A deploy to a fresh host in a stated time. |
| Compliance | The laws, regulations and standards it must satisfy. | The regulation named and the evidence it is met. |
| Observability | How its health, errors and behaviour can be seen from outside. | Health checks, error reporting and logs retained for a period. |
| Localisation | The languages, formats, currencies and regions it serves. | The languages and formats it ships with. |
| Other | A quality none of the above names. | Whatever makes it testable. |
The status reference lists the categories with their codes. The readiness score will read which categories have a measure and which have none, and the standards presets will propose one requirement per category the house stack is held to.
Read the measure
The table shows the category beside the kind, and the detail flyout shows the Measure under the statement; a non-functional requirement without a measure reads No target set yet. Filter the page by category to see every requirement of one quality, or by kind to see the non-functional ones together.
All the fields
What happens next
- The category and the measure travel in every version of the
requirement and in the
changesofrequirement.updated. - The standards step of the intake wizard, the quality review and the readiness score will read the categories and the measures as those modules land.
Heimdall on this page
Quality in the flyout has Heimdall check that the measure names a number, a unit and a condition and that the verification method fits, beside everything it checks on any requirement, and score the requirement out of 100. See Quality review.
Heimdall reads the non-functional requirements through the same tools the MCP server offers and drafts them with a category and a measure when asked.
On the editor, Ask Heimdall beside each long field drafts it, improves it, shortens it, makes it testable or rewrites it as Given, When, Then; the draft waits under the field until you take it or drop it. See inline assists.
From the API and MCP
Requirements API
The same endpoints as functional requirements, with category and measure on a non-functional one.
create_requirement_draft
The MCP tool that drafts a requirement with its category and measure.
Permissions
| Action | Permission |
|---|---|
| See the non-functional requirements | requirement:view-any, requirement:view |
| Add or change one | requirement:create, requirement:update |
Frequently asked
Related
- Quality review — the Quality panel in the flyout: Heimdall's score and findings, and the badge on the row
- Traceability — the Links panel in the flyout: what this implements, verifies, depends on or relates to, read from either side
- Comments and mentions — the Discussion panel in the flyout: questions, answers, mentions, followers
- Attachments — the Files panel in the flyout: wireframes, specifications and samples pinned on the record
- Functional requirements — the page, the fields, the lifecycle and the versions
- Status reference — the categories and the verification methods
requirement.*webhook events
How is this guide?
Last updated on
Functional Requirements
The Requirements page of a project: what the system shall do, each requirement with its reference, statement, rationale, source, priority, verification method, status and owner, its review lifecycle and its versions.
Business Rules
The Business Rules page of a project: the decisions of the business the system must honour, each with its kind, statement, condition and action, exceptions, worked examples, authority, priority, dates in force, status and owner, its review lifecycle and its versions.