Sooner Underwriting Criteria

Closing Fee Financing, the canonical underwriting model

This page runs the live @sooner/contract model (PR1, merged). Every weight, gate, rule, and the playground decision below is computed by the same code the engine runs, read directly from the contract bundle rather than re-typed. If it is right here, it is right in production.

The model

Three visible layers. A file is decided by the worst band across them; the score is shown alongside, never hidden.

Layer 1

Gates G1 to G16

Hard pass/fail eligibility plus affordability minimums. A hard fail declines; a soft fail returns a path-to-acceptance.

Layer 2

Decision Rules DR1 to DR7

For gate-passing files, multi-factor rules route the band (approve, committee, manual, decline), each with a published reason code.

Layer 3

Score

An additive weighted sum, labelled "creditworthiness if the gates pass". No capacity cap.

Key decisions reflected here
Re-weighted score summing to 100 (J retained). UAE residency 3-year step band. Thin-file 70 substitute. Hard/soft reject with hard-dominates precedence. Path-to-acceptance (budget, location, deleverage). Void-driven recovery. Commission-only ineligible (G14). 3-month savings gate (G16).

Scoring weights

Additive weighted sum out of 100. Higher and lower-is-good categories interpolate between published breakpoints; residency uses a 3-year step; H and J are discrete tier lookups.

UAE residency step band (Category E)
12 months gives 35, 24 gives 55, 36 gives 85, 60 gives 100. The big jump banks at three years (visa-linked flight risk).
Thin-file path
No credit history: Category F weight folds into G, and G uses a 70 average-to-good substitute (the property recourse offsets the unknown history). Both the normal and thin paths sum to 100.

Eligibility gates

Each gate is tagged hard (immutable: residency, age, credit, employer, income floor) or soft (controllable: budget, area, property type, returns a counter-offer). Hard dominates: any hard fail suppresses the soft path.

Decision rules

Applied to gate-passing files. The worst band across the fired rules and the score wins. DR2 is the strong-recourse rescue of a weak employer; DR6 and DR7 are the 60-month affordability stress checks.

Tiers, recovery, reason codes

Employer sector tier scores (Category J)
Re-leasing recourse tier scores (Category H)
Adverse-action reason codes
Eligible communities (location counter-offer pool)

Classification matrices

How an employer or community resolves to a tier, which then feeds the score as Category J (employer) or Category H (recourse). Tier-to-score comes from the live contract; the named lists come from the engine classifier config. Search a name, alias, or industry.

Employers
Communities
Industry default buckets
When an employer is not named, the industry signal sets the starting tier range.

A name not on these lists resolves through the engine classifier hierarchy (industry bucket, seniority, tenure, size) and unenumerated cases route to needs-verification (manual review).

Playground

Edit a profile and see the live decision. This calls the same decide() the engine calls.

Score breakdown
Gate results