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 — simulation-modeled and calibrated against 285K real funded-outcome records from public CFPB/ACS enforcement data, 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

42 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
DriveTime

5 of 62 shown. AmeriCredit and Global LS gated out. 47 programs advance.

3

Composite Score Calculated

Each passing program is scored using the weighted formula below. Approval% is live from the 285K-row 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 18 months of 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 285K-row 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 (285,000 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 18 months of outcome history specific to your market, your deal mix, and your lender relationships. The weight cache is the moat — and it compounds with every deal submitted.
By the Numbers

The engine in production — every figure is live and verifiable.

285,000
Rows in
Weight Cache
62
Lender
Programs
1,167+
Deals
Routed
1:30am
Nightly
Reweight
All figures reflect the AI simulation engine across 5 virtual dealership models. Live endpoint: GET /api/moat/public

See it route a real deal.

Watch the engine run live — real deal profile, real lender programs, real composite scores in under 2 seconds.