Financial Model Specification Template (FAST Standard)
Model purpose, timeline, sheet map, inputs register, calculation blocks, outputs, FAST conventions, scenarios, checks, version control, tests, limitations
Cómo usar: Use it before building or rebuilding a budget, forecast, project finance or transaction model, and as the baseline for model review. Fill purpose, decisions and scope with the decision owner first, then the inputs register with data owners. The main pitfall is adopting a modelling standard by name without listing which rules apply, so nobody can test compliance.
Vista previa
Financial Model Specification: [Model name]
Specification for a spreadsheet-based financial model, written before the model is built or rebuilt and kept up to date while it is in use: purpose, users and decisions, scope and timeline, architecture and sheet map, inputs register, calculation logic and key formulas, outputs, design conventions, scenarios and sensitivities, checks and error flags, version control, testing and review, and known limitations. Design conventions are informed by the FAST Standard (version 02c, July 2019, FAST Standard Organisation, CC BY 4.0); the ICAEW Financial Modelling Code is cited by name as further reading. Replace every
[bracketed]value and every row marked Example. This is a document format, not financial, investment, tax, legal or accounting advice.
Document control
| Field | Value |
|---|---|
| Document ID | [FMS-NNN] Example: FMS-001 |
| Model name and ID | [Model name], [MOD-NNN] Example: Corvid Integrated Planning Model, MOD-CCG-001 |
| Model type | [Integrated three-statement / project finance / valuation / budget / transaction] Example: integrated three-statement planning and covenant model |
| Platform | [Microsoft Excel version / Google Sheets / other] Example: Microsoft Excel (Microsoft 365), single workbook, no macros |
| Model file location | [Path or document management link] |
| Model version covered | [vX.Y] Example: v3.0 |
| Model owner | [@head-of-fpa] |
| Builder | [@financial-modeller] |
| Reviewer | [@independent-reviewer] |
| Model risk tier | [High / Medium / Low per policy] Example: Medium (feeds board budget and lender covenant tests) |
| Version | [1.0] |
| Status | [Draft / In review / Approved / Superseded] |
| Owner | [@head-of-fpa] |
| Approvers/reviewers | [@cfo], [@independent-reviewer] |
| Last updated | YYYY-MM-DD |
| Classification | [Confidential: finance only] |
Approvals
| Role | Name | Decision | Date |
|---|---|---|---|
| Model owner | [@name] | [Specification agreed] | YYYY-MM-DD |
| Decision owner (main user) | [@name] | [Specification agreed] | YYYY-MM-DD |
| Independent reviewer | [@name] | [Review scope agreed] | YYYY-MM-DD |
| Chief Financial Officer | [@name] | [Approved for build / Approved for use] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@name] | Purpose, scope and inputs agreed |
| 0.9 | YYYY-MM-DD | [@name] | Example: Calculation logic, checks and test plan added for model v3.0 rebuild |
| 1.0 | YYYY-MM-DD | [@name] | Example: Approved after independent review; model v3.0 released for FY2027 budget |
Contents
- Purpose, users and decisions
- Scope, timeline and granularity
- Architecture and sheet map
- Inputs register
- Calculation logic and key formulas
- Outputs and reports
- Design conventions
- Scenarios and sensitivities
- Checks and error flags
- Version control and change management
- Testing and model review plan
- Known limitations and qualifications
- Glossary and references
1. Purpose, users and decisions
[Two or three paragraphs: the business question, the decisions, the users and the consequence of an error.]
Example: MOD-CCG-001 is Corvid Commerce Group's single source for the annual budget, the quarterly rolling forecast and the quarterly covenant tests. It turns operational drivers (ARR movements, commerce orders, services days, hiring plan, capital projects, FX rates) into a monthly income statement, balance sheet and cash flow for the parent, each of the four operating subsidiaries and the group. The board approves the budget from its outputs and the lenders receive covenant calculations derived from it, so an error could lead to a wrong funding decision or a misstatement to lenders.
| ID | Decision supported | Decision owner | Frequency | Key outputs used |
|---|---|---|---|---|
| DEC-001 (Example) | Approve the annual budget and capex envelope | Board | Annual | Budget P&L, cash flow, capex, KPIs |
| DEC-002 (Example) | Re-allocate spend and hiring within the year | Executive committee | Quarterly | Rolling forecast, scenario outputs |
| DEC-003 (Example) | Confirm covenant compliance and liquidity headroom | CFO, treasurer | Quarterly and on demand | Covenant tests, headroom, 18-month cash |
| DEC-004 (Example) | Size dividend and facility drawings | Board, treasurer | Annual | Cash flow, net debt, leverage |
| User group | Use | Access |
|---|---|---|
| FP&A team (Example) | Run cycles, update inputs, produce outputs | Edit inputs and controls |
| Budget holders | Review their cost centre outputs | Read-only extract |
| Treasurer | Covenant and liquidity outputs | Read-only model |
| Board and lenders | Receive outputs in reports, never the model | No model access |
Out of scope: [list]. Example: statutory consolidation and tax filings, transfer pricing calculations, valuation for impairment testing (Impairment Test Memo, finance/impairment-test-memo), weekly cash (13-Week Cash Flow Forecast, finance/13-week-cash-flow-forecast).
2. Scope, timeline and granularity
| Dimension | Specification |
|---|---|
| Timeline start (Example) | 2026-01-01 (FY2026 actuals loaded as the base year) |
| Period length | Calendar month |
| Timeline end | 2031-12-31 (72 monthly columns) |
| Actuals and forecast boundary | Input cell "Last actual month"; columns up to it read actuals, later columns calculate |
| Annual views | Built on presentation sheets by summing months with annual flags; no separate annual calculation axis |
| Entities | CC-HOLD Corvid Commerce Group plc (EUR, listed parent), CC-DE Corvid Commerce GmbH (EUR), CC-UK Corvid Commerce Ltd (GBP), CC-US Corvid Commerce Inc (USD, subscription sales only), CC-VN Corvid Commerce Vietnam LLC (VND, cost-plus service centre with no external revenue), group eliminations |
| Segments | Subscription platform, commerce, professional services, central |
| Cost detail | Function (cost of sales, sales and marketing, research and development, general and administrative) by entity; cost-centre detail stays in the budget submission files |
| Headcount detail | Role family by entity and month; individual positions only for open roles |
| Currency | Calculations in local currency per entity; translation to EUR at average rates (flows) and closing rates (balances) |
| Units | EUR thousand on presentation sheets; full units in input sheets where source data is in full units (marked by the units column) |
| Day count | Actual days in the month over 365 for interest; 30-day months are not used |
| Sign convention | Inflows and assets positive; outflows and liabilities negative in calculations; presentation sheets show costs in brackets |
3. Architecture and sheet map
The FAST Standard groups sheets into four functional classes: foundation (inputs, timing, indexation), workings (calculations), presentation (statements, charts, summaries) and control (checks, scenario control, change log, contents). The sheet map follows that grouping.
| Sheet ID | Sheet name | Class | Content | Time axis |
|---|---|---|---|---|
| S01 (Example) | Contents | Control | Table of contents, model purpose, flow description, colour key, standards used | None |
| S02 (Example) | Checks | Control | All checks, master check, alerts | Monthly |
| S03 (Example) | Scenarios | Control | Scenario selector and scenario input table | None |
| S04 (Example) | ChangeLog | Control | Version, change, author, reviewer, date | None |
| S05 (Example) | Inp_Macro | Foundation | FX rates, inflation, interest benchmarks | Monthly |
| S06 (Example) | Inp_Ops | Foundation | ARR movements, orders, AOV, services days, hiring plan, cost drivers | Monthly |
| S07 (Example) | Inp_Fin | Foundation | Facilities, leases, tax rates, dividend policy, covenant limits | Constants and monthly |
| S08 (Example) | Time | Foundation | Period dates, period flags, actual and forecast flags, annual and quarter flags | Monthly |
| S09 (Example) | Actuals | Foundation | Monthly ledger trial balance mapped to model lines (import sheet) | Monthly |
| S10 to S17 (Example) | Rev, People, Opex, Capex, WC, Debt, Tax, Consol | Workings | Calculation blocks listed in section 5 | Monthly |
| S18 to S22 (Example) | IS, BS, CF, Covenants, KPI | Presentation | Outputs listed in section 6 | Monthly with annual summaries |
Import of actuals: the ledger extract is pasted as values into S09 through a fixed mapping table; no direct external links to other workbooks. If several workbooks are unavoidable, exchange data through dedicated import and export sheets.
4. Inputs register
| ID | Input | Unit | Base value or range | Source | Owner | Updated | Budget reference |
|---|---|---|---|---|---|---|---|
| INP-001 (Example) | EUR/USD rate, budget | USD per EUR | 1.10 | Treasury view | [@treasurer] | Annual, frozen | ASM-001 |
| INP-002 (Example) | EUR/GBP rate, budget | GBP per EUR | 0.86 | Treasury view | [@treasurer] | Annual, frozen | ASM-002 |
| INP-003 (Example) | EUR/VND rate, budget | VND per EUR | 28,500 | Treasury view | [@treasurer] | Annual, frozen | ASM-003 |
| INP-004 (Example) | General cost inflation | % per year | 2.5% | Consensus forecasts | [@head-of-fpa] | Annual | ASM-004 |
| INP-005 (Example) | Pay review, effective 1 April | % | 3.5% | HR benchmark | [@chro] | Annual | ASM-005 |
| INP-006 (Example) | New ARR, expansion, contraction, churn by month | EUR k per month | Sales plan | CRM pipeline and plan | [@cro] | Monthly | ASM-006, ASM-007 |
| INP-007 (Example) | Commerce orders and AOV by month | thousand, EUR | 1,200k orders at EUR 45 for FY2027 | Commerce plan | [@commerce-director] | Monthly | ASM-008 |
| INP-008 (Example) | Services days and day rate | days, EUR | 50,000 days at EUR 200 | Services plan | [@services-director] | Quarterly | ASM-009 |
| INP-009 (Example) | Effective tax rate by entity | % | Group 25% | Tax plan | [@head-of-tax] | Annual | ASM-010 |
| INP-010 (Example) | Term loan balance and rate | EUR k, % | 30,000 at 4.0% | Facility agreement | [@treasurer] | On change | ASM-011 |
| INP-011 (Example) | Receivable, inventory, payable days (quarter-end balance / quarter flow x 90) | days | 31, 52, 43 | Working capital plan | [@financial-controller] | Quarterly | ASM-012 |
| INP-012 (Example) | Covenant limits | x | Leverage 3.00x maximum; interest cover 4.00x minimum | Facility agreement | [@treasurer] | On change | Not in budget |
| INP-013 (Example) | Capital projects: amount, month, asset class, useful life | EUR k, months | CAP-001 to CAP-004 | Capex register | [@cfo] | Quarterly | Budget section 8 |
| INP-014 (Example) | Discount rate for appraisal outputs | % | 10% | Group hurdle rate | [@cfo] | Annual | Not in budget |
Input rules:
- Every input row has a label, a unit, a source note and an owner in a dedicated comments column.
- Constants (single values) and time series (one value per period) are clearly distinguished by layout and format.
- Data validation restricts inputs to plausible ranges (for example, rates between 0% and 25%); values outside the range trigger an input alert on S02.
- Scenario inputs sit in one table on S03, selected by a single scenario switch (section 8).
5. Calculation logic and key formulas
5.1 Calculation block catalogue
| ID | Block | Sheet | Logic in words | Key inputs | Outputs |
|---|---|---|---|---|---|
| CALC-001 (Example) | ARR corkscrew | S10 Rev | Opening ARR plus new, expansion, less contraction and churn, equals closing ARR; next month opens with this closing | INP-006 | ARR, customers |
| CALC-002 (Example) | Subscription revenue | S10 Rev | Average of opening and closing ARR divided by 12 | CALC-001 | Revenue by entity |
| CALC-003 (Example) | Commerce revenue and cost | S10 Rev | Orders times AOV; cost at product, freight and fulfilment rates | INP-007 | Revenue, cost of sales |
| CALC-004 (Example) | People cost | S11 People | FTE by role family times loaded cost, pay review from the review month flag | INP-005 | Cost by function |
| CALC-005 (Example) | Fixed asset corkscrew and depreciation | S13 Capex | Opening cost plus additions less disposals; straight-line depreciation from the month after commissioning | INP-013 | PPE, intangibles, D&A |
| CALC-006 (Example) | Working capital | S14 WC | Balance = flow of the month times days over days in month | INP-011 | Receivables, inventories, payables |
| CALC-007 (Example) | Debt corkscrew and interest | S15 Debt | Opening plus drawings less repayments; interest on average balance at the rate times actual days over 365 | INP-010 | Debt, interest |
| CALC-008 (Example) | Tax | S16 Tax | Profit before tax times effective rate per entity; payments on account per local calendar | INP-009 | Tax charge, tax payable |
| CALC-009 (Example) | Translation and consolidation | S17 Consol | Local flows at average rate, balances at closing rate, translation difference to equity; eliminate intercompany | INP-001 to INP-003 | Group statements |
| CALC-010 (Example) | Covenants | S21 Covenants | LTM covenant EBITDA (EBITDA plus permitted add-backs) and LTM finance charges by rolling 12-month sums; covenant net debt at month end (borrowings plus lease liabilities less freely available cash) | INP-012 | Ratios, headroom |
5.2 Key formulas
ARR corkscrew (CALC-001), for month t:
Subscription revenue (CALC-002):
Working capital balance (CALC-006), receivables shown, on the ASM-012 convention of the flow of the three months ending in month t; inventories use commerce cost of sales and payables use total cost of sales:
Interest (CALC-007):
Covenants (CALC-010):
The model also reports the management ratio (borrowings less all cash, excluding leases, over LTM EBITDA) on a separate, clearly labelled row, because the budget pack uses it as a headline; the covenant row is the only one that feeds the compliance certificate.
Discounting for appraisal outputs: discount factors are calculated on their own line from the period flags and the discount rate, and present values are their product with the cash flow line. The spreadsheet NPV function is not used, because it assumes equally spaced periods and discounts the first cash flow in the range by one full period, hiding the timing assumption.
where the time in years from the valuation date to the cash flow is calculated from period end dates on S08.
5.3 Worked check of the logic
Example: with the FY2027 budget inputs, ARR opens at EUR 86,000k and closes at EUR 106,000k. If the monthly movements are spread evenly, subscription revenue is close to (86,000 + 106,000) / 2 = EUR 96,000k, the figure in the budget. Management leverage at 2027-12-31 is (30,000 - 26,400) / 21,600 = 0.17x; covenant leverage, with lease liabilities of 6,400 and trapped cash of 1,000, is (30,000 + 6,400 - 25,400) / 21,600 = 11,000 / 21,600 = 0.51x. Net finance cost is 1,200: term loan interest 1,200 plus lease interest 360 less interest income 360 (Annual Budget ASM-011). These are the first regression tests in section 11.
6. Outputs and reports
| ID | Output | Sheet | Users | Format | Leaves finance? |
|---|---|---|---|---|---|
| OUT-001 (Example) | Monthly and annual income statement by segment and entity | S18 IS | Executive committee, board | Table, EUR k | Yes, via budget pack and MMR |
| OUT-002 (Example) | Balance sheet | S19 BS | CFO, treasurer | Table | Yes, summary only |
| OUT-003 (Example) | Cash flow and net debt | S20 CF | Treasurer, board | Table and chart | Yes |
| OUT-004 (Example) | Covenant tests and headroom | S21 Covenants | Treasurer, lenders | Table | Yes, via compliance certificate |
| OUT-005 (Example) | KPI dashboard (ARR, customers, orders, FTE, margins) | S22 KPI | Executive committee | Table and charts | Yes |
| OUT-006 (Example) | Scenario comparison | S03 Scenarios | Executive committee | Table | Internal |
Output rules:
- Each presentation sheet states the units (for example EUR thousand), the scenario shown and the model version in its header.
- The scenario name and the master check status are printed on every output page.
- Charts match the data type: lines for time series, bars for comparisons, a waterfall for bridges.
- Outputs that go to lenders use the facility agreement definitions; see Covenant Compliance Certificate (
finance/covenant-compliance-certificate).
7. Design conventions
7.1 Principles
The FAST acronym sets four priorities: models are flexible (users can run scenarios and adapt the model over time, which comes from simplicity rather than a switch for every case), appropriate (assumptions are reflected faithfully without detail or precision beyond what the decision needs), structured (a consistent layout of workbooks, sheets and formulas keeps logic intact as authors change) and transparent (simple formulas and clear layout that another person can follow).
7.2 Conventions for this model
| ID | Convention (own wording) | FAST rule reference | Test by |
|---|---|---|---|
| DC-001 (Example) | Separate sheets by class: foundation, workings, presentation, control | 1.01-01 | Sheet map review |
| DC-002 (Example) | Each column has one purpose; all series sheets use the same monthly time axis in the same columns | 1.01-02, 1.01-03, 2.01-01, 2.01-02 | Column header comparison |
| DC-003 (Example) | Logic flows top to bottom and left to right; backward references only for opening balances, shaded | 2.01-04 to 2.01-06 | Precedent tracing |
| DC-004 (Example) | Nothing is hidden except unused future columns | 2.01-08 | Unhide all and compare |
| DC-005 (Example) | Calculations sit in separate blocks that list their inputs locally in formula order; balances use corkscrews | 2.02-01 to 2.02-05 | Block review |
| DC-006 (Example) | Time axis, period end date, master check and alert indicators sit in a frozen header on every series sheet | 2.03-01, 2.03-02, 2.03-05 | Visual check |
| DC-007 (Example) | Input sheets carry a comments column and explain themselves | 2.04-02, 2.04-03 | Input register vs sheet |
| DC-008 (Example) | Contents sheet with model description, flow and colour key; a list of qualifications and weaknesses | 2.05-03 to 2.05-05, 2.06-01, 2.06-02 | S01 review |
| DC-009 (Example) | One formula per row, consistent across the row; temporary code marked | 3.02-01, 3.02-02 | Row consistency scan |
| DC-010 (Example) | Short formulas that can be explained quickly; no nested IF; flags instead of IF; INDEX rather than CHOOSE | 3.03-01 to 3.03-07, 4.01-01 | Formula length scan |
| DC-011 (Example) | No constants embedded in formulas except universal ones (12 months, 100%) | 3.04-01 | Constant scan |
| DC-012 (Example) | Every row has a unique label with units; balances say "balance"; opening and closing clearly marked | 3.05-01 to 3.05-13 | Label scan |
| DC-013 (Example) | No links to links (daisy chains); no OFFSET or INDIRECT; no NPV function | 3.06-02, 4.01-02, 4.01-03 | Function inventory |
| DC-014 (Example) | Timing flags drive period logic and are created only when needed | 3.07-01 to 3.07-03 | Flag inventory |
| DC-015 (Example) | No merged cells; defined cell styles for inputs, calculations, links and checks | 4.02-01, 4.02-02 | Style audit |
7.3 Departures from the conventions
| ID | Departure | Reason | Approved by |
|---|---|---|---|
| DEV-001 (Example) | One Excel name used for the error tolerance (0.001) | Displaying it locally in every check block adds noise; FAST allows this exception | [@head-of-fpa] |
| DEV-002 (Example) | Data table used for the two-way sensitivity on S03 | Array-type feature is the clearest way to show the grid; calculation set to automatic except tables | [@head-of-fpa] |
The ICAEW Financial Modelling Code and the Best Practice Spreadsheet Modelling Standards (BPM, Spreadsheet Standards Review Board) are alternative style frameworks; if the organisation adopts one of them instead, replace the rule references in 7.2 and keep the same table.
8. Scenarios and sensitivities
8.1 Scenario mechanics
- A single selector on S03 chooses the live scenario; the selected values flow to the input sheets through one lookup row per scenario input.
- Scenario values are stored side by side in one table with a column per scenario; the base case is a column like the others.
- Every output carries the live scenario name. Stored results for comparison are pasted as values on S03 by a documented step, with the model version and date.
| Scenario ID | Name | Driver changes | Owner |
|---|---|---|---|
| SCN-001 (Example) | Base | Budget or latest forecast inputs | [@head-of-fpa] |
| SCN-002 (Example) | Upside | Commerce orders at budget from Q3; new ARR +10% | [@head-of-fpa] |
| SCN-003 (Example) | Downside | Commerce orders -10% for Q2 to Q4; US churn +2 points | [@head-of-fpa] |
| SCN-004 (Example) | Lender stress | EBITDA -30% from next quarter; no new drawings; dividend suspended | [@treasurer] |
The scenarios match those in Rolling Forecast (finance/rolling-forecast) section 7.
8.2 Required sensitivities
| ID | Sensitivity | Range | Output |
|---|---|---|---|
| SEN-001 (Example) | Commerce volume | -20% to +10% in steps of 5% | EBITDA, closing cash |
| SEN-002 (Example) | Subscription churn | +0 to +3 points | ARR, EBITDA |
| SEN-003 (Example) | EUR/USD | 1.00 to 1.25 | Revenue, EBITDA, leverage |
| SEN-004 (Example) | Interest rate on the term loan | +0 to +300 basis points | Interest cover |
| SEN-005 (Example) | Two-way: commerce volume against churn | Grid of SEN-001 and SEN-002 | Leverage |
Break-even outputs: the model reports the EBITDA fall at which each covenant breaches (as in the management report) and the lowest month-end liquidity in each scenario.
9. Checks and error flags
| ID | Check | Type | Rule | Tolerance | Location |
|---|---|---|---|---|---|
| CHK-001 (Example) | Balance sheet balances | Error | Total assets + total liabilities and equity (signed) = 0 every month and entity | 0.001 | S02, S19 |
| CHK-002 (Example) | Cash flow ties to balance sheet cash | Error | Opening cash + net cash flow = closing cash | 0.001 | S02, S20 |
| CHK-003 (Example) | Corkscrew continuity | Error | Every opening balance equals the previous closing balance | 0 | S02 |
| CHK-004 (Example) | Segment and entity totals | Error | Sum of segments = sum of entities = group | 0.001 | S02 |
| CHK-005 (Example) | Actuals import | Error | Imported trial balance sums to zero and maps every account | 0 | S02, S09 |
| CHK-006 (Example) | Translation | Error | Translated balance sheet balances; translation difference posted to equity | 0.001 | S02, S17 |
| CHK-007 (Example) | Flags | Error | Each month has exactly one actual or forecast flag; annual flags sum to 12 per year | 0 | S02, S08 |
| CHK-008 (Example) | Input ranges | Alert | Inputs within validation ranges | n/a | S02 |
| CHK-009 (Example) | Covenant breach | Alert | Leverage above 2.50x (warning) or 3.00x (breach) in any test period | n/a | S02, S21 |
| CHK-010 (Example) | Liquidity floor | Alert | Liquidity headroom below the treasury minimum in any month | n/a | S02, S20 |
| CHK-011 (Example) | Reasonableness | Alert | Gross margin per segment outside 5 points of last 12 months | n/a | S02 |
Master check = sum of absolute error check values; shown in the frozen header of every sheet and on every output page. Outputs are not released while the master check is not zero. Alerts are listed separately and explained in the cycle's commentary.
10. Version control and change management
| Item | Rule |
|---|---|
| Model of record (Example) | One file in the finance document library, read-only except for the FP&A modeller group |
| File naming | [MOD-ID][vMajor.Minor][YYYY-MM-DD].xlsx |
| Major version | Logic, structure or output definition changes; requires review (section 11) and an update of this specification |
| Minor version | Input updates and actuals loads only; requires preparer and checker sign-off on S04 |
| Change log | S04 records version, date, change description, sheets affected, author, reviewer, test evidence |
| Change requests | Raised as CR-NNN with reason, expected effect on outputs, urgency; approved by the model owner |
| Back-up | Daily library back-up; each released version kept for [7] years |
| Access | Edit: FP&A modellers; read: treasury, controllership; outputs only for others |
| Comparison tool | Workbook comparison run for every major version; differences explained in the change log |
| CR ID | Change | Reason | Version | Reviewer | Status |
|---|---|---|---|---|---|
| CR-021 (Example) | Add CC-VN Corvid Commerce Vietnam LLC as a separate column set | Entity became a cost-plus service centre in 2026 (no external revenue) | v3.0 | [@independent-reviewer] | Released |
| CR-022 (Example) | Interest day count changed from 30/360 to actual/365 | Match facility agreement | v3.0 | [@independent-reviewer] | Released |
| CR-023 (Example) | Add lender stress scenario SCN-004 | Refinancing discussions | v3.1 | [@head-of-fpa] | In test |
Where a model falls within the organisation's model risk framework, record it in the model inventory and follow Model Risk Management Policy (finance/model-risk-management-policy).
11. Testing and model review plan
11.1 Review layers
| Layer | Who | Scope | When |
|---|---|---|---|
| Builder testing (Example) | [@financial-modeller] | All test cases below, checks at zero, convention scan | Before each release |
| Peer review | [@fpa-analyst] | Logic of changed blocks, inputs against sources, outputs against previous version | Each major version |
| Independent review | [@independent-reviewer] (internal team outside FP&A or external model reviewer) | Full specification compliance, rebuild of key calculations, scenario behaviour, conventions | Initial release, then every [24] months or on major change |
| Lender model audit (if required by contract) | [External model auditor] | As defined in the facility agreement | [Before financial close or refinancing] |
11.2 Test cases
| ID | Test | Input set | Expected result | Result |
|---|---|---|---|---|
| TC-001 (Example) | Budget regression: FY2027 revenue | SCN-001, budget inputs | 160,000 | [Pass / Fail] |
| TC-002 (Example) | Budget regression: FY2027 EBITDA | SCN-001 | 21,600 | [Pass / Fail] |
| TC-003 (Example) | Budget regression: closing cash 2027-12-31 | SCN-001 | 26,400 | [Pass / Fail] |
| TC-004 (Example) | Leverage 2027-12-31: management and covenant definitions | SCN-001 | 0.17x management; 0.51x covenant | [Pass / Fail] |
| TC-005 (Example) | Zero test: all drivers set to zero | Test inputs | No revenue, no variable cost, fixed cost only; checks zero | [Pass / Fail] |
| TC-006 (Example) | Doubling test: all volumes doubled | Test inputs | Revenue and variable cost double; fixed cost unchanged | [Pass / Fail] |
| TC-007 (Example) | FX invariance: EUR entity only | Rates changed | EUR entity results unchanged | [Pass / Fail] |
| TC-008 (Example) | Timeline: last actual month moved forward by one | Actuals loaded for March | March reads actuals; April onwards forecast; checks zero | [Pass / Fail] |
| TC-009 (Example) | Downside scenario reproduces rolling forecast | SCN-003 | Revenue 153,000; EBITDA 18,500; closing cash 22,400 | [Pass / Fail] |
| TC-010 (Example) | Interest calculation against independent recalculation | Facility inputs | Matches within 0.1 | [Pass / Fail] |
11.3 Traceability matrix
| Requirement | Section | Calculation or output | Check | Test |
|---|---|---|---|---|
| REQ-001 Board budget P&L (Example) | 1, 6 | CALC-001 to CALC-004, OUT-001 | CHK-004 | TC-001, TC-002 |
| REQ-002 Cash and net debt | 6 | CALC-006, CALC-007, OUT-003 | CHK-002 | TC-003 |
| REQ-003 Covenant tests | 1, 6 | CALC-010, OUT-004 | CHK-009 | TC-004, TC-010 |
| REQ-004 Scenarios | 8 | SCN-001 to SCN-004 | CHK-001 | TC-009 |
| REQ-005 Actuals and forecast blend | 2 | S09, S08 flags | CHK-005, CHK-007 | TC-008 |
| REQ-006 Multi-currency | 2 | CALC-009 | CHK-006 | TC-007 |
11.4 Review findings
| ID | Finding | Severity | Response | Status |
|---|---|---|---|---|
| RF-001 (Example) | Lease interest calculated on closing balance, not average | Medium | Corrected in v3.0 (CALC-007 applied to leases); budget net finance cost of 1,200 now shows lease interest and interest income separately | Closed |
| RF-002 (Example) | Two inputs without source notes on Inp_Ops | Low | Notes added | Closed |
Model validation for regulated or high-risk models uses Model Validation Report (ai-data/model-validation-report); model design documentation for risk models uses Model Development Document (finance/model-development-document).
11.5 How to run a review and what reviewers most often find
Give the reviewer the specification, the model, the input register and the expected results before the review starts, and agree the scope in writing: which sheets, which versions and which outputs. A reviewer who receives only the workbook will test what is easy to test, usually formula consistency, and miss the questions that matter to the decision makers, such as whether the covenant calculation uses the facility definitions.
Reviewers should work from outputs back to inputs. Start with the numbers that leave the model (the budget P&L, closing cash, covenant ratios) and rebuild them independently, in a separate small workbook or by hand, from the input register. Where the rebuild and the model disagree, trace the difference to a block, then to a row. Only after the key outputs agree should the reviewer scan the whole model for convention breaches, because a model can follow every layout rule and still compute the wrong thing.
Findings that recur in planning models of this kind:
- Definitions that drift from the contract. Covenant net debt that leaves out lease liabilities, nets trapped or pledged cash, or uses management EBITDA instead of the agreement's Consolidated EBITDA. The fix is a covenant block that reads the definitions from an input sheet referencing clause numbers, with a separate row for the management ratio.
- Double counting between operating expense and capital expenditure, typically capitalised development whose people cost is also left in the expense lines. Test it by reconciling gross spend by function to the sum of expensed and capitalised amounts.
- Interest on the wrong balance: closing instead of average, or leases and cash deposits left out of net finance cost.
- Timing errors at year boundaries, such as a pay review or a price increase applied from the first month of the year instead of its effective month.
- Hard-coded plugs left from an earlier cycle, often in working capital or tax rows, that make the balance sheet balance while hiding an error.
- Currency translation applied twice, or balances translated at average instead of closing rates.
Record each finding with a severity, the owner of the fix and the version in which it was closed, as in the table above. A finding is closed only when the regression tests in section 11.2 pass on the corrected version; re-run the full test set, not just the test for the changed block, because fixes in one calculation often move another.
12. Known limitations and qualifications
| ID | Limitation | Effect on users | Mitigation |
|---|---|---|---|
| LIM-001 (Example) | Tax at an effective rate per entity, not a full computation | Tax cash timing approximate; deferred tax not modelled | Tax team reviews the annual tax line |
| LIM-002 (Example) | Monthly granularity | Intra-month liquidity troughs not visible | Use 13-week cash forecast for short-term liquidity |
| LIM-003 (Example) | Working capital by days measures | Seasonal stock build approximated | Inventory input override by month allowed |
| LIM-004 (Example) | No intercompany interest or transfer pricing detail | Entity profits indicative only | Statutory and TP analysis outside the model |
| LIM-005 (Example) | Five-year horizon with monthly detail | Long-range years are directional | Strategic plan uses annual summaries only |
| LIM-006 (Example) | Scenario inputs are deterministic | No probability of outcomes | Probability-weighted risks reported in the forecast pack |
13. Glossary and references
13.1 Glossary
| Term | Meaning in this template |
|---|---|
| Alert | A check that flags a business result needing attention, not a model error |
| Calculation block | A group of rows that performs one calculation with its inputs shown locally |
| Corkscrew | Balance calculation: opening plus increases less decreases equals closing, carried to the next period |
| Daisy chain | A link that points to another link instead of the original source |
| Flag | A row of 1s and 0s that switches logic on or off by period |
| LTM | Last twelve months |
| Master check | Single cell summarising all error checks |
| Model of record | The only version of the model approved for producing outputs |
| Scenario | A named, stored set of input values selected by one switch |
| Sensitivity | Change of one or two inputs over a range to show the effect on outputs |
13.2 References
| Reference | Version or date checked | Use |
|---|---|---|
| FAST Standard, FAST Standard Organisation (fast-standard.org) | Version 02c, July 2019; licensed CC BY 4.0 (licence announced 2019-10-07), checked 2026-10-25 | Design principles and rule references in sections 3 and 7, adapted in own words |
| ICAEW Financial Modelling Code (ICAEW) | 2024 edition, name only | Alternative style framework |
| Best Practice Spreadsheet Modelling Standards (BPM), Spreadsheet Standards Review Board | Name only | Alternative style framework |
| [Group model risk policy] | [Version] | Tiering, inventory and review frequency |
| [Facility agreement] | [Date] | Covenant definitions, any model audit requirement |
Standard and licence note
Structure aligned with common financial modelling practice for model specifications. Design conventions informed by the FAST Standard 02c, FAST Standard Organisation, CC BY 4.0 (fast-standard.org): the four FAST principles, the four sheet classes and the rule references in section 7 are adapted from that standard in original wording, with changes (selection, rewording and model-specific examples); the FAST Standard Organisation does not endorse this template. The ICAEW Financial Modelling Code and the SSRB Best Practice Spreadsheet Modelling Standards are cited by name only; no text from them is reproduced. Corvid Commerce Group and every figure are fictional. This template is original text written for this collection. Check the current official version of each cited standard before use. Template licence: MIT.
Plantillas relacionadas
Model Development Document Template (Credit and Market Risk Models)
Purpose and use, design options, data and default definition, logistic PD method, calibration and MoC, Gini, PSI and binomial tests, limitations, implementation, monitoring
Finanzas, inversión, contabilidad13-Week Cash Flow Forecast Template (Direct Method)
Direct-method weekly cash forecast: opening cash and facilities, receipts and disbursements by category, weekly roll, headroom vs minimum, variance and bridge, levers
Finanzas, inversión, contabilidadBalance Sheet Account Reconciliation Template
GL versus independent source, reconciling items with type, age and owner, unexplained difference threshold, roll-forward, evidence index, preparer and reviewer sign-off