Skip to content
Request Demo

Hardcoded Formulas in Financial Models

Technical Guide • Intermediate • 12 min read

Audience
Model Developers • Auditors
Last Reviewed
July 2026
Updated
Version 1.0

Executive Summary

A hardcoded value in a financial model is a fixed numeric value embedded directly within a formula cell, rather than being referenced from a dedicated input or assumption cell. Hardcoded values in formula cells are a structural risk because they do not update when the model's assumptions change, they are invisible during normal model navigation, and they cannot be changed consistently through the model's standard input interface. The ICAEW Financial Modelling Code and the FAST Standard both explicitly prohibit hardcoded values within formulas, requiring that all input values be entered in a dedicated input cell and referenced by formulas rather than embedded within them.

Key Takeaways

  • A hardcoded value is a numeric literal embedded directly in a formula cell rather than referenced from a designated input cell.
  • Hardcoded values in formula cells are invisible during normal model use and do not respond to changes in the model's stated inputs.
  • They invalidate sensitivity analysis, distort scenario comparisons, and create an incomplete audit trail.
  • The ICAEW Financial Modelling Code and the FAST Standard explicitly prohibit hardcoded values in formula cells.
  • Automated detection is necessary to identify all hardcoded values in a complex model; manual inspection is not feasible at scale.
  • Remediation requires extracting the value into a designated input cell and updating all formula cells to reference it.

Institutional Definition

A hardcoded value is a fixed numeric constant embedded directly within a formula cell. Instead of the formula referencing an input cell that holds the value, the value itself is written into the formula. The cell displays the calculated result, but the value it uses is invisible unless the formula is examined directly.


What Is a Hardcoded Value?

A hardcoded value is a numeric literal embedded directly in a formula rather than referenced from a cell. The term derives from software engineering, where a hardcoded value is one that is fixed in the program's source code rather than derived from a variable or configuration parameter.

Hardcode in a Standalone Cell

A standalone hardcoded value is a cell that contains a number directly, with no formula. This is the correct and expected pattern for input cells: the model's assumptions are entered as values in designated input cells, and formulas elsewhere in the model reference those input cells.

Standalone hardcodes in input cells are not a risk. They are the intended mechanism for entering assumptions.

Hardcode Embedded in a Formula

A hardcoded value embedded in a formula is the risk category. This occurs when a formula contains a numeric literal as part of its calculation, rather than referencing a cell that holds that numeric value.

Example of a hardcoded formula:

=C5*1.025

This formula multiplies the prior period's value by 1.025, where 1.025 represents a 2.5% growth rate. The growth rate is embedded directly in the formula.

Equivalent formula without a hardcode:

=C5*(1+$B$12)

This formula multiplies the prior period's value by one plus the growth rate, where $B$12 is a designated input cell containing the value 0.025. The growth rate can be changed in one place (cell B12) and the change will propagate through all formulas that reference it.

The second structure is correct. The first structure is a hardcode risk.


How Hardcoded Values Arise

Manual Editing Shortcuts

The most common cause of hardcoded values in formula cells is manual editing during model development or revision. A modeller who needs a specific value in a formula may type it directly rather than creating a new input cell, to save time or because the value is considered temporary. Temporary hardcodes frequently become permanent as the model evolves.

Override Corrections

When a formula produces an incorrect result in a specific period, a modeller may override the formula by typing the correct value directly into the cell. This converts the formula cell to a hardcoded value in that period while leaving the formula intact in other periods. The override is invisible without examining the formula and will persist through subsequent recalculations.

Inherited Models

Models that have passed through multiple teams often accumulate hardcodes from successive rounds of editing. Each team that modifies the model may introduce new hardcodes, and the accumulation over time creates a model whose outputs depend on a large number of values that cannot be traced to documented inputs.

Template Derivation Errors

When a model is derived from a template, hardcoded values in the template may be carried forward into the derived model. If the template was built with hardcodes for illustrative purposes, those hardcodes must be replaced with references to the new model's input cells, but this step is frequently incomplete.

Data Paste Operations

Pasting data from an external source (a Bloomberg export, an accounting system report, or a data room document) into formula cells converts those cells from formula cells to hardcoded value cells. This is sometimes intentional (when the data represents a historical actual that will not change) but is often unintentional.


Why Hardcoded Values Are a Structural Risk

The Model Does Not Respond to Assumption Changes

