Skip to content
All client work
Case study · TXPReal · Custom web application

Know if the deal is good before you make the offer.

How KumoKodo Studio built txpreal.com for Texas Portfolio Realty: an investment analysis platform that tells duplex and multifamily investors whether a deal is worth buying. Enter a property or pull one from live MLS inventory and get 15-year projections, eight ratios scored green, yellow or red, side-by-side comparisons, what-if modeling, and an AI scout that goes looking for the next one. Not a website with a calculator on it. A product with a website in front of it.

8
Deal ratios scored
15 yr
Projection horizon
5
Deals compared at once
5
AI tools in the app
Client
Texas Portfolio Realty · San Antonio, TX
Industry
Real Estate Investment · Brokerage
Services
Scoping, design, full-stack build, AI, MLS, billing
Status
Live at txpreal.com
The challenge

Investors had no way to judge a deal themselves.

Texas Portfolio Realty helps investors build duplex and small multifamily portfolios across San Antonio, Dallas-Fort Worth, Austin, Houston and the IH-35 corridor. The broker had a rigorous way of underwriting a deal, but it lived in his own Excel workbooks. Clients could not run it, compare properties with it, or use it to go looking for the next deal.

  • Underwriting a single deal meant the broker on a call, screen-sharing a workbook. Investors could not test a property on their own, at night, on their phone, before deciding whether to make an offer
  • Every consumer tool on the market treats a duplex as generic multifamily. None of them score a specific deal against thresholds, and none offer zip-code growth rates filtered by property type, which is the number the whole model turns on
  • Growth-rate data was the hard problem. In the broker’s words, thirty sources gave thirty different answers, and duplex sales are a small slice of any zip code’s history
  • The buyers are high-net-worth investors and the competitors all look like accounting software. The brand had to read as white-glove advisory, not as a calculator
  • The existing site was WordPress with Elementor, built by an unresponsive developer, and the analysis tool would have had to be bolted on through a plugin
  • A Texas brokerage has disclosure obligations: TREC broker identification, the Information About Brokerage Services notice, the Consumer Protection Notice, Equal Housing. They had to be built in, not linked to
Our solution

A platform that finds good investments.

TXPReal gives an investor everything the broker used to do by hand, and then goes further: it models the deal, scores it, compares it, stress-tests it, and can search live inventory for the next one.

01

An instant verdict on any property

Enter a list price, financing and rent, or hand the analyzer an MLS number and let it pre-fill from live listing data, and the full picture appears as you type: cost of entry, monthly cash flow after fixed and total expenses, cap rate, cash-on-cash, DSCR, IRR, and a fifteen-year projection of value, equity and return. Cash and leveraged purchases each get the right set of numbers. Save the deal and it lives in a folderized library.

02

Good, borderline or walk away

Eight ratios carry a green, yellow or red indicator against thresholds the broker sets from an admin panel and revisits each year, so the verdict reflects his standards, not a generic rule of thumb. Each ratio has a tooltip with his own description and formula, so a first-time buyer learns what a DSCR is on the page where theirs turns yellow. Ratios that only apply to one purchase type appear only for that type.

03

Compare, stress-test, and find the next one

Six sliders for interest rate, down payment, rent, list price, growth rate and hold period recompute everything on every drag. Up to five saved deals sit side by side with their scores. An equity timeline, a depreciation calculator and a 1031 exchange planner cover the long game. The AI Property Scout takes a market, a budget and a strategy and returns ranked candidates, each one a click from a full analysis. Anything exports as a branded PDF.

04

A brokerage site, not a SaaS landing page

Cormorant Garamond over Raleway, gold on charcoal, Texas skyline photography and Ken Burns motion. The public site is consultation-first: a ten-step Getting Started process, a six-stage portfolio framework, market pages for five Texas metros, and two Strategic Partner tracks for agents and for 501(c)(3) organizations. The analysis tools sit behind login for his clients and agents.

Technical approach

Deterministic math, AI at the edges, live data underneath.

A pure calculation engine

The engine is a dependency-free TypeScript module with no knowledge of the DOM, the server or the database, so the same code runs in the browser for the sliders and on the server for PDFs. Mortgage, expenses, ratios, projections and color thresholds are separate files with typed inputs and outputs. IRR is solved with Newton-Raphson and falls back to bisection when the cash-flow series misbehaves. Before any screen was built, the engine was validated against the broker’s own underwriting cases; ten of eleven figures match exactly and the eleventh is within three cents. That validation script still runs, so a formula change that drifts fails before it ships.

  • Zero-dependency module, runs client and server
  • Newton-Raphson IRR with bisection fallback
  • Validated against the broker’s underwriting, script kept in the repo
  • Every input change recomputes through useMemo

AI only where it earns its keep

