DEV Community

Grant Ellison
Grant Ellison

Posted on

I built a $29/report SaaS for real estate investors in 3 weeks — here's how

I kept doing the same thing every time I evaluated a rental property. Open 10 tabs. County assessor for tax data. FEMA for flood zone. Census for demographics. Crime stats by zip code. Walk Score. City permit portal to check if the broker's renovation claims actually had permits behind them. Then an hour in a spreadsheet modeling debt service at different rate and leverage assumptions.

2-3 hours of work just to figure out if a deal was worth a phone call.

So I built DealBrief (getdealbrief.com). Enter a property address, it pulls public data, runs the financial modeling, flags the risks, and outputs a formatted PDF research brief. About 60 seconds.

THE STACK

Backend: Python on Railway. The data pipeline hits Census API, FEMA API, Walk Score API, and scrapes county assessor portals and crime data (CrimeGrade.org via ScraperAPI for IP rotation). City permit portals are the hardest; every municipality has a different system, some don't have public portals at all.

Report generation: ReportLab (Python PDF library). The output is a formatted PDF with color-coded risk flags, debt service tables at 4 rate scenarios across 2 LTV levels, and a back-of-envelope NOI analysis.

Frontend: Next.js on Vercel. Simple — address input, data confirmation screen where the user can adjust anything the pipeline found, then payment via Stripe Checkout.

Payments: Stripe at $29/report. No subscription. Transactional pricing matches how investors actually use it — they might evaluate 10 properties one month and zero the next.

VALIDATION

Before writing any code, I generated 6 prototype reports manually using Claude and posted one to BiggerPockets (the largest real estate investing community). A 26-year property management veteran replied:

"The tax reassessment finding alone makes this worth more than $20. You're underpriced. Consider $29-49."

He also suggested adding debt service scenarios and flagging unpermitted work as an insurance claim denial risk — both went into the product.

That one reply told me three things: the product solves a real problem, the price should be higher than I thought, and the permit cross-reference is the feature that differentiates it from anything else on the market.

LAUNCH

Currently live in 9 US metros: Dallas, Houston, Phoenix, Charlotte, Raleigh, Tampa, Orlando, Jacksonville, and Miami. Coverage is limited by which county assessor portals I've built scrapers for (each county is a custom integration).

13 free reports redeemed in the first few days from Reddit and BiggerPockets outreach. Waiting on feedback before pushing hard on paid conversion.

WHAT I'D DO DIFFERENTLY

County assessor scrapers are fragile and every county is different. If I were starting over, I'd focus on one metro, get 20 paying customers there, and use that revenue to fund expansion to the next market. Instead I built 9 markets simultaneously, which spread the QA thin.

Also: Reddit and BiggerPockets are hostile to anything that looks like self-promotion, even when you're giving the product away free. I got banned from BP for 7 days for sharing a link in a comment reply. Direct outreach to brokers and DMs to active investors in relevant subreddits converted much better than public posts.

NUMBERS

Cost to build: $0 (Claude for code generation, free tiers for APIs, Railway/Vercel free tiers)
Monthly operating cost: ~$20 (Railway + ScraperAPI)
Price: $29/report
Gross margin: ~95%
Breakeven: 1 report/month

getdealbrief.com

Happy to answer questions about the build, the data pipeline, or the go-to-market.

Top comments (0)