Odysı
See if we fit
Case Study Custom Tool

Mortgage pre-qualification that scores itself.

Urban Capital is a mortgage advisory firm in Spain. We designed, built, and run a mobile-first web app that lets prospects self-assess their eligibility, see the real cash they will need, and arrive as a scored lead, all before an advisor picks up the phone.

Client Urban Capital · mortgage advisory, Spain
Engagement Pre-qualification app, designed, built & operated by us
Status Live in production
Stack React · Supabase · Loops
Read
The problem

Every prospect started with a phone call.

Before the app, an advisor had to screen every prospect by hand, judging from income, debts, savings, employment and region whether their profile could qualify for a Spanish mortgage. For a small team, every hour spent on someone who cannot qualify is an hour away from someone who can.

Leads lived in a spreadsheet with no scoring and no record of why someone was or was not a fit. And the real costs were opaque: regional taxes and fees push the cash a buyer actually needs well above the headline down payment, so prospects were caught out late in the process.

FIG. I · The real cost Region · Madrid
Example · €300,000 home
What buyers expect €60,000
What they actually need €93,000
Down payment Taxes & fees + €33,000
The headline down payment is not the real number. It changes by region, and buyers were finding out too late.
Advisor time Spent screening prospects who could not qualify
Lead data Unstructured, in a spreadsheet, with no scoring
Real costs Opaque to prospects until late in the process
What we built

One product with four surfaces, from first input to a scored lead.

A Spanish-language, mobile-first app that does the first pass automatically and hands the advisor a pre-scored lead.

01

A public calculator

Home price, down payment, rate, term and region. Pick a region and it works out the real taxes and fees automatically, and every label and tooltip is editable from the admin.

02

A scored eligibility check

A short questionnaire returns a green, amber or red score on each metric, with tailored messages and, up front, the real total cash the buyer needs.

03

An automatic handoff

The prospect gets a PDF report by email; the advisor gets a lead summary; the lead is also exported to their sheet. The advisor receives a pre-scored lead instead of a cold inquiry.

04

A configurable engine

A non-technical admin console to manage leads and tune everything: scoring thresholds and messages, employment weights, regional cost percentages, and every word of on-page copy. No developer in the loop.

How it works

It's all configurable from a single console.

A React and TypeScript single-page app over Supabase (Postgres and Edge Functions). Configuration is fetched at runtime, so admin changes apply with no redeploy. Reports render in the browser and go out as email through Loops.

The console behind it

CMS + CRM, one panel
/ admin Operator console
Configuration · CMS Saved
Scoring threshold680
Result message
Strong profile
Also editable
Region costs Weights Every word of copy
Applications · CRM 3 qualified
Lead 0461 New
Lead 0460 Reviewing
Lead 0458 Qualified
Filter · status · detail · CSV export
One console runs the whole product: tune the scoring, costs, messages and copy (CMS), and work the lead pipeline (CRM), with no developer in the loop.
Frontend

A single React and TypeScript app (Vite, Tailwind, shadcn/ui) covering the calculator, the results page and the admin panel. State is local; configuration is fetched at runtime, so the team's edits show up without a deploy.

Backend

Supabase Postgres holds applications, scoring config, region costs and page content. Edge functions handle the two jobs that must be reliable: sending the emails through Loops, and the secure export to the client's sheet.

The report

The results view is rendered to canvas in the browser and exported as a PDF, and the same render is shipped to the email so the prospect and the advisor see exactly what was on screen.

A deliberately simple choice

The admin panel uses a simple custom sign-in rather than full auth infrastructure, chosen on purpose: it is run by one small, known team, so heavier auth would have added friction without adding meaningful protection.

Configurability over hardcoding

Every threshold, score message, regional cost percentage, employment weight and on-page text string is editable from the admin panel. Urban Capital can tune the product against what they see in real prospects, without us in the loop. The scoring started as hardcoded rules and was promoted to a configurable engine precisely so non-engineers could own it.

More than a calculator

The admin panel is a real operator back office: a CMS that makes every threshold, message, region cost and word of copy editable, and a lightweight CRM that filters, tracks and exports the lead pipeline.

A full back office the team runs themselves.

How we de-risked it

We tuned it in a spreadsheet before we built the engine.

We started with the scoring in a Google Sheet, so the team could read, edit and argue with the logic in a familiar tool before any of it was formalised into a database. We stood up an isolated diagnostics page to prove the integration end to end before wiring it into the live lead flow.

From there we iterated the calculator directly on the founder's feedback, fixing each small friction in the same week, then promoted the scoring to a configurable engine and migrated storage to a database only once filtering, status and export made the sheet the bottleneck. Not pre-emptively.

Validation path In order
01 Scoring tuned in a spreadsheet
02 Integration proven on a diagnostics page
03 Scoring promoted to a configurable engine
04 Storage migrated to a database, once needed
Honest caveat: this was tight client-in-the-loop work rather than a formal research program.
Outcome so far

It's live in production and already proven by real use.

Live in production
Real prospects go through it, every day.

When two prospect-facing issues surfaced from real use, they were caught and fixed in the same iteration: the total-cash figure now computes consistently across the screen, the PDF and the emails, and the report was re-engineered so it can be attached and sent directly.

Live with real prospects
One figure, consistent across every surface
Report light enough to email directly
Advisors receive pre-scored leads
Not measured yet
We are not quoting business numbers we have not measured.

Lead volume, qualified-lead rate, conversion to advisor calls, time saved per lead: none of these are in the record yet. The app is built to capture exactly this, so the next step is measurement, and we will add real figures here once we have them.

Qualified-lead rate
Advisor time saved per lead
Conversion to advisor calls
What's next

Now that it's live, the next gains come from measurement.

With the engine live and fully configurable, the work shifts from building to learning: watch how real prospects move through it, and tune the scoring against what actually converts.

01

Measure the funnel, from first input to advisor call.

02

Tune the scoring against the leads that actually convert.

03

Keep advisors off the first pass, and on the deals.

About Odysi

A small product studio. We prototype, automate, and ship.

Small is the feature: you work directly with the people building the thing, and we care more about something that holds up in production than something that looks good in a pitch.

Prototype. Automate. Grow.

Have a manual process worth automating? We're easy to talk to.

Related solution AI for mortgage and lending qualification Read the solution