Five AI tools ship in the app: rent estimation, zip-code price and rent growth research, an investor chatbot that can see the deal on screen, a Property Scout that ranks candidates against a chosen strategy, and a neighborhood scorecard. All of them run Claude Haiku 4.5 through Vercel AI Gateway, authenticated with OIDC so production holds no static AI key. Rent estimation tries the RentCast API first and only falls back to the model; growth research is grounded in embedded Texas market data for twenty-five plus zip codes. No financial arithmetic ever goes to a model.

  • Claude Haiku 4.5 via Vercel AI Gateway, OIDC auth
  • RentCast comps first, AI as the fallback
  • Embedded Texas market reference data as grounding
  • Deterministic math never leaves the engine

Live MLS inventory

A RESO Web API client talks to the broker’s MLS through its back-office feed. Credentials exchange for a bearer token that is cached in Postgres and refreshed an hour before expiry. Active duplex listings render server-side on a listings page for logged-in users, every listing hands its MLS number to the analyzer for a pre-filled analysis, and the Scout searches the same inventory. The MLS reviewed the actual flows and confirmed the paid-tool model before anything went live.

  • RESO Web API / OData client with cached bearer token
  • Server-rendered listings page behind login
  • Analyzer pre-fill from an MLS number in the URL
  • Usage reviewed and approved by the MLS

Accounts, billing, admin, compliance

Next.js 16 App Router on React 19 with three route groups: public marketing, minimal-chrome auth, and the app shell. Supabase Postgres holds profiles, saved deals, folders, comparisons and thresholds, with row-level security on every user table and a trigger that creates the profile on signup. Stripe checkout and a webhook keep each profile’s plan in sync. Admins manage thresholds, users and a usage log. The consultation form runs behind BotID and a honeypot, delivers by Resend, and mirrors every lead into the broker’s CRM.

  • Supabase Auth + Postgres, RLS on every user table
  • Stripe plans, portal and webhook plan sync
  • Admin panel: thresholds, users, usage log
  • Resend delivery with a CRM mirror, BotID-protected
Key decisions

Why we built it this way.

We dropped a $500-a-month data API

A property-records API was integrated, evaluated, and removed. At $500 a month for five thousand calls it auto-filled exactly two fields, both of which the broker types in anyway. Two other data vendors were passed over for unpredictable per-call fees, and county-record scraping was shelved because every Texas county runs a different system. The all-in infrastructure bill for the shipped product is under $100 a month.

Never pay a model to multiply

Cap rate, DSCR, IRR and every other figure are deterministic code, and the AI is confined to the questions that genuinely need judgement: what would this rent for, what has this zip code done, what should a first-time buyer make of a yellow ratio. That keeps the answers reproducible, keeps the AI bill in the tens of dollars, and means a model retirement cannot change a client’s numbers.

Consultation-first, tools behind the door

A week before go-live the broker asked to pull public pricing, self-serve signup and the tools pages from the site until he had a way to protect his methodology from copycats. The routes stayed, the nav changed, the retired pages redirect for visitors and still work for signed-in users, and he onboards agents by sharing a direct link. The public site now sells a conversation, and the software is what his clients get after it.

Disclosures are features

TREC broker identification, the IABS form, the Consumer Protection Notice and Equal Housing language live on a first-class disclosures page and beside every tool that produces a number. The broker’s home address was removed from the footer, legal pages and structured data when he flagged it, and a comment in the source says not to add it back.

How it shipped

Engine first, then everything built on it.

Week one was the calculation engine and the validation script, before any interface existed. The analyzer, persistence, comparison tool, sliders, equity timeline, depreciation and PDF export followed over the next two weeks. Then the broker sent a twenty-seven-item review: a hypothetical DSCR for cash purchases, folders for saved deals, utility metering checkboxes, an auto-calculated property tax from the county rate, ratio descriptions in his words, and a list of PDF fixes. Each item landed as its own commit.

Phase two added the AI tools and the Texas market data that grounds them. Phase three added the 1031 exchange planner, client dashboard, builder comparison, deal alerts, neighborhood intelligence and the Property Scout. The MLS wire-up, Stripe billing and the disclosures work each took about a week. A pre-launch restructure reshaped the public site around consultation, and go-live on 19 September 2026 pointed the domain at Vercel, verified the sending domain, wired the consultation form to the CRM, self-hosted the fonts, and shipped FAQ, HowTo, Person and OfferCatalog structured data for answer engines.

Built with

Technology stack.

Next.js 16React 19TypeScriptTailwind CSS v4Framer MotionSupabase PostgresSupabase AuthRow Level SecurityVercel AI GatewayClaude Haiku 4.5RESO Web APIRentCastStripeResendBotIDjsPDFschema.org JSON-LDCormorant GaramondRalewayJetBrains MonoVercelCloudflare DNS
See it live

Visit TXPReal.

Take a look at the live site, or tell us about the tool your clients wish they had. We can build it.