Inspiration

We're NYU students who stumbled onto a real problem: HVAC contractors bidding 15% margin and realizing 6.8%. Half their profit just... gone. And nobody knows why until the project is already done. We thought — what if the data could just tell you, before it's too late?

What it does

You upload your project CSVs and the agent gets to work. It scans the full portfolio, flags every project losing money, tells you exactly why each one is bleeding, and hands you a list of specific actions with dollar values attached. No clicking around, no building queries. It just shows up with the answers.

How we built it

The hardest part was scale. 1.4 million rows of labor logs is way too much to hand to an AI directly. So we built a pipeline where DuckDB does the heavy lifting first, crunching everything down to clean project summaries. Then Claude looks at those summaries and reasons through them like a CFO advisor would. The frontend runs on Next.js and Vercel, files go to Vercel Blob, and the backend lives on Railway.

Challenges we ran into

Honestly pretty much everything broke at least once. File size limits, browser storage crashes, deployment serving old code, timeouts on large datasets. Each bug needed a real fix, not a patch. We spent a lot of time in error logs and git history.

Accomplishments that we're proud of

The CFO chat overlay. You can ask it "which project do I call first?" and it gives you a name, a reason, and a dollar amount. That felt like the moment it stopped being a dashboard and started being an actual agent.

What we learned

Give the AI clean data and it performs. Give it a million raw rows and it struggles. The aggregation step is where most of the real intelligence lives, and we almost skipped it.

What's next for Margin Rescue

Real-time alerts when a project crosses a risk threshold. A proper PDF export for the CFO briefing. And honestly we think this works for any industry with the same margin erosion problem, not just HVAC.

Built With

Share this project:

Updates