Extract data from property tax bills
A property tax bill is the annual notice a county or municipal assessor sends the owner of record, and it turns an assessed value into an amount owed through a rate the jurisdiction sets each year. There is no national standard behind it, so the layout changes from one assessor to the next, but the mechanics are the same everywhere: an assessed value, exemptions that reduce the taxable base, a rate expressed in mills or as a percentage, and a set of levies that add up to the tax due. Owners, escrow servicers, and property-tax consultants read the bill to pay it, to escrow for it, and to decide whether to appeal it. Arithmetic is where the money is. On a home assessed at $412,000, a $50,000 homestead exemption and a $25,000 senior exemption cut the taxable base to $337,000. A total rate of 18.50 mills, or $18.50 per $1,000 of taxable value, splits into four levies: the county general levy at 6.20 mills is $2,089.40, the school district at 9.80 mills is $3,302.60, the city at 1.90 mills is $640.30, and a fire-and-sewer district at 0.60 mills is $202.20, which foot to a tax of $6,234.50. That amount is due in two installments of $3,117.25, the first on 2026-11-01 and the second on 2027-05-01, and an owner who disputes the assessment has until the 2026-09-15 appeal deadline to file. Reading the bill, Talonic returns the owner and parcel, the assessed value, the rate, the tax due, and the appeal deadline as fields, and keeps the tax charges, the exemptions, and the payment schedule as tables that foot to the total. A 2026 bill from the Marion County Assessor for Thomas Reilly on parcel R-58201-004 at 640 Sycamore Street, Salem, Oregon, loads into an escrow or appeal workflow as structured data, so a servicer can schedule the installments and a consultant can test the assessment against the appeal window.
What gets extracted from property tax bills
How extraction works for property tax bills
Property tax bills come from thousands of county and municipal assessors, each with its own template, mill-rate convention, and installment plan, so a fixed reader cannot follow the levies. Talonic maps the bill to the property-tax schema in the Field Registry, which separates the assessed value and exemptions from the individual levies and the payment schedule. Levies fill the tax-charges table, each with its assessed base, its rate, and its calculated amount, and those amounts are reconciled to the tax due, the exemptions table records each reduction against the assessed value, and the payment-schedule table keeps each installment with its due date and whether it is paid, checked so the installments foot to the balance due. Mill rate is normalized so a rate quoted per $1,000 and one quoted as a percentage are comparable. Each captured figure returns with a confidence reading and a pointer to the source line following DIN SPEC 91491, so an escrow servicer can verify an installment or the appeal deadline against the bill.
Sample extraction
An annual county property tax bill with two installments
{
"document_number": "TB-2026-58201",
"document_date": "2026-08-01",
"tax_year": "2026",
"property_owner.name": "Thomas Reilly",
"property_owner.address": "640 Sycamore Street, Salem, OR 97301",
"property.address": "640 Sycamore Street, Salem, OR 97301",
"property.parcel_number": "R-58201-004",
"property.assessed_value": 412000,
"property.property_type": "residential",
"tax_rate": 18.5,
"tax_amount": 6234.5,
"currency": "USD",
"due_date": "2026-11-01",
"payment_terms": "Two installments",
"payment_status": "unpaid",
"exemptions.description": "Homestead and senior exemptions",
"exemptions.amount": 75000,
"tax_authority.name": "Marion County Assessor",
"balance_due": 6234.5,
"appeal_deadline": "2026-09-15",
"tax_charges": [
{
"charge_type": "County general levy",
"assessed_base": 337000,
"rate": 6.2,
"charge_amount": 2089.4
},
{
"charge_type": "School district levy",
"assessed_base": 337000,
"rate": 9.8,
"charge_amount": 3302.6
},
{
"charge_type": "City levy",
"assessed_base": 337000,
"rate": 1.9,
"charge_amount": 640.3
},
{
"charge_type": "Fire and sewer district levy",
"assessed_base": 337000,
"rate": 0.6,
"charge_amount": 202.2
}
],
"exemptions": [
{
"exemption_type": "Homestead",
"exemption_amount": 50000,
"exemption_status": "active"
},
{
"exemption_type": "Senior",
"exemption_amount": 25000,
"exemption_status": "active"
}
],
"payment_schedule": [
{
"installment_number": 1,
"installment_due_date": "2026-11-01",
"installment_amount": 3117.25,
"installment_paid": false
},
{
"installment_number": 2,
"installment_due_date": "2027-05-01",
"installment_amount": 3117.25,
"installment_paid": false
}
]
}Frequently asked
Do the levies reconcile to the tax due?
Yes. Each levy is captured with its assessed base, its mill rate, and its calculated amount, and the four levies here foot to the $6,234.50 tax due, so a consultant can see how the county, school, city, and district components build the total.
How are exemptions handled?
Each exemption is a row that reduces the assessed value: a $50,000 homestead and a $25,000 senior exemption bring the $412,000 assessment down to a $337,000 taxable base that every levy is then applied against.
Does it capture the installment schedule and appeal deadline?
Yes. Each installment is kept with its due date, amount, and paid status, checked to foot to the balance due, and the appeal deadline is captured as its own date so a disputed assessment is diaried before the window closes.
Does it handle mill rates and percentage rates?
Yes. A rate quoted as 18.50 mills per $1,000 and one quoted as 1.85% are normalized to the same basis, so bills from different jurisdictions can be compared without hand-converting the rate.
Ready to extract from your own property tax bills?
Author note
Reviewed by Talonic engineering, real estate schema review · last reviewed 2026-07-08