Inspiration
Financial statements are only as reliable as the formulas behind them. A single broken cell reference, a flipped sign, a SUM range that stops one row short — these aren't cosmetic issues. They silently corrupt every ratio, every projection, and every decision built on top of them.
Coming from a science background and working toward a management career, this challenge was a direct test of the cross-disciplinary analytical thinking I've been building. The premise was simple: a junior associate hands you a workbook. Ten errors are hiding somewhere across three linked statements. Find them. Fix them. Prove your work.
That's not a hypothetical. That's Day 1 at any finance desk.
What it does
The project delivers two outputs:
A fully corrected financial model — all three statements (Income Statement, Balance Sheet, Cash Flow Statement) with accurate formulas, correct cross-sheet links, and verified totals.
A detailed error log — documenting all 10 errors with their cell locations, root causes, original values, and corrected values or formulas.
Together, they demonstrate not just the ability to spot errors, but the analytical discipline to explain why each error exists and how it propagates through the model.
How we built it
The audit was conducted in three phases statement by statement followed by a full cross-statement reconciliation pass.
Phase 1 — Income Statement
The #NAME? errors in the FY25 column were the first signal. Rather than
treating each broken cell independently, the dependency chain was traced
to a single root: a formula typo in the Total Costs cell that cascaded
downward through Operating Income, Income Before Tax, and Net Income.
One broken formula. Four visible errors.
$$ \text{Net Income} = \underbrace{(\text{Revenue} - \text{Total Costs})}_{\text{Operating Income}}
- \text{Interest Income} - \text{Interest Expense} - \text{Tax} $$
| Line Item | Original | Corrected |
|---|---|---|
| Total Costs | #NAME? |
97,023 |
| Operating Income | #NAME? |
15,142 |
| Income Before Tax | #NAME? |
8,504 |
| Net Income | #NAME? |
6,038 |
Phase 2 — Balance Sheet
Every line item was verified against its components. Two SUM range errors surfaced — both structurally identical, both silent:
- Total Assets excluded Other Current Assets (4,107)
- Total L&E excluded Retained Earnings (6,038)
$$ 127{,}534 - 123{,}427 = 4{,}107 = \text{Other Current Assets (excluded)} $$
$$ 119{,}534 - 113{,}496 = 6{,}038 = \text{Retained Earnings (excluded)} $$
Retained Earnings itself was also wrong — hardcoded to Net Income instead of rolled forward correctly:
$$ \text{RE}{FY25} = \underbrace{8}{\text{Opening}} + \underbrace{6{,}038}{\text{Net Income}} - \underbrace{660}{\text{Dividends}} = \mathbf{5{,}386} $$
Phase 3 — Cash Flow Statement
The CFS required both internal checks and cross-statement validation. Four errors were identified:
- Net Income hardcoded at 5,038 instead of linking to P&L (6,038)
- AR change sign reversed — AR decreased, so it's a cash inflow:
$$ \Delta \text{AR} = 18{,}543 - 21{,}307 = -2{,}764 \Rightarrow \text{CFS entry} = +2{,}764 $$
- Net CFI formula excluded Investment Securities (−1,108):
$$ \text{Net CFI} = -3{,}412 + (-4{,}217) + (-1{,}108) = -8{,}737 \quad \text{(stated: } -7{,}629\text{)} $$
- Inventory/prepaid change wrong sign and magnitude — asset group increased by 8,530, which is a use of cash:
$$ \Delta(\text{Inv} + \text{Prepaid} + \text{Other}) = 35{,}687 - 27{,}157 = +8{,}530 \Rightarrow \text{CFS entry} = -8{,}530 \quad \text{(stated: } +798\text{)} $$
Challenges we ran into
Cascading errors vs. independent errors. The four #NAME? cells in
the P&L looked like four separate problems. The discipline of tracing
dependency chains rather than patching each symptom individually was
critical — and the same skill that prevents re-introducing errors in
a live model.
CFS sign conventions under pressure. The indirect method's logic asset increases are cash outflows, liability increases are inflows is well-defined but counterintuitive. Errors 8 and 10 both exploited this. A dedicated sign-review pass, separate from the rest of the audit, was necessary to catch them reliably.
Cross-statement reconciliation. Correcting errors within a single statement is necessary but not sufficient. The harder discipline is verifying that BS movements align with CFS working capital changes, and that Net Income flows correctly from P&L to CFS. That end-to-end check is what defines a trustworthy model and what most errors are designed to survive.
Accomplishments that we're proud of
- Identified all 10 errors across three statements with full documentation of root cause, not just symptom
- Correctly distinguished cascade errors (4 P&L cells from 1 root) from independent errors avoiding double-counting
- Caught errors at three levels: formula syntax (
#NAME?), range construction (SUM omissions), and economic logic (sign conventions, RE roll-forward) - Delivered a fully linked clean model where P&L Net Income flows into CFS, BS closing cash matches CFS, and both statement totals reconcile correctly
- Documented every correction with mathematical proof where applicable
What we learned
- Dependency chains matter more than surface errors always find the root before patching the symptoms
- SUM ranges are the most common silent failure point in financial models; always verify totals equal the visible sum of components, not just that a formula exists
- CFS sign conventions deserve their own dedicated review pass they operate on different intuition than the rest of the model
- Cross-statement integrity is non-negotiable; a model is only as trustworthy as the links between its statements
- Partial errors compound a wrong value in one statement can make a separate, unrelated error in another statement harder to detect
What's next for First Step Finance Case Competition
This round tested forensic accuracy the ability to find what's broken and prove why. The natural next step is building in the other direction: constructing a three-statement model from scratch, with all links, checks, and reconciliations built correctly from the ground up.
Beyond the competition, the skills practised here dependency tracing, cross-statement reconciliation, sign-convention discipline apply directly to financial modelling, equity research, and any role where the numbers on a page are the foundation for real decisions.
The goal is to keep closing the gap between analytical thinking and financial fluency one clean model at a time.
Built With
- docx.js
- excel
- financialmodelling
- javascript
- microsoft
- node.js
- openpyxl
- python
Log in or sign up for Devpost to join the conversation.