The defining risk of a hardcoded value in a formula cell is that it does not respond to changes in the model's stated inputs. A model that shows a revenue growth rate assumption of 3% in its inputs section, but uses a hardcoded 3.5% in the revenue formula, will calculate revenue at 3.5% regardless of what is entered in the growth rate input cell. If the user changes the growth rate input to 2%, the revenue formula continues to use the hardcoded 3.5%.

This creates a silent disconnection between the model's stated assumptions and its actual calculations. The model appears to respond to input changes (other parts of the model that correctly reference the input cell will change) but the affected formula does not.

Sensitivity Analysis Is Unreliable

Sensitivity analysis that varies an input assumption will not affect any calculation that uses a hardcoded value for that assumption. The sensitivity output will understate or overstate the model's actual sensitivity to the varied assumption.

This is a material risk when a hardcoded value affects a key output metric such as DSCR, IRR, or equity return. A sensitivity table showing that the IRR is insensitive to a 1% change in the revenue growth rate, when in fact the revenue formula uses a hardcoded growth rate rather than the input cell, produces a false sense of robustness.

Scenario Comparison Is Distorted

If a model's base case and downside case scenarios both reference the same formula cell, and that formula cell contains a hardcoded value, neither scenario will reflect the intended assumption for that input. The scenarios may produce identical outputs for the hardcoded variable regardless of how the scenario input differs.

Audit Trail Is Incomplete

A financial model whose calculations depend on values not traceable to documented input cells has an incomplete audit trail. A lender, investor, or auditor who examines the model's input section to understand its assumptions will not see the hardcoded values embedded in formula cells. The model's actual assumptions are partially hidden.


How Hardcoded Values Are Detected

Manual Detection

Manual detection involves examining each formula cell to check whether it contains any numeric literals. This is practical only for very small models. In a model with thousands of formula cells, manual inspection of each formula is not feasible.

A partial manual check uses Excel's Go To Special > Constants function to identify all cells containing values (rather than formulas). This identifies standalone hardcoded cells but does not detect numeric literals embedded within formulas.

Automated Detection

