Document extraction built for property engineering and operations teams.

Rent rolls, closing disclosures, mortgage portfolios, inspection reports, leases, and every property doc your pipeline handles. We've seen it all. Every field is validated, typed, and traced to its source.

10+
Property doc types prebuilt
JSON
Validated against your schema
Minutes
To configure a new configuration
SOC 2
Type II · audit-ready provenance
rent_rolls/yardi_export
rent_roll_sample▾ 100%▾ 1/6
ExtractionValidations 0Errors 0
{ }
Property Rent Roll
M
MERIDIAN
RESIDENTIAL
Property Summary
PropertyCedar Park Apartments
Address410 Cedar Park Dr, Austin, TX 78731
As of04/01/2025
Total units142
Occupied / vacant134 / 8
Unit Detail
Unit · BR/BA · SqFtTenant · Lease termMarket / Actual
101 · 2/2 · 1,148M. Castellanos
06/2024 – 06/2025
$2,395 / $2,275
104 · 1/1 · 712VACANT
listed 03/22/2025
$1,795 / —
208 · 2/2 · 1,148R. Vakil-Smith
09/2024 – 09/2025
$2,395 / $2,395
312 · 1/1 · 712D. Okwuosa
11/2024 – 11/2025
$1,795 / $1,750
415 · 3/2 · 1,402K. Lindqvist
01/2025 – 12/2025
$2,895 / $2,895
Roll-Up Totals
Scheduled gross rent$334,290
Actual collected rent$309,640
▶ Occupancy · Loss to lease94.4% · $24,650
1{
2"property": {
3"name": "Cedar Park Apartments",
4"city": "Austin",
5"state": "TX",
6"zip": "78731"
7},
8"as_of_date": "2025-04-01",
9"total_units": 142,
10"occupied": 134,
11"vacant": 8,
12"units": [
13{
14"unit": "101",
15"bedrooms": 2,
16"sqft": 1148,
17"market_rent": 2395,
18"actual_rent": 2275,
19"tenant": "M. Castellanos"
20},
21{
22"unit": "104",
23"status": "vacant",
24"market_rent": 1795
25}
26],
27"scheduled_gross_rent": 334290,
28"actual_collected_rent": 309640,
29"occupancy_rate": 0.944,
30"loss_to_lease": 24650,
31"source_system": "Yardi Voyager"
32}

Trusted by teams turning documents into production data

The platform

Sensible turns property documents into your data layer.

An API call sends a rent roll, closing disclosure, mortgage portfolio, or inspection report to Sensible. A SenseML config (yours, ours, or built together) defines what to extract. The platform returns structured JSON validated against your schema, with source coordinates per field. Engineers ship extraction in days instead of months. Underwriting and asset-management teams stop re-keying. Compliance gets a clean trail.

API & SDKs

REST API with Python and Node SDKs, plus webhook support for async processing.

View the docs →

Off-the-shelf configs

get started in minutes using configs our team has already built for the most common doc types

Talk to our team about real estate documents →

Schema & provenance

Type validation, cross-field reconciliation, and source-coordinate trace per field. Every output is auditable.

Managed services

Don't want to own the configs? Sensible's team builds, tests, and maintains extractions for you.

Learn about managed services →
How it works

From document to structured data, in four steps.

The same pipeline whether you're running a 6-page rent roll or a 200-page mortgage underwriting portfolio. Sync or async. Same auth, same schema contract.

Step 01

Send the document

POST a PDF, scan, or PM-system export to the extraction endpoint with the SenseML config that matches the layout.

POST /v0/extract
config: rent-roll-yardi
Step 02

Hybrid pipeline runs

Layout-based rules locate fields. LLM parsing handles ambiguous sections, tables, and prose. SenseML constrains both halves to your schema.

OCR → layout → LLM → type cast
Step 03

Validate every field

Schema enforcement, type checks, cross-field reconciliation, and confidence scoring. Low-confidence fields surface for human review.

schema → types → cross-ref → confidence
Step 04

Deliver to your stack

Validated JSON returns sync or via webhook. Plug into your underwriting platform, asset management system, LOS, or warehouse.

{ fields: {…}, source_coords: {…} }
Partner with us

We build the extraction layer. You ship product.

Plenty of teams would rather not write document parsers, monitor model drift, or maintain configs across format changes. Sensible's services team can handle all of it.

What you give usSample documents · target schema · target throughput
What you get backA working extraction endpoint, configs in your environment, downstream integrations wired up
PricingSame per-document rate as self-serve. No separate build fees.
01

Custom configs

SenseML for any layout your team handles. Rent rolls, lender-specific CDs, mortgage portfolios, inspection reports, leases. Versioned in your environment.

02

Integration delivery

Webhooks, batch jobs, email-driven intake, downstream mappings into your underwriting platform, asset management system, LOS, or warehouse.

03

Drift & format maintenance

When a PM system changes a rent-roll layout or a lender rolls out a new CD template, we update the configs. Your pipeline keeps shipping. Engineering team stays on product work.

04

White-glove onboarding

High-volume teams get a dedicated solutions engineer through go-live. Schema design, test coverage on real documents, monitoring and alerting.

Customer story

How Inspectify streamlines property workflows with Sensible.

Inspection reports, lender packages, and property documents flow through Sensible into structured data. The platform's validation and provenance keep downstream underwriting and asset-management decisions defensible.

Read the full story →
JSONValidated against your underwriting schema
SourceCoordinates per field for audit defense
MinutesTo configure a new configuration

SOC 2 Type II

Audited annually

HIPAA-ready

Available on Enterprise

Field-level provenance

Every extraction traceable

Per-document pricing

Predictable, no surprises

FAQ

Questions proptech teams ask.

What property document types does Sensible support?
Rent rolls, closing disclosures, mortgage underwriting portfolios, loan applications (1003), inspection reports, leases, property tax bills, and title commitments. Mortgage and CD configs ship in the financial services library; the rent-roll doc type lives at /doc-types/rent-rolls.
How does Sensible handle different lender and PM-system formats?
Each lender or property-management software layout is its own SenseML config. Configs are versioned, testable, and deployable through CI/CD. New formats become new configs without changing your API integration.
Why not just prompt an LLM directly?
LLMs with structured outputs return syntactically valid JSON, but they don't enforce that rent-roll totals reconcile, that a closing disclosure's loan terms match the application, or that an inspection finding cites a specific section. Sensible runs deterministic validation on top of the model output and traces every field back to its source coordinates, so a downstream system never gets a hallucinated value.
How does this compare to building extraction in-house?
First version of an in-house build usually works. The cost shows up later: model deprecations, format drift, prompt regressions, the audit trail you didn't build, the human-review queue you didn't design. Sensible runs that infrastructure so engineering time stays on your product. SenseML is open and MIT-licensed, so the configs are yours to fork if you ever want to take it back in-house.
Does Sensible meet real estate compliance requirements?
SOC 2 Type II certified. Field-level source coordinates per extraction support audits and regulatory review for TRID, HMDA, and other mortgage compliance contexts.
How is pricing structured for property volumes?
Per-document pricing regardless of page count or complexity. Trials start on the Growth plan for 14 days. View pricing →
Get started

Start extracting property documents today.

14-day free trial on the Growth plan. Pre-built rent roll, CD, mortgage, and inspection configs included. No credit card required.