Business rules vs requirements, with examples
A business rule is a policy the business follows with or without software: only users with the Billing role may pay an invoice; invoices are due 30 days after the invoice date. A requirement says what a system must do — and some requirements exist only to enforce a rule. The rule belongs to the business and changes when the policy does; the requirement belongs to the system and changes when the design does. Below are the difference in one table, business rule examples by type, how to tell a rule from a requirement, how rules relate to functional requirements, business logic and acceptance criteria, a business rules template, and how to keep rules apart on a project.
The important point to remember is that the business rules are what we need to guide behavior. However you choose to implement or enforce those rules is a different matter. Do not confuse the two.
— Gladys S.W. Lam, Business Rules vs. Business Requirements, Business Rules Journal, 2024
Business rules vs requirements: the difference
| Aspect | Business rule | Requirement |
|---|---|---|
| What it is | A policy, definition or constraint of the business | Something a system must do, or a quality it must have |
| Without the software | Still true | Has nothing to apply to |
| Owned by | The business: finance, legal, operations | The project: sponsor, product owner, analyst |
| Changes when | The policy or the law changes | The design, the scope or the users’ needs change |
| Example | RULE-07: only users with the Billing role may pay an invoice |
FR-012: the Pay button is shown only to users with the Billing role |
In Lam’s words, “Business rules are lists of statements that tell you whether you may or may not do something, or … that give you the criteria and conditions for making a decision.” Ronald Ross puts the test plainly: “Business people would need business rules to operate the business even if there were no systems” (Business Rules Journal, 2013).
Karl Wiegers gives the cue for spotting one: when someone says that “only certain user classes can perform an activity under specific conditions”, they might be describing a business rule. Functional requirements can be derived to enforce it, but “As stated, though, business rules are not functional requirements” (Jama Software).
Whether a business rule is a kind of requirement is argued both ways. The Business Rules Manifesto opens with “Rules are a first-class citizen of the requirements world” (Business Rules Group); Ross, who edited it, calls the question “really a judgment call”. What matters in practice is keeping the two apart, so that each can change for its own reasons.
Business rule examples
The customer portal from the other templates on this site, where customers see and pay their company’s invoices. The rules belong to the client’s finance department; the portal is one of the places where they apply.
| ID | Business rule | Type |
|---|---|---|
RULE-01 |
Invoices are due 30 days after the invoice date | Derivation |
RULE-02 |
An invoice is overdue from the day after its due date until it is paid in full | Definition |
RULE-03 |
Every invoice belongs to one customer company | Fact |
RULE-04 |
An invoice’s open balance is its total minus the payments received | Derivation |
RULE-05 |
An invoice with payments received and an open balance above zero is Partly paid | Derivation |
RULE-06 |
An invoice not paid in full gets one payment reminder, seven days after its due date | Constraint |
RULE-07 |
Only users with the Billing role may pay an invoice | Constraint |
RULE-08 |
A payment may not be more than the invoice’s open balance | Constraint |
RULE-07 is the one behind the Pay button in the functional specification; RULE-06 is behind FR-016, the payment reminder; RULE-05 and RULE-08 came with the part payments change (CR-10). None of them mentions a screen.
Types of business rules
Wikipedia, following a white paper by the Business Rules Group, sorts business rule statements into four categories (Wikipedia):
| Category | What it does | Portal example |
|---|---|---|
| Definition of a business term | Fixes what a word means | RULE-02: overdue |
| Fact relating terms to each other | Says how things are connected | RULE-03: an invoice belongs to one company |
| Constraint | Limits what may happen | RULE-06, RULE-07, RULE-08 |
| Derivation | Turns one piece of knowledge into another, including calculations | RULE-01, RULE-04, RULE-05 |
Facts are the borderline case: “To say that a customer can place an order is NOT a business rule, but a fact,” the article says. They still belong in the same list, because the rules are built on them — in the Manifesto’s words, “Rules build on facts, and facts build on concepts as expressed by terms.” Wiegers’ phrases to listen for — “Must comply with”, “If (some condition is true), then (something happens)”, “Must be calculated according to (some formula)” — are in types of requirements.
How to tell a business rule from a requirement
- Would it still be true without the software? One answer on Stack Exchange says business rules “are the things you would still have to apply if you were doing this transaction or whatever 100 years ago (manually)” (Stack Exchange, 2014).
- Who can change it? If the finance department can change it without asking the project, it is a rule.
- Does it name a screen, a button, an email or a field? Then it is a requirement — at most, a requirement that enforces a rule.
- Does it hold beyond this system? “Rules apply across processes and procedures,” says the Manifesto. RULE-01’s 30 days apply whether an invoice is paid in the portal or by bank transfer.
| Statement | Rule or requirement |
|---|---|
| Only users with the Billing role may pay an invoice | Business rule (RULE-07) |
| The Pay button is shown only to users with the Billing role | Requirement that enforces it (FR-012) |
| An invoice not paid in full gets one reminder, seven days after its due date | Business rule (RULE-06) |
| The portal emails the reminder to the billing contact | Requirement (FR-016) |
| Invoices are due 30 days after the invoice date | Business rule (RULE-01) |
| The invoice list shows each invoice’s due date | Requirement (FR-010) |
| Card data is never stored by the portal | Neither: a constraint on the design |
Business rules vs functional requirements
One rule can be enforced in several ways. Lam’s example is a driver’s licence, checked by a police officer, a scanner or a card reader at a checkpoint: “Any one of these requirements can enforce the above 2 rules with different degrees of efficiency and effectiveness.” For RULE-07, the portal could hide the Pay button, refuse the payment on the server, or let anyone start a payment and have the finance team approve it by hand. The project chose the first two:
RULE-07 Only users with the Billing
role may pay an invoice.
Source: finance policy
Owner: finance lead
Enforced by
FR-012 The Pay button is shown only
to users with the Billing
role.
FR-013 The portal refuses a payment
request from a user without
the Billing role.
FR-014, paying an open invoice by card, stays as it is; the rule narrows who can use it. The Manifesto states the principle: “A rule is distinct from any enforcement defined for it.” And the direction runs one way. “Rules shouldn’t be changed to fit requirements,” Lam writes (Business Rules Journal, 2020): a rule that is hard to enforce is a reason to choose another way of enforcing it, not to bend the rule.
Keeping them apart pays off when the policy changes. If the finance department decides that the account owner may pay too, the change starts at RULE-07 and follows its links to FR-012 and FR-013. If the rule had been written only as FR-012, someone would have to find FR-013 by reading every requirement — and the code.
Business rules vs business requirements
A business requirement is a goal the project must reach: BR-03, shorten the time invoices stay unpaid, from 41 to 30 days. A business rule describes how the business works, before the project and after it: RULE-01, invoices are due in 30 days. Business requirements are met; business rules are followed.
Business rules vs business logic
“Business rules encoded in computer code in an operational program are known as business logic,” in Wikipedia’s definition. One Stack Exchange answer: “‘Business logic’ is the part of your code that specifically implements business rules” (Stack Exchange, 2021). Another notes what survives a rewrite in a new language: “what remains constant is the business rule about an invoice having at least one line item” (Stack Exchange).
The trouble starts when the code is the only place a rule is written. One Hacker News commenter on why old mainframes stay in service: the software on them “often implements very complex business rules that are otherwise undocumented (the code is the documentation)” (Hacker News, 2009). Another, on legacy code in 2025, lists among the real challenges “understanding implicit business rules, and inferring undocumented contracts and invariants” (Hacker News). A rule written where the business can read it, with an ID that the code and the tests point to, is one that someone can still check when the people who wrote the code have gone.
Business rules vs acceptance criteria
Acceptance criteria check that one requirement or story obeys the rule in its own situation; the rule itself is written once. The criteria for FR-012 and FR-013 cite it:
FR-012, FR-013 (enforce RULE-07)
Acceptance criteria
1. A user with the Billing role sees
the Pay button on an open invoice.
2. A user without the Billing role
sees the invoice, with no Pay
button.
3. A payment request from a user
without the Billing role is
refused, and nothing is charged.
When the rule changes, the criteria that cite it are the ones to rewrite. The payment reminder shows the chain. Its first rule said “an open invoice”; when customers could pay part of an invoice (CR-10), a partly paid invoice would never have been chased. The finance lead changed RULE-06 to “not paid in full” (decision D-7 in the decision log), FR-016 went to version 1.4, and its acceptance criteria gained a fourth case.
Business rules template
Copy it into a document or a spreadsheet, one block per rule. Square brackets are yours to fill in.
BUSINESS RULES
Project: [name]
Version: [x.y], [date]
RULE-[n] [the rule, in one sentence a
business person can check]
Type: [definition / fact /
constraint / derivation]
Source: [policy, law, contract,
standard, person]
Owner: [who may change it]
Version: [n], since [date]; [decision
or change request]
Enforced: [requirement IDs, or
"outside this system"]
Notes: [examples; exceptions, as
other rules]
Two rules from the portal, filled in:
RULE-06 An invoice not paid in full
gets one payment reminder,
seven days after its due
date.
Type: constraint
Source: finance policy on late
payment
Owner: finance lead
Version: 2, since 16 June (D-7);
version 1 said "an open
invoice"
Enforced: FR-016 (version 1.4)
RULE-01 Invoices are due 30 days
after the invoice date.
Type: derivation
Source: standard terms of sale
Owner: finance director
Version: 1
Enforced: outside the portal: the
accounting system sets the
due date; FR-010 shows it
How to keep business rules apart on a project
- Give rules a list and a prefix of their own (RULE-), separate from the requirements: a section of the functional specification or the SRS, or a catalog of their own when there are many.
- Write each one as a statement, in the business’s words. “Rules should be expressed declaratively in natural-language sentences for the business audience,” says the Manifesto — not as “the system shall”.
- One rule per statement. Exceptions are rules too: “Exceptions to rules are expressed by other rules.”
- Record the source and the owner — the policy or law it comes from, and the person who can change it.
- Link each rule to what enforces it: requirements, stories and tests. The traceability matrix can carry the rule IDs.
- Start every change at the rule, then follow its links. Ivan Walsh’s warning: “The smallest change in the wording of the business rule can have significant impacts on other business processes” (Business Rules Journal, 2012). A change impact analysis is where those impacts are listed.
- Keep the list short. “‘More rules’ is not better,” as the Manifesto puts it.
On agile teams, rules are easy to lose. The person who started a thread titled “Help! Management thinks agile means no documentation!” described a project “pretty complicated with lots of business rules which aren’t documented because ‘agile means no documentation.’” (r/businessanalysis, 2019). Stories close; rules outlive them. A rule written only in one story’s acceptance criteria drops out of sight when the story is done, so keep the rules on a page the team and the business can both read, and refer to them from stories by ID — see managing requirements in Jira.
Where Specroot fits
This is the problem Specroot works on: business rules kept as items of their own, linked to the requirements and acceptance criteria that enforce them, so that when a policy changes, everything built on the old rule is found. Specroot for agencies and consultancies.
Read next
- Types of requirements, with examples — Types of requirements in software engineering with one example each: business, user, functional, non-functional, rules, constraints. Plus requirements vs specs.
- Functional specification template for software — A free functional specification (FSD) template for software, a filled-in example, functional requirement examples, and FSD vs BRD, PRD and technical spec.
- Acceptance criteria template: Given/When/Then examples — Free acceptance criteria templates (Given/When/Then and checklist), with examples for user stories and APIs, and how they differ from the definition of done.