Extract rate confirmations to structured JSON

Rate confirmations document the agreed terms for a freight move: origin, destination, rate, pickup date, and requirements. Every broker uses a different format. Sensible converts rate confirmation data into structured JSON for TMS integration, audit, and carrier payment.

Why rate confirmations defeat template-based extraction

Broker-specific formats, variable accessorial sections, and multi-stop details create format complexity.

Broker and Carrier Format Variation

Every broker and carrier generates rate confirmations with different field placement, terminology, and structure. Each gets its own SenseML configuration that maps to your TMS schema. Consistent output regardless of source.

Accessorial Charge Parsing

Detention, lumper, fuel surcharge, TONU: accessorial charges hide in varied table formats and fine print. Each charge type gets extracted with its amount and conditions, regardless of where the document places them.

Multi-Stop Shipments

Pickup and delivery locations, per-stop instructions, appointment times, reference numbers: multi-stop shipments carry detail for each stop. Each stop returns as a separate structured item with its full detail.

Fields we extract

Default fields map to common TMS schemas. Add carrier-specific fields as needed.

Shipment details

Broker name, carrier name, MC number, DOT number, BOL reference, load number, equipment type, commodity description

Rate and charges

Linehaul rate, rate type (flat/per mile/per CWT), fuel surcharge, detention, lumper, TONU, total rate, payment terms

Pickup and delivery

Origin address, origin contact, pickup date/time, destination address, destination contact, delivery date/time, special instructions


{ /* SenseML: rate confirmation extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{
// Total rate for the shipment
"id": "total_rate",
"description": "total rate, all-in rate, total charges",
"type": { "id": "currency" }
},
{
// Pickup date
"id": "pickup_date",
"description": "pickup date, ship date, load date",
"type": { "id": "date" }
},
{
// Origin city/state
"id": "origin",
"description": "origin, pickup location, ship from, origin city"
},
{
// Destination city/state
"id": "destination",
"description": "destination, delivery location, ship to, destination city"
}
// Additional fields for carrier, linehaul rate, fuel surcharge, etc.
]
}
}
]
}
LTL Rate Confirmation

Less-than-truckload rate confirmation with freight class and weight breaks.

Intermodal Rate Confirmation

Container-on-chassis or trailer-on-flat rate confirmation for rail-truck moves.

Truckload Rate Confirmation

Full truckload (FTL) rate confirmation with origin, destination, rate, and pickup details.

Supported rate confirmation formats

Pre-built templates cover common broker and carrier formats. SenseML extraction logic adapts to each broker's layout while deterministic rules guarantee your schema compliance. New formats build on existing configs.

By shipment mode

Full truckload (FTL), less-than-truckload (LTL), intermodal, flatbed, reefer, expedited

By source

Major brokerages (C.H. Robinson, XPO, Echo, TQL), carrier-direct confirmations, spot market, contract freight

Trusted by operations and engineering teams at

Common Questions

Answers about broker format support, accessorial parsing, and TMS integration.

Can Sensible extract origin and destination details?

Yes. Sensible captures origin and destination addresses, contact names, phone numbers, pickup and delivery dates/times, and any special instructions for each stop.

What rate details does Sensible extract?

Sensible extracts linehaul rate, fuel surcharge, total rate, rate type (flat, per mile, per CWT), and effective dates. Accessorial charges like detention, lumper, and TONU fees are captured separately.

Does Sensible capture accessorial charges from rate confirmations?

Yes. Sensible extracts each accessorial charge with its type, amount, and any conditions. Common accessorials include detention, layover, truck order not used, lumper, and fuel surcharge.

Can Sensible handle rate confirmations from different carriers and brokers?

Yes. Rate confirmation formats vary by carrier and broker. Sensible's configurable extraction handles each format, pulling rates, lanes, and terms regardless of layout.

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.