All work
Construction workers restoring a brownstone facade on a tree-lined Brooklyn Heights street
STEERING HOUSE · FINANCE OPS

Construction books that reconcile themselves.

CLIENT
Steering House
SECTOR
Construction · Brooklyn, NY (11201)
ROLE
Finance systems · Data engineering
STATUS
In production, Phase 2 underway

Steering House builds and renovates townhouses across Brooklyn Heights and the surrounding brownstone neighborhoods. Every project runs on tight margins, and the numbers that matter — labor, materials, subcontractor draws — lived in two systems that didn't talk to each other.

THE CHALLENGE

Their finance data lives in QuickBooks. Their project managers work in Google Sheets. A previous developer had built a sync tool between the two — 224 commits over a year — but by the time we were brought in, it had quietly stopped working, and the original developer's infrastructure was gone. Every employee hired since the prior August was missing from the labor data, and nobody knew why.

"The sync wasn't randomly flaky. It was asking QuickBooks the wrong question, consistently, for months."
THE FOCUS
WHAT WE BUILT

The sync was querying QuickBooks by when a timesheet was last modified, not by when the work actually happened — so approved hours falling outside a rolling window were silently dropped. We switched the query to the work date, and ten employees' labor records reappeared. The system now runs hourly on Google App Engine: pulling labor, materials, and subcontractor draws into a dedicated Google Sheet per active project, with every raw transaction preserved for when a question comes up later.

With the sync stable, the second phase asks a harder question: which cost overruns are normal and which ones need attention. Labor is the variable that actually hurts — material overruns usually get passed to the client through a change order, but a labor miscalculation gets absorbed. We're building spending models per cost code — what a normal project should have spent by 25%, 50%, 75% complete — so a project manager sees a real anomaly instead of a wall of numbers to eyeball every week.

Reconciling project financials
A PROJECT MANAGER SHOULDN'T HAVE TO EYEBALL A SPREADSHEET TO KNOW SOMETHING'S OFF.
HOW IT'S BUILT
SYNC ENGINE
Python, Flask, Google App Engine — hourly OAuth-refreshed sync from QuickBooks Online.
DATA LAYER
MongoDB holds every raw transaction, even the ones filtered out of the reconciliation sheets.
INTERFACE
Google Sheets — the tool project managers already live in, one spreadsheet per active project.
PHASE 2
Per-cost-code spending curves and anomaly detection, validated against historical project data.
57,829 transactions
Synced from QuickBooks to Google Sheets, across every active project.
Hourly, unattended
No manual pulls, no reformatting, no pasting into the wrong tab.
10 employees
Whose labor records came back once the sync asked the right question.
MORE WORK

Got something like this?

Bring us one thing you're trying to get right. We'll show you where AI actually helps — on your own data, not a demo.

[email protected] · We respond within a day.

One short essay a week on shipping production AI.

What we learned building, straight from the studio. No roundups, no hype.

UNSUBSCRIBE ANYTIME · POWERED BY BUTTONDOWN