{"id":33560,"date":"2026-09-16T20:34:55","date_gmt":"2026-09-16T20:34:55","guid":{"rendered":"https:\/\/writegenic.ai\/content\/?p=33560"},"modified":"2026-09-16T20:34:57","modified_gmt":"2026-09-16T20:34:57","slug":"functional-design-specification-fds-guide","status":"publish","type":"post","link":"https:\/\/writegenic.ai\/content\/functional-design-specification-fds-guide\/","title":{"rendered":"Functional Design Specification: Template + Example"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Quick answer:<\/strong> A <a href=\"https:\/\/writegenic.ai\/content\/functional-design-specification\/\">functional design specification<\/a> describes what a system will do, in plain language, before anyone writes code or draws a wiring diagram. It says how the system behaves and how people interact with it \u2014 not how it&#8217;s built. Everyone signs it off, then engineering builds to it and testing proves it.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ol><li><a href=\"#what-is-a-functional-design-specification\">What Is a Functional Design Specification?<\/a><\/li><li><a href=\"#what-is-fds\">What Is FDS?<\/a><\/li><li><a href=\"#what-is-an-fds-not\">What Is an FDS Not?<\/a><\/li><li><a href=\"#what-is-the-difference-between-a-urs-fds-and-dds\">What Is the Difference Between a URS, FDS, and DDS?<\/a><\/li><li><a href=\"#why-does-the-fds-exist-the-v-model\">Why Does the FDS Exist? The V-Model<\/a><\/li><li><a href=\"#what-are-the-key-elements-of-a-functional-design-specification\">What Are the Key Elements of a Functional Design Specification?<\/a><\/li><li><a href=\"#functional-design-specification-template-copy-this\">Functional Design Specification Template (Copy This)<\/a><\/li><li><a href=\"#how-do-you-write-a-functional-statement-that-can-be-tested\">How Do You Write a Functional Statement That Can Be Tested?<\/a><\/li><li><a href=\"#functional-design-specification-example\">Functional Design Specification Example<\/a><\/li><li><a href=\"#which-standards-apply-to-an-fds\">Which Standards Apply to an FDS?<\/a><\/li><li><a href=\"#what-is-a-traceability-matrix\">What Is a Traceability Matrix?<\/a><\/li><li><a href=\"#who-should-review-and-sign-off-an-fds\">Who Should Review and Sign Off an FDS?<\/a><\/li><li><a href=\"#where-can-i-find-templates-for-functional-design-specifications-online\">Where Can I Find Templates for Functional Design Specifications Online?<\/a><\/li><li><a href=\"#8-mistakes-that-ruin-an-fds\">8 Mistakes That Ruin an FDS<\/a><\/li><li><a href=\"#fds-checklist\">FDS Checklist<\/a><\/li><li><a href=\"#how-writegenic-ai-fits-in\">How Writegenic AI Fits In<\/a><\/li><li><a href=\"#frequently-asked-questions\">Frequently Asked Questions<\/a><\/li><\/ol><\/nav><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>One thing most guides on this topic leave out:<\/strong> they explain what an FDS is and then never show you the structure. The template below is the part you actually need.<\/p>\n\n\n\n<h2 id=\"what-is-a-functional-design-specification\" class=\"wp-block-heading\">What Is a Functional Design Specification?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A functional design specification is a document that describes how a system will behave, in language a non-engineer can read and approve.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It answers three questions:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Question<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td>What does the system do?<\/td><td>&#8220;The pump starts when the tank level falls below 20%.&#8221;<\/td><\/tr><tr><td>How do people interact with it?<\/td><td>&#8220;The operator selects Auto or Manual on the HMI overview screen.&#8221;<\/td><\/tr><tr><td>What happens in each situation?<\/td><td>&#8220;On loss of level signal, the pump stops and Alarm A-104 activates.&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The critical rule: an FDS describes behaviour, not implementation.<\/strong> It says the valve closes. It does not say which PLC output card drives it, what the tag name is, or how the rung is written. Those belong in the design specification that comes next.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s not a stylistic choice. It&#8217;s what lets a plant manager, a QA reviewer, and a customer all read the same document and agree on it \u2014 none of whom read ladder logic.<\/p>\n\n\n\n<h2 id=\"what-is-fds\" class=\"wp-block-heading\">What Is FDS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FDS stands for Functional Design Specification.<\/strong> You&#8217;ll also see it written as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>FS<\/strong> \u2014 Functional Specification<\/li>\n\n\n\n<li><strong>FRS<\/strong> \u2014 Functional Requirements Specification<\/li>\n\n\n\n<li><strong>SFS<\/strong> \u2014 Software Functional Specification<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>These are the same document under different names.<\/strong> Which one your organisation uses depends on industry and house style more than on any real difference. Pharmaceutical manufacturing tends toward &#8220;Functional Specification,&#8221; industrial automation toward &#8220;Functional Design Specification,&#8221; and software teams toward &#8220;Functional Requirements Specification.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pick one name and use it consistently across a project. Mixing them in the same document set causes exactly the confusion the FDS exists to prevent.<\/p>\n\n\n\n<h2 id=\"what-is-an-fds-not\" class=\"wp-block-heading\">What Is an FDS Not?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Four things it gets mistaken for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It&#8217;s not a requirements document.<\/strong> The customer&#8217;s requirements live in the URS. The FDS is the <em>answer<\/em> to those requirements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It&#8217;s not a design document.<\/strong> It says what happens, not how it&#8217;s built. No tag names, no I\/O addresses, no code structure, no hardware model numbers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It&#8217;s not a test plan.<\/strong> But your test plan is written <em>from<\/em> it \u2014 more on that below.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It&#8217;s not a scope document or a contract.<\/strong> It may be referenced contractually, and it usually is, but its job is technical clarity rather than commercial terms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The single easiest test:<\/strong> if a sentence in your FDS would have to change because you switched PLC brand, it doesn&#8217;t belong in the FDS. Switching from Siemens to Rockwell shouldn&#8217;t change what the machine <em>does<\/em>.<\/p>\n\n\n\n<h2 id=\"what-is-the-difference-between-a-urs-fds-and-dds\" class=\"wp-block-heading\">What Is the Difference Between a URS, FDS, and DDS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the most common confusion in this subject, and getting it wrong causes real project damage.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Document<\/th><th>Question it answers<\/th><th>Written by<\/th><th>Language<\/th><\/tr><\/thead><tbody><tr><td><strong>URS<\/strong> \u2014 User Requirements Specification<\/td><td><em>What do I need?<\/em><\/td><td>The customer or end user<\/td><td>Business and operational<\/td><\/tr><tr><td><strong>FDS<\/strong> \u2014 Functional Design Specification<\/td><td><em>What will the system do?<\/em><\/td><td>The supplier or system integrator<\/td><td>Plain, behavioural<\/td><\/tr><tr><td><strong>DDS<\/strong> \u2014 Detailed Design Specification<\/td><td><em>How will it be built?<\/em><\/td><td>The engineering team<\/td><td>Technical<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Worked through one requirement:<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>URS:<\/strong> &#8220;The system must prevent the tank from overflowing.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FDS:<\/strong> &#8220;When the level transmitter LT-101 indicates 90% or above, the inlet valve XV-101 shall close within 2 seconds and high-level alarm A-201 shall activate. The valve shall remain closed until level falls below 85% and the operator acknowledges the alarm.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DDS:<\/strong> &#8220;LT-101 is a 4-20mA input on slot 3, channel 2 of the analogue input card. The comparison executes in FB_LevelControl, scan-scheduled at 100ms. XV-101 is driven from DO slot 5, channel 7, fail-closed on loss of signal.&#8221;<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Same requirement, three levels of detail. <strong>The FDS is the one the customer signs<\/strong>, because it&#8217;s the only one they can meaningfully review.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Where projects go wrong:<\/strong> the FDS gets written with DDS-level detail in it. The customer can&#8217;t review it, signs it anyway, and nobody discovers the misunderstanding until factory acceptance testing \u2014 which is the most expensive possible moment to find it.<\/p>\n\n\n\n<h2 id=\"why-does-the-fds-exist-the-v-model\" class=\"wp-block-heading\">Why Does the FDS Exist? The V-Model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The V-model is the framework connecting your specification documents to your testing. It&#8217;s the single most useful thing to understand about why an FDS matters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Picture a V. Specifications run down the left side. Testing runs up the right. <strong>Each specification pairs with the test that proves it.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Left side (specify)<\/th><th>Right side (verify)<\/th><\/tr><\/thead><tbody><tr><td><strong>URS<\/strong> \u2014 user requirements<\/td><td><strong>PQ<\/strong> \u2014 Performance Qualification: does it meet the user&#8217;s actual need?<\/td><\/tr><tr><td><strong>FDS<\/strong> \u2014 functional specification<\/td><td><strong>OQ<\/strong> \u2014 Operational Qualification: does it do what the FDS says?<\/td><\/tr><tr><td><strong>DDS<\/strong> \u2014 detailed design<\/td><td><strong>IQ<\/strong> \u2014 Installation Qualification: is it built and installed as designed?<\/td><\/tr><tr><td>Build<\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The consequence, and it&#8217;s the whole point:<\/strong> your <a href=\"https:\/\/www.thefdagroup.com\/blog\/a-basic-guide-to-iq-oq-pq-in-fda-regulated-industries\" target=\"_blank\" rel=\"noopener\">OQ test protocol<\/a> is written <em>directly from<\/em> your FDS. Every functional statement becomes a test case.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So a vague FDS produces a vague test protocol, which produces a system nobody can prove works. And an FDS statement you can&#8217;t test is a statement you&#8217;ll have to rewrite during validation, under time pressure, with the customer watching.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This pairing is why the &#8220;is it testable?&#8221; question below matters more than any formatting rule.<\/p>\n\n\n\n<h2 id=\"what-are-the-key-elements-of-a-functional-design-specification\" class=\"wp-block-heading\">What Are the Key Elements of a Functional Design Specification?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Twelve sections. Not every project needs all twelve, but the ones you skip should be a decision rather than an oversight.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Document control.<\/strong> Version, author, approvers, revision history, and the date. Sounds like bureaucracy; it&#8217;s the thing that stops two people building from different revisions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Introduction and purpose.<\/strong> What this document covers, what system it describes, and who it&#8217;s for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Scope.<\/strong> What&#8217;s in, and explicitly what&#8217;s out. Undefined scope is the most common source of dispute at acceptance testing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. References.<\/strong> The URS this responds to, applicable standards, related drawings, and any prior documents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Definitions and abbreviations.<\/strong> Every acronym, every tag prefix convention, every term that means something specific here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. System overview.<\/strong> A short narrative plus a block diagram. What the system is, what it&#8217;s part of, what it connects to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. Operating modes.<\/strong> Manual, Auto, Semi-Auto, Maintenance, Emergency Stop. Define each one, what&#8217;s available in it, and how you move between them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>8. Functional requirements.<\/strong> The core of the document \u2014 the sequences, the control logic, the behaviour. Usually the longest section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>9. Operator interface.<\/strong> HMI screen layout, navigation, what each control does, what each indicator means, security levels and who can do what.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>10. Alarms and events.<\/strong> An alarm list with cause, priority, effect, and the action required. Plus how alarms are acknowledged and reset.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>11. Interlocks and safety.<\/strong> What prevents what, under which conditions. Usually presented as a matrix.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>12. Reporting and data.<\/strong> What&#8217;s logged, what&#8217;s trended, what&#8217;s reported, and retention requirements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Two sections people skip and regret:<\/strong> operating modes and interlocks. Behaviour that&#8217;s obvious in Auto is often undefined in Manual, and that gap surfaces during commissioning.<\/p>\n\n\n\n<h2 id=\"functional-design-specification-template-copy-this\" class=\"wp-block-heading\">Functional Design Specification Template (Copy This)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Copy this. Nothing is gated.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FUNCTIONAL DESIGN SPECIFICATION\nProject:            ________________\nDocument number:    ________  Revision: ____\nPrepared by:        ________  Date: ________\nReviewed by:        ________  Date: ________\nApproved by:        ________  Date: ________\n\nREVISION HISTORY\nRev | Date | Author | Description of change\n\n1. INTRODUCTION\n1.1 Purpose\n1.2 Intended audience\n1.3 Related documents (URS ref, standards, drawings)\n\n2. SCOPE\n2.1 In scope\n2.2 Out of scope\n2.3 Assumptions and constraints\n\n3. DEFINITIONS AND ABBREVIATIONS\nTerm | Meaning\n\n4. SYSTEM OVERVIEW\n4.1 System description (narrative)\n4.2 Block diagram\n4.3 Major equipment list\n4.4 Interfaces to other systems\n\n5. OPERATING MODES\nMode | Description | Available functions | Entry condition | Exit condition\nManual      |  |  |  |\nAuto        |  |  |  |\nSemi-Auto   |  |  |  |\nMaintenance |  |  |  |\nE-Stop      |  |  |  |\n\n6. FUNCTIONAL REQUIREMENTS\n6.1 &#91;Function area 1]\n    FR-001  When &#91;condition], the system shall &#91;action] within &#91;time].\n    FR-002  ...\n6.2 &#91;Function area 2]\n    ...\n   (Number every statement. You will reference these in testing.)\n\n7. OPERATOR INTERFACE\n7.1 Screen hierarchy and navigation\n7.2 Screen descriptions (one per screen)\n    - Purpose\n    - Displayed values and units\n    - Controls and their effect\n    - Security level required\n7.3 Colour and symbol conventions\n7.4 User roles and permissions\n    Role | View | Operate | Configure | Administer\n\n8. ALARMS AND EVENTS\nTag | Description | Cause | Priority | System effect | Operator action | Reset\nA-101 |  |  |  |  |  |\n\n9. INTERLOCKS AND SAFETY\n9.1 Interlock matrix\n    Condition | Prevents | Overridable? | By whom\n9.2 Emergency stop behaviour\n9.3 Safe state on power loss\n9.4 Safe state on communication loss\n\n10. REPORTING AND DATA\n10.1 Logged values and frequency\n10.2 Trends\n10.3 Reports (content, format, trigger)\n10.4 Data retention\n\n11. TESTING REFERENCE\n    Each FR number maps to an OQ test case.\n    Traceability matrix attached as Appendix A.\n\nAPPENDIX A \u2014 TRACEABILITY MATRIX\nURS ref | FDS ref (FR-xxx) | Test ref (OQ-xxx) | Status\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Two notes on using it.<\/strong> Number every functional requirement from the start \u2014 retro-fitting numbers to a finished FDS is miserable and error-prone. And fill in section 5 before section 6, because most behaviour is mode-dependent and defining modes late means rewriting the functional section.<\/p>\n\n\n\n<h2 id=\"how-do-you-write-a-functional-statement-that-can-be-tested\" class=\"wp-block-heading\">How Do You Write a Functional Statement That Can Be Tested?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the skill the whole document rests on, and almost no guide covers it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A functional statement is testable if someone who didn&#8217;t write it can read it, perform the test, and get an unambiguous pass or fail.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Four rules:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Name the trigger.<\/strong> What specific condition causes this?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Name the action.<\/strong> What exactly happens?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Give a measurable value.<\/strong> A number, a time, a state \u2014 something observable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. One behaviour per statement.<\/strong> If your statement contains &#8220;and also,&#8221; split it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Before and after:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Untestable<\/th><th>Testable<\/th><\/tr><\/thead><tbody><tr><td>&#8220;The system shall be user-friendly.&#8221;<\/td><td>&#8220;Any screen shall be reachable from the overview screen in no more than 2 navigations.&#8221;<\/td><\/tr><tr><td>&#8220;The pump shall start automatically.&#8221;<\/td><td>&#8220;FR-012: When level in T-101 falls below 20%, pump P-101 shall start within 5 seconds, provided the system is in Auto mode and no interlock is active.&#8221;<\/td><\/tr><tr><td>&#8220;Alarms shall be clearly displayed.&#8221;<\/td><td>&#8220;FR-045: Unacknowledged high-priority alarms shall flash red at 1Hz in the alarm banner on every screen until acknowledged.&#8221;<\/td><\/tr><tr><td>&#8220;The system shall respond quickly.&#8221;<\/td><td>&#8220;FR-067: Screen transitions shall complete within 1 second under normal load.&#8221;<\/td><\/tr><tr><td>&#8220;The valve closes on high level and the alarm sounds and the pump stops.&#8221;<\/td><td>Split into FR-021, FR-022, FR-023 \u2014 three statements, three test cases.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Words that make a statement untestable:<\/strong> user-friendly, intuitive, robust, efficient, appropriate, adequate, as required, quickly, reliably, where necessary. Every one of these will be interpreted differently by the writer and the tester.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Use &#8220;shall&#8221; consistently.<\/strong> Convention across engineering specifications is that &#8220;shall&#8221; means a binding requirement, &#8220;should&#8221; is a recommendation, and &#8220;may&#8221; is optional. Mixing them casually creates arguments about what was actually committed to.<\/p>\n\n\n\n<h2 id=\"functional-design-specification-example\" class=\"wp-block-heading\">Functional Design Specification Example<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Five worked examples in the format you&#8217;d actually write them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Tank fill sequence<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>FR-101<\/strong> When the operator presses START on the Tank Fill screen and the system is in Auto mode, the sequence shall begin at Step 1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-102<\/strong> Step 1: Inlet valve XV-101 shall open. If XV-101 open feedback is not received within 5 seconds, the sequence shall abort and alarm A-110 shall activate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-103<\/strong> Step 2: The sequence shall hold until level transmitter LT-101 indicates 85%.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-104<\/strong> Step 3: XV-101 shall close. Sequence complete indicator shall illuminate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-105<\/strong> At any step, pressing STOP shall close XV-101 and place the sequence in Held state, retaining the current step number.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-106<\/strong> From Held state, pressing START shall resume at the retained step. Pressing RESET shall return the sequence to Step 0.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Note what this does: it defines the abort path, the hold behaviour, and the resume behaviour. Most FDS sequences define only the happy path, and every problem in commissioning comes from the ones that don&#8217;t.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Motor start\/stop<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>FR-201<\/strong> In Manual mode, pressing START on the P-101 faceplate shall energise the motor starter, provided no interlock in the P-101 interlock group is active.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-202<\/strong> If a start is attempted while an interlock is active, the start shall be inhibited and the interlock reason shall be displayed on the faceplate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-203<\/strong> Motor running status shall be derived from the starter auxiliary contact, not from the output command.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-204<\/strong> If run feedback is not received within 3 seconds of the start command, the output shall de-energise and alarm A-220 (P-101 Failed to Start) shall activate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-205<\/strong> Loss of run feedback while running shall de-energise the output and activate alarm A-221 (P-101 Unexpected Stop).<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><em>FR-203 is the kind of statement that prevents a real class of bug \u2014 status derived from the command rather than feedback tells the operator the motor is running when it isn&#8217;t.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Alarm cause and effect<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tag<\/th><th>Description<\/th><th>Cause<\/th><th>Priority<\/th><th>System effect<\/th><th>Operator action<\/th><\/tr><\/thead><tbody><tr><td>A-110<\/td><td>T-101 valve fail to open<\/td><td>XV-101 open feedback absent &gt;5s after command<\/td><td>High<\/td><td>Sequence aborts to Step 0<\/td><td>Check valve and air supply, reset<\/td><\/tr><tr><td>A-201<\/td><td>T-101 high level<\/td><td>LT-101 \u2265 90%<\/td><td>High<\/td><td>XV-101 closes, inlet sequence inhibited<\/td><td>Acknowledge; sequence resumes below 85%<\/td><\/tr><tr><td>A-202<\/td><td>T-101 high-high level<\/td><td>LSHH-101 discrete input active<\/td><td>Critical<\/td><td>All inlet valves close, hardwired<\/td><td>Manual reset at panel required<\/td><\/tr><tr><td>A-220<\/td><td>P-101 failed to start<\/td><td>Run feedback absent &gt;3s after start<\/td><td>Medium<\/td><td>Output de-energised<\/td><td>Investigate, reset on faceplate<\/td><\/tr><tr><td>A-310<\/td><td>LT-101 signal fault<\/td><td>Input &lt;3.6mA or &gt;20.4mA<\/td><td>High<\/td><td>Level control to Manual, inlet inhibited<\/td><td>Check transmitter and wiring<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><em>A-202 is hardwired rather than software \u2014 worth stating explicitly, because it changes how it&#8217;s tested and whether software can defeat it.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Interlock matrix<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Interlock condition<\/th><th>Prevents<\/th><th>Overridable<\/th><th>By whom<\/th><\/tr><\/thead><tbody><tr><td>T-101 level \u2265 90%<\/td><td>XV-101 open<\/td><td>No<\/td><td>\u2014<\/td><\/tr><tr><td>T-101 level \u2264 5%<\/td><td>P-101 start<\/td><td>Yes<\/td><td>Maintenance role, logged<\/td><\/tr><tr><td>E-Stop active<\/td><td>All motor starts, all valve opens<\/td><td>No<\/td><td>\u2014<\/td><\/tr><tr><td>P-101 local isolator off<\/td><td>P-101 start<\/td><td>No<\/td><td>\u2014<\/td><\/tr><tr><td>Comms fault to remote I\/O<\/td><td>Auto mode entry<\/td><td>Yes<\/td><td>Engineer role, logged<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><em>The &#8220;overridable&#8221; and &#8220;by whom&#8221; columns are the ones that get left out, and they&#8217;re the ones auditors ask about.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. HMI screen behaviour<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>FR-401<\/strong> The Overview screen shall display current level, mode, and running status for T-101 and P-101.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-402<\/strong> Selecting the P-101 symbol shall open the P-101 faceplate as a modal popup.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-403<\/strong> Mode selection controls shall be visible to all roles but enabled only for Operator role and above.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-404<\/strong> Configuration values shall be editable only by Engineer role and above. Each change shall be recorded in the audit log with user, timestamp, old value, and new value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FR-405<\/strong> Equipment symbols shall follow the colour convention in Section 7.3: green running, grey stopped, red faulted, flashing red unacknowledged alarm.<\/p>\n<\/blockquote>\n\n\n\n<h2 id=\"which-standards-apply-to-an-fds\" class=\"wp-block-heading\">Which Standards Apply to an FDS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Which standards apply depends heavily on your industry. The ones most likely to be relevant:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Standard<\/th><th>Covers<\/th><th>Relevant when<\/th><\/tr><\/thead><tbody><tr><td><strong>GAMP 5<\/strong> (ISPE)<\/td><td>Good practice for validating automated systems<\/td><td>Pharmaceutical, biotech, medical devices \u2014 any regulated manufacturing<\/td><\/tr><tr><td><strong>ISA-88<\/strong> (S88)<\/td><td>Batch control models and terminology<\/td><td>Batch processes: pharma, food and beverage, specialty chemicals<\/td><\/tr><tr><td><strong>ISA-95<\/strong> (S95)<\/td><td>Integration between enterprise and control systems<\/td><td>MES\/ERP interfaces, plant-level data<\/td><\/tr><tr><td><strong>IEC 61511<\/strong><\/td><td>Functional safety for the process industry<\/td><td>Safety instrumented systems, SIL-rated functions<\/td><\/tr><tr><td><strong>IEC 61131-3<\/strong><\/td><td>PLC programming languages<\/td><td>Referenced by the DDS more than the FDS<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Two practical points.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In GAMP 5 contexts, the FDS is a formal validation deliverable<\/strong>, not just an engineering document. It has to be approved, version-controlled, and traceable both to the URS above it and the OQ protocol below it. The traceability matrix isn&#8217;t optional there.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Safety functions usually live in a separate document.<\/strong> If your system has SIL-rated safety functions, those typically belong in a Safety Requirements Specification governed by IEC 61511, not in the general FDS. Reference it; don&#8217;t absorb it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Standards get revised.<\/strong> Cite the edition you&#8217;re working to \u2014 &#8220;GAMP 5 Second Edition&#8221; rather than just &#8220;GAMP 5&#8221; \u2014 and confirm which version your client or regulator expects.<\/p>\n\n\n\n<h2 id=\"what-is-a-traceability-matrix\" class=\"wp-block-heading\">What Is a Traceability Matrix?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A traceability matrix links every user requirement to the FDS statement that answers it, and every FDS statement to the test that proves it.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>URS ref<\/th><th>Requirement<\/th><th>FDS ref<\/th><th>Test ref<\/th><th>Status<\/th><\/tr><\/thead><tbody><tr><td>URS-012<\/td><td>Prevent tank overflow<\/td><td>FR-201, FR-202<\/td><td>OQ-014, OQ-015<\/td><td>Passed<\/td><\/tr><tr><td>URS-013<\/td><td>Operator can stop the fill at any point<\/td><td>FR-105, FR-106<\/td><td>OQ-016<\/td><td>Passed<\/td><\/tr><tr><td>URS-021<\/td><td>All configuration changes recorded<\/td><td>FR-404<\/td><td>OQ-031<\/td><td>Open<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It does two jobs.<\/strong> It proves nothing was forgotten \u2014 every URS line has an FDS answer. And it proves nothing was invented \u2014 every FDS statement traces back to a requirement somebody asked for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>That second one matters commercially.<\/strong> An FDS statement with no URS reference is scope you&#8217;re building for free, and the matrix makes it visible before you build it rather than after.<\/p>\n\n\n\n<h2 id=\"who-should-review-and-sign-off-an-fds\" class=\"wp-block-heading\">Who Should Review and Sign Off an FDS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The FDS is worthless unless the right people actually read it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Who should review, and for what:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Reviewer<\/th><th>Checking<\/th><\/tr><\/thead><tbody><tr><td><strong>End user \/ operator<\/strong><\/td><td>Does this match how we actually work?<\/td><\/tr><tr><td><strong>Process or production engineer<\/strong><\/td><td>Is the sequence correct for the process?<\/td><\/tr><tr><td><strong>Controls engineer<\/strong><\/td><td>Is this buildable as written?<\/td><\/tr><tr><td><strong>QA \/ validation<\/strong> (regulated industries)<\/td><td>Is it traceable and testable?<\/td><\/tr><tr><td><strong>Safety<\/strong><\/td><td>Are interlocks and safe states correct?<\/td><\/tr><tr><td><strong>Project manager<\/strong><\/td><td>Does it match the contracted scope?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Three things that make reviews work:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Give reviewers a specific question.<\/strong> &#8220;Please review&#8221; gets skimmed. &#8220;Please confirm section 5 matches how you run the plant on night shift&#8221; gets read.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Get an operator in the room.<\/strong> The person who runs the equipment finds more real problems in an hour than anyone else finds in a week \u2014 they know what actually happens when things go wrong.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Freeze it after sign-off.<\/strong> Changes after approval go through formal change control with a revision number. An FDS that quietly drifts is worse than no FDS, because people build from different versions believing they agree.<\/p>\n\n\n\n<h2 id=\"where-can-i-find-templates-for-functional-design-specifications-online\" class=\"wp-block-heading\">Where Can I Find Templates for Functional Design Specifications Online?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Four sources, with honest trade-offs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. The template above.<\/strong> It&#8217;s complete, it&#8217;s free, and it isn&#8217;t behind a signup form. Start there.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Your own past projects.<\/strong> Usually the best source, because it already reflects your house conventions, your client&#8217;s expectations, and the lessons from your last commissioning. If your organisation has done this before, that template beats anything generic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Your client&#8217;s template.<\/strong> In regulated industries and large end users, the client often mandates their own format. <strong>Ask before you write anything<\/strong> \u2014 rewriting a finished FDS into someone else&#8217;s structure is a week you won&#8217;t get back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Industry bodies and vendors.<\/strong> ISPE publishes guidance in the GAMP 5 context. Major automation vendors publish specification templates aligned to their platforms. System integrator associations sometimes share examples.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Two cautions about template hunting.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Most free templates online are empty section headings.<\/strong> They give you a table of contents, not a specification. The value is in knowing what a good functional statement looks like \u2014 which is why the examples above matter more than the structure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Watch for templates built for the wrong document.<\/strong> A lot of pages titled &#8220;functional specification template&#8221; are actually software requirements templates, and they&#8217;ll steer you toward user stories and acceptance criteria rather than sequences and interlocks. Check that the example content matches your domain before adopting the structure.<\/p>\n\n\n\n<h2 id=\"8-mistakes-that-ruin-an-fds\" class=\"wp-block-heading\">8 Mistakes That Ruin an FDS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Implementation detail in the FDS.<\/strong> Tag names, I\/O addresses, and code structure belong in the DDS. Their presence means the customer can&#8217;t review it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Untestable statements.<\/strong> &#8220;User-friendly,&#8221; &#8220;robust,&#8221; &#8220;as required.&#8221; Every one becomes an argument during OQ.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Unnumbered requirements.<\/strong> You can&#8217;t build a traceability matrix from prose.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Only the happy path.<\/strong> Define abort, hold, resume, and fault behaviour. That&#8217;s where commissioning problems live.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Undefined operating modes.<\/strong> Behaviour that&#8217;s obvious in Auto is often undefined in Manual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. No safe state on power or comms loss.<\/strong> Two specific questions that need two specific answers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. Sign-off without an operator.<\/strong> The people who run the equipment find the real problems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>8. Silent revisions.<\/strong> Changes after approval need a revision number and change control, or people build from different documents.<\/p>\n\n\n\n<h2 id=\"fds-checklist\" class=\"wp-block-heading\">FDS Checklist<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] Document control complete, with version and approvers<\/li>\n\n\n\n<li>[ ] Scope states what&#8217;s out, not only what&#8217;s in<\/li>\n\n\n\n<li>[ ] Every URS requirement has a corresponding FDS statement<\/li>\n\n\n\n<li>[ ] Every functional statement is numbered<\/li>\n\n\n\n<li>[ ] Every statement has a trigger, an action, and a measurable value<\/li>\n\n\n\n<li>[ ] One behaviour per statement<\/li>\n\n\n\n<li>[ ] &#8220;Shall,&#8221; &#8220;should,&#8221; and &#8220;may&#8221; used consistently<\/li>\n\n\n\n<li>[ ] No implementation detail \u2014 would survive a change of PLC brand<\/li>\n\n\n\n<li>[ ] All operating modes defined, with entry and exit conditions<\/li>\n\n\n\n<li>[ ] Abort, hold, resume, and fault paths defined for every sequence<\/li>\n\n\n\n<li>[ ] Alarm list includes cause, priority, effect, and operator action<\/li>\n\n\n\n<li>[ ] Interlock matrix includes overridability and by whom<\/li>\n\n\n\n<li>[ ] Safe state defined for power loss and comms loss<\/li>\n\n\n\n<li>[ ] HMI security roles and permissions specified<\/li>\n\n\n\n<li>[ ] Traceability matrix attached<\/li>\n\n\n\n<li>[ ] Reviewed by an operator, not only by engineers<\/li>\n\n\n\n<li>[ ] Applicable standards cited with edition<\/li>\n<\/ul>\n\n\n\n<h2 id=\"how-writegenic-ai-fits-in\" class=\"wp-block-heading\">How Writegenic AI Fits In<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An FDS is a document, and writing it is where the project time goes. The engineering decisions take a workshop; turning them into a complete, consistently structured, reviewable document takes considerably longer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/writegenic.ai\/\">Writegenic AI<\/a> is an AI writing platform with 300+ templates and support for 120+ languages, including a set built for technical and project documentation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/writegenic.ai\/content\/ai-generators\/ai-for-project-management\/\">AI for Project Management<\/a><\/strong> \u2014 drafting project and engineering documents from structured inputs<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/writegenic.ai\/content\/requirements-management-plan\/\">Requirements management plan generator<\/a><\/strong> \u2014 for the requirements process your FDS answers to<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/writegenic.ai\/content\/project-management-tools\/\">Project management tools<\/a><\/strong> \u2014 templates for the surrounding deliverables<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/writegenic.ai\/content\/prompt-generator\/\">AI Prompt Generator<\/a><\/strong> \u2014 build one reusable prompt encoding your section structure and statement format, so every FDS comes out consistent<\/li>\n\n\n\n<li><strong>120+ languages<\/strong> \u2014 useful on international projects where the client reviews in their own language<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Where the line sits, clearly.<\/strong> A writing tool turns your decisions into a complete document and keeps ten specifications consistent with each other. It cannot decide what the sequence should be, know that this client&#8217;s operators always override that interlock, or judge whether a statement is testable in your specific test environment. Those are engineering judgements, and in a regulated context a named person has to approve them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Draft the document with the tool. Keep the engineering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/writegenic.ai\/register\">Start with Writegenic AI free<\/a>.<\/p>\n\n\n\n<h2 id=\"frequently-asked-questions\" class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1789590250751\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What is a functional design specification?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>A document describing how a system will behave \u2014 what it does, how people interact with it, and what happens in each situation \u2014 written in plain language so non-engineers can review and approve it. It describes behaviour, not implementation.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590255151\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What is FDS?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>FDS stands for Functional Design Specification. You&#8217;ll also see the same document called a Functional Specification (FS), Functional Requirements Specification (FRS), or Software Functional Specification. The name varies by industry; the purpose doesn&#8217;t.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590256163\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What are the key elements of a functional design specification?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Twelve sections: document control, introduction, scope, references, definitions, system overview, operating modes, functional requirements, operator interface, alarms and events, interlocks and safety, and reporting and data. A traceability matrix is usually attached as an appendix.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590257188\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What is the difference between a URS and an FDS?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The URS states what the user needs, written by the customer in business language. The FDS states what the system will do in response, written by the supplier. The URS is the question; the FDS is the answer.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590258299\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What is the difference between an FDS and a DDS?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The FDS describes behaviour \u2014 the valve closes on high level. The DDS describes implementation \u2014 which output card drives the valve, which function block runs the logic, at what scan rate. If a statement would change because you switched PLC brand, it belongs in the DDS.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590259815\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Who writes the functional design specification?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Usually the system integrator or supplier, in response to the customer&#8217;s URS. It&#8217;s then reviewed and signed off by the customer, operations, engineering, and \u2014 in regulated industries \u2014 QA.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590261115\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>How does the FDS relate to testing?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Through the V-model. Your Operational Qualification test protocol is written directly from the FDS: every numbered functional statement becomes a test case. That&#8217;s why every statement needs to be testable.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590367346\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>How long should a functional design specification be?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>As long as the system requires. A single skid might need 15 pages; a full plant control system can run to several hundred. Length isn&#8217;t the measure \u2014 completeness and testability are. Every sequence needs its abort, hold, and fault paths defined regardless of page count.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590368854\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Does the FDS include safety functions?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Usually by reference rather than in full. SIL-rated safety functions typically belong in a separate Safety Requirements Specification governed by IEC 61511. The FDS should reference it and describe how the control system interacts with it.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590369784\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What makes a functional statement testable?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>A named trigger, a named action, a measurable value, and one behaviour per statement. &#8220;The pump shall start automatically&#8221; isn&#8217;t testable. &#8220;When level falls below 20%, pump P-101 shall start within 5 seconds in Auto mode with no interlock active&#8221; is.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590409342\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Can AI write a functional design specification?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It can draft the document structure and turn your decisions into consistent, well-formatted statements. It cannot make the engineering decisions, know your client&#8217;s conventions, or judge testability in your environment. In regulated industries a named person still has to review and approve it.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1789590411196\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What standards apply to an FDS?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Depends on industry. GAMP 5 for regulated pharmaceutical manufacturing, ISA-88 for batch control, ISA-95 for enterprise integration, and IEC 61511 for process safety functions. Cite the edition you&#8217;re working to and confirm what your client or regulator expects.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Related reading:<\/strong> <a href=\"https:\/\/writegenic.ai\/content\/requirements-management-plan\/\">Requirements Management Plan<\/a> \u00b7 <a href=\"https:\/\/writegenic.ai\/content\/risk-assessment-plan-template\/\">Risk Assessment Plan Template<\/a> \u00b7 <a href=\"https:\/\/writegenic.ai\/content\/risk-response-strategies\/\">Risk Response Strategies<\/a> \u00b7 <a href=\"https:\/\/writegenic.ai\/content\/ai-generators\/ai-for-project-management\/\">AI for Project Management<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A functional design specification describes what a system does, not how it&#8217;s built. Get the full FDS template, 12 key sections, and 5 worked examples.<\/p>\n","protected":false},"author":4,"featured_media":33645,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[97],"tags":[],"class_list":["post-33560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-project-management-guide"],"authors":[],"_links":{"self":[{"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/posts\/33560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/comments?post=33560"}],"version-history":[{"count":1,"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/posts\/33560\/revisions"}],"predecessor-version":[{"id":33646,"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/posts\/33560\/revisions\/33646"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/media\/33645"}],"wp:attachment":[{"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/media?parent=33560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/categories?post=33560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/writegenic.ai\/content\/wp-json\/wp\/v2\/tags?post=33560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:, Cached Timestamp: 2026-09-22 22:02:41 UTC -->