Back to selected projects

Focused Utility

Spreadsheet Checkup

A deployed Excel workbook analysis tool that surfaces formula, dependency, structure, formatting, and data-quality problems with clear evidence and suggested next steps.

Python / FastAPI / openpyxl / Jinja / pytest

Project Overview

Turning spreadsheet review into a focused product

Spreadsheet Checkup is deliberately small in scope: upload an Excel workbook, analyze it safely, and return findings that help someone decide what deserves attention.

Role
Product and backend developer
Status
Live and deployed
Primary focus
Static analysis, testing, validation, and clear reporting

The Challenge

Useful findings without pretending to know too much

Spreadsheet problems are often contextual. The analyzer needed to detect strong defect signals while clearly separating them from heuristic review items that might be unusual but valid.

Designing for evidence instead of alarms

The tool checks formulas, hidden dependencies, external links, data consistency, table structure, formatting drift, validation rules, defined names, and other workbook risks. Each finding can include severity, confidence, worksheet and cell location, evidence, an explanation, and a suggested review step.

Results are grouped so a user can start with the strongest signals instead of receiving an undifferentiated wall of warnings. The application also explains coverage limits so the report does not imply that static analysis proves a workbook is correct.

Key Implementation

One analyzer, multiple ways to use the result

FastAPI handles uploads and reporting while openpyxl inspects the workbook. The same analysis can be consumed through the browser or through a JSON API.

01

Workbook analysis

Formula integrity, hidden assumptions, cross-sheet dependencies, data quality, validation rules, formatting drift, and structural checks are analyzed without recalculating the workbook.

02

Actionable reports

Findings include severity, confidence, evidence, plain-language explanations, filters, per-sheet statistics, and suggested next steps.

03

API + exports

The analyzer is available through a multipart JSON API, and results can be downloaded as JSON or CSV for additional review.

04

Safety limits

Upload size, workbook expansion, worksheet size, formula counts, noisy finding categories, and analyzer concurrency are bounded.

Testing + Hardening

Testing the analyzer, not just the happy path

The project uses several layers of automated validation because a spreadsheet checker is only useful if its own results are dependable.

  • pytest coverage for analyzer and application behavior
  • Seeded workbooks with intentional defects for benchmark checks
  • Clean-workbook controls to watch false-positive behavior
  • Pinned public workbook regressions across multiple use cases
  • Real Chromium browser tests for upload and report workflows
  • CSV and JSON download tests
  • Ruff and dependency auditing in continuous integration
  • Performance profiling for formula-heavy workbooks

Privacy + Security

Treat uploaded files as untrusted input

Workbooks are processed for the request without an account or workbook-history feature. File parsing and output paths are hardened around the fact that uploaded spreadsheets are untrusted.

  • VBA is inventoried but never executed
  • Referenced external workbooks are never fetched
  • Hardened XML parsing uses defusedxml
  • Analysis responses use no-store browser caching
  • CSV exports guard against formula injection
  • Content Security Policy and related browser headers are applied

The Result

A small application with a clear job to do

Spreadsheet Checkup is intentionally narrower than a traditional full-stack portfolio app. That makes the engineering choices, testing strategy, and value of the product easier to understand.

What it demonstrates

Python, FastAPI, file processing, openpyxl, defensive parsing, API design, automated testing, browser testing, performance profiling, security hardening, and Render deployment.

What I focused on

I prioritized useful findings and false-positive control over simply increasing the number of checks. The goal is a report someone can actually act on.

Next case study

Dan Ross Portfolio