Eligibility stops misfiring on overloaded enums
Orthogonal fields mean a 'PUD' is a project structure, not a property type. Eligibility predicates land on the right axis without translation tricks.
Vendor text like "Detached PUD - 2 Story - Fee Simple" auto-decomposes into Fannie ULDD orthogonal fields (category, attachment, ownership, project type, structure, construction method, stories) using a deterministic + AI hybrid with confidence scoring. Warrantability auto-classified with explainable rationale. Operators override at any point.
Overview
Property decomposition runs a deterministic keyword resolver first; high-confidence matches return immediately. Ambiguous strings escalate to an AI refiner trained on Fannie ULDD vocabulary; the output is confidence-scored. Warrantability classification runs on the decomposed fields, producing WARRANTABLE / NON_WARRANTABLE / UNKNOWN with an explainable rationale grounded in the contributing fields. Every decomposition writes an audit row; operators can override any field at any time, and the override is captured in the trace. The orthogonal field shape maps directly into the pricing engine's eligibility predicates.
category · attachment · ownership · project type · structure · construction method · stories. Each populates independently — no overloaded enum.
Keyword resolver handles 70-80% of vendor strings without calling AI. Ambiguous strings escalate; AI calls are budgeted and audit-chained.
Every decomposition carries a confidence score. Low-confidence results route to the QC dashboard for operator review.
Classifier produces WARRANTABLE / NON_WARRANTABLE / UNKNOWN with rationale citing the contributing fields. Used downstream by eligibility.
Any field — including the warrantability call — can be overridden by an authorized operator. Overrides write to the audit chain.
The orthogonal field shape maps directly into pricing-engine eligibility predicates. No translation layer.
How it works
Numbered steps from input to output. Each step maps to a specific subsystem you can inspect via OpenTelemetry.
Vendor exports, MISMO imports, or manual entry deliver a raw property string. The decomposer takes it as the input.
Keyword resolver matches against a curated vocabulary of attachments, ownership types, project structures, construction methods, and unit counts. High-confidence matches return.
Ambiguous or partial strings escalate to ai-service. The refiner is prompted with the ULDD vocabulary and emits a structured field map with confidence.
Combined confidence is computed from deterministic + AI contributions. The full decomposition writes an audit row with method and confidence.
Classifier consumes the decomposed fields and produces a WARRANTABLE / NON_WARRANTABLE / UNKNOWN call with an English-language rationale citing the contributing fields.
Below-threshold results land on the QC dashboard. Operator can edit any field; the override writes its own audit row with prior + new value.
Hands on
Live cURL sample — copy, paste, ship.
# Decompose a vendor property string
curl -X POST https://api.ratestack.com/v1/property/decompose \
-H "X-API-Key: $RATESTACK_KEY" \
-H "Content-Type: application/json" \
-d '{ "text": "Detached PUD - 2 Story - Fee Simple" }'
# Returns:
# {
# "fields": {
# "attachmentType": "DETACHED",
# "constructionMethod": "SITE_BUILT",
# "projectLegalStructureType": "PUD",
# "projectClassificationIdentifier": "TYPE_F_PUD",
# "pudIndicator": true,
# "storiesCount": 2,
# "propertyEstateType": "FEE_SIMPLE"
# },
# "confidence": 0.94,
# "method": "DETERMINISTIC_THEN_AI",
# "warrantability": {
# "value": "WARRANTABLE",
# "rationale": "Detached PUD with fee-simple ownership; meets Fannie ULDD warrantability defaults."
# }
# }Why this matters
Orthogonal fields mean a 'PUD' is a project structure, not a property type. Eligibility predicates land on the right axis without translation tricks.
Every warrantability determination cites the fields that drove it. Compliance reads the rationale; reviewers don't argue with an opaque enum.
Three vendors describing the same property three ways collapse into one canonical record. Pricing reads one shape; the source-of-truth audit captures all three.
Frequently asked
Confidence is surfaced and below-threshold results land on the QC dashboard. The operator can override any field; the override audits with prior + new value and propagates downstream automatically.
Most vendor strings have well-known prefixes and tokens; the deterministic resolver handles them cheaply and reproducibly. AI handles the long tail. Splitting saves cost, increases reproducibility, and reduces the AI surface area to audit.
Yes on Enterprise. Custom keyword maps and warrantability rule sets can be loaded per-tenant; the AI refiner respects the tenant vocabulary on retrieval.
No. Eligibility uses warrantability as a predicate; whether NON_WARRANTABLE programs are blocked is up to your program configuration. Some lenders run non-warrantable lanes.
The vocabulary covers Fannie ULDD canon. Appraiser-specific phrasings (e.g., '2-story', 'two story', '2 Story') normalize into storiesCount=2 via the deterministic resolver.
Related capabilities
Ready to see it on your data?
We'll spin you a sandbox, load your actual ratesheets, and walk you through this capability against your top scenarios.