Skip to main content
The Engine Behind Every Deal

285K Weighted Outcomes.
Zero Guesswork.

Every deal LouieAuto routes passes through a self-learning lender engine — calibrated against 285K real public CFPB/ACS funded-outcome records, not live customer volume. Here's exactly how it works.

The Routing Flow

From deal object to winner selected — four deterministic steps, every time.

1

Deal Profile Built

Customer FICO, income, LTV, vehicle age, mileage, and down payment are assembled into a structured deal object before any lender is touched.

FICO  591
Income / mo  $3,840
LTV  118%
Vehicle age  2019 (7yr)
Mileage  62,400
Down pmt  $1,500
BK history  Ch.7 — 3yr ago
2

58 Lender Programs Screened

Each program runs through 14 eligibility gates. Any gate failure removes that program from contention before scoring begins.

Lender FICO LTV Age BK
Capital One✓✓✓✓
Westlake✓✓✓✓
Global LS✓✓✗✓
AmeriCredit✗✓✓✗
Meridian✓✓✓✓

5 of 58 shown. AmeriCredit and Global LS gated out. 56 programs advance.

3

Composite Score Calculated

Each passing program is scored using the weighted formula below. Approval% is live from the weight cache. Speed is days-to-fund average.

Score = (Approval% × 0.70) + (Speed × 0.30)
Approval % weight 70%
Speed weight 30%

Speed = normalized inverse of days-to-fund avg. Faster funders score higher.

4

Winner Selected + Ranked

Top programs ranked by composite score. Reserve potential calculated. Stips predicted from simulated pattern matching so F&I can pre-package before submitting.

Capital One
94.2% Winner
Westlake
78.1%
Global Lending
71.5%

Predicted stips for Capital One: proof of insurance, pay stubs ×2, utility bill.

It Gets Smarter Every Deal

The engine doesn't just route — it closes the loop. Every outcome feeds back into the weight cache overnight.

1
Deal Submitted
Lender selected, deal packet sent, outcome timer starts
2
Outcome Recorded
Approved / declined / funded / days-to-fund logged to ActivityLog
3
1:30am Reweight
Nightly cron reweights all outcomes across the weight cache
4
Next Deal Wins
Updated weights serve the next routing request immediately
→
→
→
→
Self-Learning
Closed Loop
Step 1 → 2
When a deal is submitted, LouieAuto records the lender_submit event immediately. When the lender responds, lender_approved or lender_declined is written with a timestamp — capturing exact approval velocity per lender, per deal tier.
Step 2 → 3
Every night at 1:30am, sync-sims-to-closed-loop.js runs across all accumulated outcomes. Approval rates are recalculated by lender, FICO band, vehicle class, and call type. The algorithm reweights each program against current conditions — not 6-month-old data.
Step 3 → 4
Updated weights are written back to lender_weight_cache (21,479 rows). getWeights(dealershipId) pulls the live weight map for the next routing call. Zero manual intervention required.
The Compounding Effect
A competitor can copy the routing formula. They cannot copy the outcome history specific to your market, your deal mix, and your lender relationships that builds the longer you run it. The weight cache is the moat — and it compounds with every deal submitted.
By the Numbers

The engine, demonstrated — every figure below traces to a documented simulation run across 5 virtual dealership models, except the real deal-routing count, tracked separately.

21,479
Rows in
Weight Cache
58
Lender
Programs
1,167+
Deals
Routed (real)
1:30am
Nightly
Reweight
Figures above (except the real deal-routing count) reflect the AI simulation engine across 5 virtual dealership models. Live endpoint: GET /api/moat/public

See it route a deal.

Watch the engine run — a real lender matrix, a modeled deal profile, composite scores in under 2 seconds.