Spreadsheet Formula Error Finder for Small Business Workbooks
Build a static analyser for Excel workbooks that finds formulas which break the pattern of their neighbours, ranges that miss a row, hard-coded numbers inside formulas and references to empty cells. Small businesses run pricing, payroll and stock on spreadsheets that nobody audits. The tool explains each suspicious cell in plain language and is evaluated against a labelled set of real workbook errors.
Advanced
Needs a team, real planning, and a supervisor who knows the area.2 semesters · 2 students
7 to ship
4 optional extrasSuggested stack
What you should ship
- A workbook loader that parses every formula into an abstract syntax tree with resolved cell references
- A dependency graph of cells across sheets, with cycle detection and orphaned input detection
- A reference-pattern analysis that flags formulas that differ from the rectangular region around them
- At least eight further smell checks: hard-coded constants, ranges missing the last row, mixed units in sums, references to blank cells and others
- A plain-language explanation and a highlighted screenshot-style view for every finding
- A labelled benchmark of at least 40 real or donated workbooks with seeded and natural errors
- A comparison of your tool with Excel's built-in error checking on the same benchmark
If you have time left
- An Excel add-in or Google Sheets add-on front end
- Ranking findings by how much they change a key output cell
- Support for LibreOffice Calc files
- A command-line mode for checking workbooks in a shared folder each night
The problem: business decisions built on unchecked formulas
A small distributor sets prices from a spreadsheet. A clinic calculates staff pay in one. A school tracks fees in another. These workbooks grow over years, are copied and edited by several people and are never tested. One formula in a column of two hundred refers to the wrong row, or a SUM range stops one row short after someone inserted a line. The total looks plausible, so nobody notices until money is lost.
Spreadsheets are programs written by people who do not think of themselves as programmers. They deserve the same kind of static analysis that compilers give to code.
What already exists and the gap
- Excel's error checking flags a few patterns, such as a formula inconsistent with adjacent formulas, but its checks are narrow, it explains little, and most users switch the green triangles off.
- Commercial spreadsheet auditing add-ins exist for finance teams and are priced and designed for them.
- Research tools have shown that much better detection is possible, but they are not packaged for a small business owner or bookkeeper.
The gap is an affordable, understandable checker that a bookkeeper can run on a workbook and that explains in plain words why a cell looks wrong.
Inspiration
ExceLint: Automatically Finding Spreadsheet Formula Errors (Barowy, Berger and Zorn, OOPSLA 2018) treats a spreadsheet as a grid of reference patterns and uses an information-theoretic measure to find formulas that disrupt a rectangular region. It reported a median of about eight seconds per spreadsheet on its benchmark and outperformed earlier analyses. This project reimplements the core idea in Python, adds simpler smell checks, and focuses on explanations a non-programmer can act on.
What you build
- Bookkeepers and owners upload a workbook and get a ranked list of suspicious cells, each with a sentence such as "This cell adds C2 to C40, but the column has data down to C41".
- Accountants reviewing a client's workbook see the dependency graph of a key output, such as total payroll, and the inputs that feed it.
- Trainers use the tool to teach good spreadsheet habits with real examples.
The technically interesting part
- Parsing formulas. Excel formulas are a real language with operators, functions, ranges, named ranges and cross-sheet references. Use an existing parser, then build your own reference resolution and convert references to relative offsets (R1C1 style) so formulas that do the same job look identical.
- Pattern analysis. Group cells into regions with the same relative reference pattern and find the cells that break a region. ExceLint's idea of measuring how much a cell increases the "surprise" of its region is a good starting point; you can begin with a simpler rule and compare.
- Dependency graph. Build a directed graph of cell dependencies, find inputs that nothing uses, outputs with suspiciously few inputs and circular references.
- Explanations. Turn each finding into one plain sentence and a small highlighted grid so a user can see the problem without reading formulas.
How to evaluate it
- Benchmark: collect at least 40 workbooks from public sources and willing local businesses (with permission and anonymised). Seed known errors into copies, and also label natural errors by hand.
- Precision and recall for each check, and overall ranking quality: how many real errors appear in the top ten findings.
- Comparison: run Excel's built-in error checking on the same files and record what each catches.
- User test: give a bookkeeper a workbook and your report and see how many real errors they confirm in 20 minutes.
Suggested plan
- Weeks 1 to 4: read the ExceLint paper, choose a formula parser, build the loader and R1C1 normalisation.
- Weeks 5 to 9: region grouping, pattern-break detection and the dependency graph.
- Weeks 10 to 14: smell checks, explanations and the web report.
- Semester 2, weeks 1 to 6: benchmark collection and labelling.
- Semester 2, weeks 7 to 12: evaluation, comparison with Excel and user tests.
- Semester 2, weeks 13 to 15: report and demo.
Path to a product
Spreadsheet risk is a real cost for small firms and accountancy practices. A free web checker with a paid plan for practices that audit client workbooks is a realistic model, and an add-in can reach people where they work. The project is also strong evidence of compiler and static analysis skills, which are uncommon on student CVs.
Scope warning
Do not write a formula evaluator; static analysis needs parsing and references, not calculation. Skip macros, pivot tables and charts. Treat workbooks from businesses as confidential: get written permission, strip names and figures, and never publish them.
Learn what you need on Sefism
- CS core subjects roadmap: graphs, parsing and the theory behind static analysis.
- Crafting Interpreters: how parsers and abstract syntax trees work.
- Software design cheat sheet: structuring checks as small, testable rules.
- Python Standard Library: the core tools you will lean on.
- pytest Documentation: testing each check against small sample workbooks.
Get help with this idea
The risk is too many findings that are not real errors. Tauseef can help you choose the first checks, design a fair benchmark and keep the explanations short enough for a bookkeeper. If you are new here, create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.