Real Estate

Extract Form 1003 loan applications to structured JSON

The URLA (Form 1003) is the standard residential loan application — but borrower-completed forms arrive as scanned uploads, e-signed PDFs, and faxed bank copies. Income, asset, and property data sit across multiple pages and revision versions. Sensible converts any 1003 into structured JSON for LOS automation and underwriting.

mortgage underwriting | borrower intake | LOS automation

Validated JSON

Schema-enforced output; every field matches your contract

Source coordinates

Every value links back to page + bounding box for audit

Per-document pricing

Predictable cost. No token-volatility surprises

Trusted by teams turning documents into production data

Why URLA 1003s require more than form-fill OCR

Revision detection, multi-borrower handling, and validation against credit and asset documents demand more than pattern matching. Sensible reads the form, validates the fields, and ships clean JSON to your LOS.

01

URLA Revision Detection

The 2021 URLA redesigned the entire form. Legacy 1003s and the new URLA both circulate. Sensible detects revision year automatically and extracts using the right schema, so your LOS receives consistent JSON regardless of form version.

02

Multi-Borrower Handling

Joint applications with co-borrowers, non-occupant co-borrowers, and multiple borrower pairs need to be split into discrete borrower records. Sensible preserves the relationship between borrowers and their respective income, assets, and credit data.

03

Cross-Field Validation

Income totals must match line-item sums. DTI ratios must be consistent with declared income and debts. JsonLogic validations catch internal inconsistencies before the application moves to processing.

Managed services

Don't want to build it? We'll write your configs from your samples.

Solutions engineers handle plan, build, deploy, and adjust on your behalf. You see clean JSON in your API response. Same engine as self-serve, just with the configuration work outsourced.

What's included

01Plan.Engineers review your samples and pick the right method

02Build.SenseML configs written from your samples

03Deploy.Same engine as self-serve, ready for production

04Adjust.We update configs when formats shift or new edge cases appear

05Integrate.Help with custom integration into your downstream systems

Fields we extract

Every 1003 is different, so we build the config around your exact schema rather than a fixed list. These are the fields mortgage teams request most; we map whatever else your LOS or underwriting pipeline needs.

01

Borrower identity

Borrower name, SSN, date of birth, citizenship, marital status, current address, mailing address, contact info

02

Loan and property

Loan amount, loan purpose, property address, property type, occupancy, estimated value, sales price, term, amortization

03

Income, assets, liabilities

Employment, base income, bonus/commission income, other income, asset accounts, liabilities, monthly obligations, REO schedule

config.json

SenseML

{ /* SenseML: Form 1003 / URLA extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "loan_amount", "description": "loan amount, amount requested" },
{ "id": "property_address", "description": "subject property address" },
{ "id": "annual_income", "description": "annual income, gross monthly income" },
{ "id": "loan_purpose", "description": "loan purpose, purchase or refinance" }
// + more fields, mapped to your schema
]
}
}
]
}

Supported variants

Sensible processes every revision of Form 1003 / URLA, from the 2009 legacy version to the current 2021 redesign.

URLA 2021 (current)

The Fannie Mae / Freddie Mac redesigned URLA: borrower information, financial information, real estate, declarations, and demographic information sections.

Legacy 1003 (2009)

The pre-2021 Form 1003 still circulates in some portfolios. Version detection extracts using the legacy schema and maps to the URLA 2021 output shape.

Common questions

Answers about URLA revisions, multi-borrower handling, and income validation.

What fields does Sensible extract from Form 1003?

Borrower identity, loan and property details, employment, income, assets, liabilities, REO schedule, and declarations are all extracted. Custom fields can be added in SenseML to match your LOS schema exactly.

Does Sensible validate income totals on Form 1003?

Yes. JsonLogic validations check that income totals match line-item sums and that declared DTI is consistent with income and liabilities. Internal inconsistencies get flagged before the application moves to processing.

How does Sensible handle multi-borrower applications?

Joint applications, non-occupant co-borrowers, and additional borrower pairs are split into discrete borrower records. Income, assets, and credit data stay linked to the correct borrower.

Which URLA revisions does Sensible support?

Sensible supports the current 2021 URLA redesign and the legacy 2009 Form 1003. Version detection happens automatically; the legacy schema gets mapped to the URLA 2021 output shape so downstream systems receive consistent JSON.

Do you support webhooks?

Yes. Sensible sends extraction results to your webhook endpoint when processing completes. You can also poll the API for status.

Does Sensible support human review?

Yes. Sensible flags extractions with low confidence for human review. You can configure review thresholds and workflows.

What security certifications does Sensible have?

Sensible is SOC 2 Type II certified and HIPAA compliant. Data is encrypted in transit and at rest.

How long is document data retained?

Document data is stored indefinitely by default. Custom retention policies are available and can be configured for same-day deletion if needed.

Is there a free trial?

Yes. Sensible offers a 14-day free trial on the Growth plan. No credit card required to start.

How is pricing structured?

Sensible uses per-document pricing for predictable costs. No token-based billing or usage surprises. Volume discounts are available for higher throughput.

How do I integrate with Sensible?

Sensible provides REST APIs and SDKs for Python and Node.js. Most integrations take a few hours. Webhooks, Zapier, and direct API calls are all supported.

What file formats does Sensible support?

Sensible processes PDFs (native or scanned), Microsoft Word (DOC, DOCX), spreadsheets (XLSX, XLS, CSV), single-page images (JPEG, PNG), multi-page images (TIFF), and email bodies with attachments.

How accurate is the extraction?

Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence signals.

How fast is document processing?

Processing speed depends on document size, page count, OCR requirements, and which extraction methods are used. Simple single-page documents process in seconds. Larger or more complex documents that use LLM-based extraction take longer.

Start free

Turn your next loan application into JSON.

Free 14-day trial. No credit card required. Start extracting in minutes.