Skip to main content

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

property_owner.nameThomas Reilly
property.address640 Sycamore Street, Salem, OR 97301
property.parcel_numberR-58201-004
property.assessed_value$412,000
tax_rate18.50Mills, per $1,000 of taxable value
tax_amount$6,234.50
due_date2026-11-01First installment
appeal_deadline2026-09-15
tax_authority.nameMarion County Assessor
balance_due$6,234.50

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.

What fields are extracted from property tax bills?

Talonic returns property tax bills as schema-validated, typed fields. Common fields include property_owner.name, property.address, property.parcel_number, property.assessed_value, and more, each normalized (dates to ISO 8601, amounts as numbers) and mapped to a stable key so the output shape stays the same across layouts.

How accurate is extraction from property tax bills, and how is confidence reported?

Every extracted cell carries a confidence score from 0.0 to 1.0 and a provenance pointer back to the source page and region, so low-confidence values can be reviewed against the original before the data is trusted downstream. There is no single accuracy number: confidence is reported per field so you can gate on it.

Can I use property tax bills extraction in production?

Yes. The same engine behind this guide is available as a production REST API and Node SDK with sync, async, and streaming modes, schema versioning, signed webhooks, and EU-resident processing. Start free with an API key, then scale on usage-based pricing.

What does it cost to extract data from property tax bills?

There is a free tier for prototyping and agent evaluation with no credit card. Paid usage is credit-based at 1,000 credits per euro: page ingestion is 100 credits per page and registry-resolved queries are free. See talonic.com/pricing for current rates.

Ready to extract from your own property tax bills?

  • GDPR
  • HIPAA
  • ISO 27001 / 42001 aligned
  • DIN SPEC 91491 co-author
  • EU-resident infrastructure

Author note

Reviewed by Talonic engineering, real estate schema review · last reviewed 2026-07-08