Automated audit tools parse every formula cell and identify any formula that contains a numeric literal as part of its calculation. The tool distinguishes between numeric literals that are structural constants (such as 12 in a monthly-to-annual conversion formula, or 0 in an IF statement's false argument) and numeric literals that represent business assumptions.

The detection methodology typically categorises findings by the magnitude of the embedded value and its context: an embedded value of 1 in a formula (=A1*1) is likely harmless, while an embedded value of 0.035 in a revenue formula is likely a hardcoded growth rate representing a material assumption.


Legitimate Uses of Numeric Literals in Formulas

Not every numeric literal in a formula is a risk. Some numeric literals are structural constants that are correctly embedded in formulas rather than referenced from input cells.

Legitimate numeric literals include: - Conversion factors: 12 in =A1/12 (annual to monthly), 365 in date difference calculations - Structural logic values: 0 in =MAX(0, A1-B1) (floor at zero), 1 in =1-A1 (complement calculation) - Standard mathematical constants: 2 in =A1^2 (square), 100 in percentage conversions - Logical test values: 0 in =IF(A1>0, ...) (threshold check against zero)

Numeric literals that should be referenced from input cells include: - Rate assumptions: interest rates, growth rates, tax rates, discount rates, inflation rates - Volume assumptions: units, capacity, market share percentages - Pricing assumptions: price per unit, fee rates, cost per unit - Period assumptions: loan term in years, construction period in months - Any value that represents a business or financial assumption specific to the transaction being modelled

The distinction is between structural constants (the number is intrinsic to the mathematical operation) and business assumptions (the number represents a specific commercial or financial parameter that might reasonably be different in a different transaction or scenario).


Remediation

Isolating the Hardcoded Value

The first step in remediating a hardcoded formula is to extract the embedded value from the formula and place it in a designated input cell. For a formula reading =C5*1.025, the value 0.025 (the growth rate) is placed in an input cell (for example, cell B12 on the Assumptions worksheet). The formula is then rewritten as =C5*(1+$B$12).

Propagating the Correction

If the hardcoded value appears in multiple formulas across the model (for example, a growth rate hardcoded in 20 annual formula cells), each formula must be updated to reference the new input cell. This should be done by rewriting the reference cell formula correctly and copying it across all periods, rather than updating each cell individually.

Verifying the Output

After remediation, the model's key outputs should be verified to confirm they are unchanged when the input cell holds the same value that was previously hardcoded. If the outputs change after remediation, this indicates that the hardcoded value was inconsistent with the model's stated input for that assumption (a finding that is itself material).


Common Mistakes

Common Mistake Why It Matters
Distinguishing hardcodes from intentional constants by threshold alone The magnitude of a numeric literal is not a reliable guide to whether it is an assumption or a structural constant. A growth rate of 0.025 is a small number but a significant assumption. An audit that flags only large numeric literals will miss hardcoded rate assumptions.
Correcting hardcodes by deleting them without verifying the implied assumption When a hardcoded value is replaced with a reference to an input cell, the input cell should hold the same value as the hardcode. If the input cell holds a different value (because the hardcode represented an override of the stated input), the correction will change the model's output — which is itself a finding.
Failing to detect hardcodes in hidden worksheets Hardcoded values on hidden or very hidden worksheets are as material a risk as those on visible worksheets. An audit that does not examine hidden worksheets will miss any hardcodes they contain.
Accepting a model as "hardcode-free" based on a cell colour check Some financial modelling conventions use cell colour to distinguish input cells (blue or yellow) from formula cells (no fill or white). This convention does not prevent hardcodes from being embedded within formula cells: a white-fill formula cell can contain a hardcoded value. Colour conventions are documentation aids, not structural controls.

Best Practices

Best Practice Why It Matters
Separate inputs from calculations as a structural principle All input assumptions should reside in designated input cells, typically on a dedicated Inputs or Assumptions worksheet. All calculation cells should contain formulas that reference those input cells. No numeric literal representing a business assumption should appear in a formula cell.
Use Excel cell protection to prevent formula cells from being overridden Protecting formula cells prevents modellers from accidentally converting them to hardcoded values through manual editing. This is a structural control, not merely a convention.
Include a hardcode detection step in the pre-submission quality control process Before any model is submitted externally, automated detection should be run across all formula cells to confirm that no hardcoded assumptions have been introduced since the last review.
Document any intentional numeric literals Where a numeric literal in a formula is a structural constant rather than a business assumption, this should be documented in a cell comment or in the model's documentation to prevent it from being flagged as a hardcode in subsequent audits.

Regulatory and Industry Context

The ICAEW Financial Modelling Code explicitly prohibits hardcoded values within formula cells. The Code distinguishes between input cells (which contain values and are expected to do so) and calculation cells (which should contain formulas that reference input cells, not embedded values).

The FAST Standard likewise requires that all inputs be entered in designated input cells and that formula cells contain references rather than literals. FAST-compliant models are checked for hardcodes as part of the standard compliance review.

In project finance model auditing, hardcoded values in key calculation rows (revenue, DSCR, debt service) are a standard audit finding category. The presence of hardcodes in a model submitted for lender review raises questions about the model's governance and the reliability of its sensitivity analysis.


Worked Example

Scenario. An M&A acquisition model calculates the target company's revenue projections over a five-year period. The revenue formula for Year 1 reads =B5*1.08, the Year 2 formula reads =C5*1.08, and so on through Year 5. The model's input section shows a revenue growth assumption of 8%.

The input section correctly shows 8%. The formula cells contain hardcoded growth rates of 8% (as the decimal 1.08 in the multiplier). The model appears internally consistent.

The risk. The investment committee asks the analyst to re-run the model with a growth rate of 5% to stress-test the acquisition price. The analyst changes the growth rate input cell from 8% to 5%. The model recalculates. The revenue growth formulas do not change — they continue using the hardcoded 1.08 multiplier. The model appears to have processed the input change, but the revenue projections are unchanged.

The analyst, not having specifically checked the formula cells, presents the "5% growth" scenario to the committee. The committee's decision is based on a model that has not actually applied the 5% assumption.

The finding. Automated audit detects hardcoded values of 1.08 in all five annual revenue formula cells. The finding is rated high severity because it directly affects the key revenue line and therefore the IRR, EBITDA, and acquisition price metrics.

Remediation. The formulas are rewritten to reference the input cell. All five annual formulas are updated simultaneously by correcting the Year 1 formula and copying across. The model is retested with the 5% assumption and produces the correct lower revenue projections.


Further Reading

  • ICAEW, Financial Modelling Code, Institute of Chartered Accountants in England and Wales
  • FAST Standard Organisation, FAST Standard for Financial Modelling

Continue Reading

Prerequisites

  • Hardcode — the glossary definition of a hardcoded value in a financial model context
  • FAST Standard — the modelling standard that explicitly addresses hardcode prohibition
  • R001 — Hardcoded Cells — the FMAE engine rule that detects this pattern, including detection logic, severity, and evidence produced

How OXXON tests thisRun a free structural check with FMAE

Frequently Asked Questions

Is a hardcoded value always wrong?

No. Hardcoded values in designated input cells are correct and expected. Hardcoded values embedded within formula cells are the risk. The distinction is between cells that are designed to hold values (inputs) and cells that are designed to hold formulas (calculations).

How many hardcodes are typically found in a financial model audit?

This varies significantly by model size and provenance. Models developed under formal modelling standards (FAST, ICAEW) typically contain very few hardcoded formula cells. Models developed without formal standards in commercial settings may contain dozens or hundreds of hardcoded values, reflecting accumulations from multiple editing cycles.

Can a hardcode be intentional and still be a risk?

Yes. An intentional hardcode — where a modeller deliberately embeds a value in a formula to override the standard calculation — is still a risk because it creates a disconnection between the stated input and the actual calculation. Intentional hardcodes should be documented, isolated to a specific period if they represent a one-time adjustment, and flagged in the model's documentation.

What is the difference between a hardcode and a manual adjustment?

A hardcode is a value embedded in a formula cell. A manual adjustment is typically a separately calculated adjustment applied through the model's standard structure (for example, an adjustment input cell that feeds into the calculation). A manual adjustment that is properly structured through an input cell is not a hardcode risk.

Does the FAST Standard prohibit all numeric literals in formulas?

No. The FAST Standard distinguishes between input values (which must be in input cells) and structural constants (which may be embedded in formulas). The test is whether the numeric value represents a business assumption that might reasonably change, or a mathematical constant intrinsic to the calculation.

Related Articles

Audit Methodologies for Financial Models

Financial model audit methodologies fall into three primary categories: manual line-by-line review, automated structural analysis, and deterministic rule-based checking. Each methodology differs in scope, speed, consistency, and the types of errors it is designed to detect. The appropriate methodology depends on transaction complexity, time constraints, and institutional risk appetite.

Formula Consistency in Financial Models

Formula consistency in a financial model means that cells in the same row or column that perform the same calculation use identical or structurally equivalent formulas. In a time-series financial model, the formula in the Year 1 column of a revenue line should be structurally identical to the formula in the Year 5 column of the same line, with references shifting as appropriate across periods. A cell that contains a formula materially different from its neighbours in the same row is either performing a different calculation intentionally (which should be documented) or contains an error introduced by manual editing.

Formula Error Types in Financial Models

Formula errors in financial models fall into four principal categories: visible error values (including #REF!, #VALUE!, #DIV/0!, #NAME?, #N/A, #NULL!, and #NUM!), which display in cells and are immediately apparent; silent formula errors, which produce plausible-looking values but incorrect results; structural formula errors, which arise from incorrect model construction rather than incorrect values; and logic errors, which occur when a formula correctly implements an incorrect financial relationship. Each category requires different detection methods and carries different risk implications.

Financial Model Standards

The two principal standards governing institutional financial model construction are the ICAEW Financial Modelling Code, published by the Institute of Chartered Accountants in England and Wales, and the FAST Standard, published by the FAST Standard Organisation. Both standards address the structure, documentation, and transparency requirements for financial models intended for institutional use, including models submitted for lender review, investment committee approval, and regulatory reporting. The standards differ in their scope and approach: the ICAEW Code provides principles-based guidance applicable to all financial models, while the FAST Standard provides prescriptive rules for model structure applicable to models built under the FAST methodology.

Dynamic Arrays and Power Query in Financial Modelling

Dynamic arrays and Power Query are the two Excel capabilities that have changed most significantly since the structural conventions in the FAST Standard and the ICAEW Financial Modelling Code were first written. Dynamic array functions such as SORT, FILTER, and UNIQUE let a single formula return and automatically resize a range of results, replacing formulas that previously had to be copied down or entered as legacy array formulas. Power Query lets a model ingest and clean external data through a recorded, repeatable transformation sequence rather than a manual copy-paste-and-clean step. Both are genuine productivity gains, and both introduce dependency structures that a conventional row-by-row, cell-by-cell review does not automatically surface — a spilled range is owned by one formula rather than many, and Power Query's transformation steps sit entirely outside the worksheet grid.

Request Demo