Markup + Win Probability
The highest-leverage pricing endpoint. Give it a lane and a proposed rate — get back win probability at that exact rate, a suggested sweet-spot rate derived from your historical wins, the full rate distribution, and a plain-English verdict ready to drop into your UI.
What you get back
A single call gives you everything to either display pricing guidance to an operator or auto-decide whether a rate should be quoted. Example response for Atlanta → Dallas dry van at $2,350:
{
"found": true,
"query": {
"origin": "Atlanta, GA",
"destination": "Dallas, TX",
"equipment": "V",
"proposed_rate": 2350.00,
"dat_rate": 2050.00
},
"win_probability": 0.72,
"confidence": "high",
"markup_pct": 14.6,
"suggested_rate": 2280.00,
"rate_band": {
"floor": 1850.00,
"median": 2150.00,
"ceiling": 2500.00
},
"verdict": "Strong lane — proposed rate of $2,350 is 14.6% over DAT, above historical median of $2,150. 72% win probability. Likely to win."
}
Three ways to use this
1. Inline display: show verdict as live tooltip text next to the rate input. Updates as the operator types.
2. Win probability gauge: render win_probability as a colored bar or percentage. Green above 0.6, yellow 0.35-0.6, red below.
3. Auto-decision: for bulk quoting, only send quotes where confidence == "high" and win_probability >= 0.5. Skip the rest or route to a human.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| origin | string (required) | Pickup city + state, e.g. Atlanta, GA. |
| destination | string (required) | Delivery city + state, e.g. Dallas, TX. |
| equipment | string (optional) | Equipment type code, e.g. V. If omitted, all equipment types on the lane are used. |
| proposed_rate | number (required) | The rate in USD you're considering quoting. Must be greater than 0. Win probability is computed against this value. |
| dat_rate | number (optional) | DAT market rate for reference. If provided, markup_pct is computed vs this. If omitted, WardenIQ uses its derived historical median as the reference. |
Response field reference
win_probability
Estimated probability (0.0 to 1.0) that the proposed rate would win on this lane. Computed by counting historical wins at comparable or lower rates vs total decided quotes. If the proposed rate is above the historical ceiling, this returns a pessimistic floor estimate.
confidence
- high 15+ decided quotes on this lane. Trust the
win_probabilitynumber. - medium 5-14 decided quotes. Directional signal only.
- low 1-4 decided quotes. Treat as a rough hint.
- none No historical data. All numeric fields will be
null.
markup_pct
Markup percentage calculated as (proposed_rate − reference) / reference × 100. The reference is dat_rate if you supplied one, else WardenIQ's derived historical median. Rounded to 1 decimal place.
suggested_rate
The sweet-spot rate WardenIQ recommends. Derived from your historical winning markups — specifically, the average of winning rates with a slight cushion below the lowest losing rate. May be higher or lower than proposed_rate.
rate_band
Floor / median / ceiling of rates actually quoted on this lane historically. Use this to show the operator visually where their proposed rate sits in the distribution — a sparkline or horizontal bar works well.
verdict
Plain-English recommendation ready to display. Combines all the above into one sentence so you can wire it up in minutes without writing conditional logic.
curl example
curl "https://wardeniq.com/api/integrations/insights/markup?origin=Atlanta,%20GA&destination=Dallas,%20TX&equipment=V&proposed_rate=2350&dat_rate=2050" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"
Read endpoint — service token only, no HMAC signing required.
No-data response
{
"found": false,
"query": {
"origin": "Albuquerque, NM",
"destination": "Helena, MT",
"equipment": "F",
"proposed_rate": 3500.00,
"dat_rate": null
},
"confidence": "none"
}
Handle found: false gracefully in your UI. Don't show a fake win probability when there's no data to back it.
Use cases
- Inline rate coaching. Operator types
2350in the rate field → debounced API call → win probability badge updates to "72% — likely to win" in real time. Instant pricing feedback. - Pre-send sanity check. Before clicking "Send Quote," call this endpoint and show a modal if
win_probability < 0.4: "This rate has a 34% win probability. Continue anyway?" - Bulk auto-quoting. For a batch of RFQs from a low-touch customer, call this endpoint for each and auto-send only those with
confidence == "high"andwin_probability >= 0.55. - Pricing audit. Nightly job runs through yesterday's lost quotes, calls this endpoint with the quoted rate, and flags any where the rate was above the
suggested_rate— a coaching signal for the operator. - Bid room support. In a live bid room, operator adjusts rate → this endpoint updates the win probability gauge → operator can see the pricing curve interactively.
Rate limit
10 requests per second per tenant. For inline rate coaching that debounces on every keystroke, implement client-side debouncing (300-500ms) and cache per (origin, destination, equipment, rate) for 5 minutes.