Cross-industry
Utility bills for electric, gas, water, and internet serve as proof of address in KYC, identity confirmation, and lending workflows. Every provider formats bills differently. Sensible converts utility bill data into structured JSON for address verification and compliance.
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






Thousands of providers each format bills their own way, and every merger and billing-system swap adds more variants. Hybrid extraction handles the long tail; validation pins down the usage tables and rate tiers generic OCR skips.
01
Account numbers here. Addresses there. Every electric, gas, water, and telecom provider places fields in different locations. Per-provider configurations handle major utilities; LLM parsing covers the long tail without custom setup.
02
Electric, gas, water, sewer: some providers bundle all services on one bill with separate sections. Each service type is identified and its charges, usage, and rate detail extracted individually.
03
Utility bills present usage data with tiered rates, demand charges, and time-of-use breakdowns in tables that vary by provider. Extracting the rate structure alongside consumption data requires understanding each utility's billing format. Sensible parses these tables into structured usage and charge data.
Managed services
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
We configure every utility bill extraction to your exact schema, not a fixed field list. The fields below are the ones verification teams pull most often — tell us what your KYC or proof-of-address workflow needs and we map the rest.
01
Account and address
Account holder name, account number, service address, mailing address, utility provider name, bill date, due date
02
Charges and usage
Current charges, previous balance, payments received, amount due, usage quantity (kWh/therms/gallons), usage period, rate/tariff
03
Verification fields
Service start date, statement period, provider contact info, meter number, service type (electric/gas/water/internet)
config.json
SenseML
{ /* SenseML: utility bill extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "account_holder", "description": "account holder, customer name, name on account" },
{ "id": "service_address", "description": "service address, premise address, location address" },
{ "id": "amount_due", "description": "amount due, total due, balance due, total amount" },
{ "id": "account_number", "description": "account number, account #, customer number" }
// + more fields, mapped to your schema
]
}
}
]
}Sensible processes utility bills from any provider worldwide. The hybrid approach handles format diversity across thousands of providers while deterministic rules enforce the output your KYC or accounting system expects.
Electric, natural gas, water/sewer, internet/broadband, phone/mobile, cable/satellite, waste/recycling
Investor-owned utilities (PG&E, ConEd, Duke Energy), municipal utilities, cooperatives, telecom providers (AT&T, Comcast, Verizon)
Answers about provider support, address verification, and multi-service bill handling.
Yes. For KYC, the default config reads account holder name, service address, billing date, and provider name to support address verification and identity confirmation. The fields are defined in configuration, so you can add or drop what your verification flow needs.
The default config reads account number, billing period, previous balance, payments received, current charges, and amount due, plus usage data such as kWh, therms, or gallons when present. The fields live in configuration, so you pull whatever a given bill carries and structure it for your workflow.
Sensible captures service address, mailing address, account holder name, and account number to support proof-of-address verification. Which fields you pull is configuration, so the output can be reshaped or extended to match your KYC requirements.
Yes. Sensible processes electric, gas, water, internet, and phone bills from any provider. The hybrid extraction approach adapts to each provider's format.
Yes. Sensible sends extraction results to your webhook endpoint when processing completes. You can also poll the API for status.
Yes. Sensible flags extractions with low confidence for human review. You can configure review thresholds and workflows.
Sensible is SOC 2 Type II certified and HIPAA compliant. Data is encrypted in transit and at rest.
Document data is stored indefinitely by default. Custom retention policies are available and can be configured for same-day deletion if needed.
Yes. Sensible offers a 14-day free trial on the Growth plan. No credit card required to start.
Sensible uses per-document pricing for predictable costs. No token-based billing or usage surprises. Volume discounts are available for higher throughput.
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.
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.
Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence signals.
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
Free 14-day trial. No credit card required. Start extracting in minutes.