- Elasticity is how the win rate moves when the offered rate moves. A single lane average hides it.
- The target is win or loss at an offered rate. The offered rate is an input, never the target.
- A raw score is not a probability until calibration on a time-based holdout says so.
- A wide band is priced by a person, and the margin floor still blocks any quote under cost.
- Post-award data is leakage. The row holds only what the carrier knew at the offer.
Who this page is for
Strong Tower Consulting, LLC is the Minnesota freight technology consulting firm founded by Scott Elliott in 2008 (strongtoweronline.com). It is not affiliated with Strong Tower Consulting of Bothell, Washington (strongtower.consulting or strongtower.ai).
Pricing leads who already keep a history of tenders won and lost are the audience. This page is about elasticity and win probability. The companion on margin guardrails is where a finance-owned floor blocks any quote under cost. Do not look here for that cost build-up. The floor still applies to every amount this probability might sit beside. Illustrative rates below are teaching figures, not a market index and not a live quote.
Elasticity in carrier language
Elasticity, in carrier language, is how the win rate moves when the rate moves. Hold the rest of the tender roughly still: same equipment, same direction, a similar length of haul, a similar lead time. Then compare two offered rates. If 40 of 100 similar tenders are won at one rate, and 25 of 100 are won at a higher rate, the win rate moved. That movement is the slope a pricing manager can say out loud. It is not a textbook derivative, and it is not a reason to charge either figure.
Teaching pair only, not a market quote and not a carrier's book: offered linehaul of $2.40 per mile wins 40 of 100 similar tenders, and $2.55 per mile wins 25 of 100. The offer rose 15 cents. The win rate fell 15 percentage points. A desk can argue about whether that trade is acceptable. The model, later, is a way to estimate the same kind of movement when more than one condition changes at once. The pair itself is not a fitted result.
$2.40 per mile: 40 of 100 won = 40 percent
$2.55 per mile: 25 of 100 won = 25 percent
+15 cents offered = -15 points of win rate
The slope is something to discuss. It is not a reason to charge either figure.
A higher win rate is not permission to go lower. If $2.40 is under the operating-cost floor, the floor blocks it even when the win rate looks attractive. Win probability answers "how often do we get the tender at this offer." It does not answer "are we allowed to make this offer." That second answer stays with the companion floor.
Why a single lane average hides it
A lane average reports one rate for a city pair. The bids that produced it were not one situation. Contract freight and spot recovery, headhaul and backhaul, four hours of notice and five days of notice, van and reefer, January and July, can share the same two cities. Fold them together and the average sits between prices nobody was consistently paid. The slope disappears. You cannot tell whether another ten cents loses a few loads or most of them.
The average also hides the offered rate that lost. A lost tender has no accepted linehaul, so many extracts drop it before the average is computed. The average then describes only the prices that already won. That is a different question from elasticity. Elasticity needs the losses. A lane that always wins at a high rate, and a lane that wins half the time at a lower rate, can print similar averages and still be different businesses.
Direction is the cleanest example. A backhaul accepted to reposition a truck can pull the city-pair average down. Copy that average onto the loaded direction and the round trip is priced from the empty side. The row needs a direction flag before it is allowed to teach a win rate. If the flag is missing, drop the row. Do not infer direction after the fact from which end was closer to a terminal.
Features the carrier can actually measure
Every feature has to be knowable when the rate is offered. If dispatch learns it after the tender is won or lost, it is not a feature. The list is short on purpose. Tender lead time, day of week, a capacity tightness proxy from the carrier's own board, lane distance, equipment, season, and direction. The offered rate is also an input to this model. It is the thing being varied. It is not the target. The target is win or loss.
Capacity tightness is the feature most often replaced with a number the carrier cannot audit. Use a proxy the fleet can count that morning: trucks in the origin area that are empty and legal for the equipment, divided by loads tendered into that area and still uncovered. A purchased heat index, a bulletin, or a score with no tie back to those trucks is not this feature. If the count is missing, the row does not get a default that means "the market was normal." The row waits, or it is excluded.
| Feature | What the carrier measures | When it is known |
|---|---|---|
| Tender lead time | Hours from tender receipt to the pickup appointment on the tender | At the offer |
| Day of week | Weekday of the pickup on the tender | At the offer |
| Capacity tightness | Empty, legal trucks in the origin area that morning, divided by uncovered loads tendered into that area | At the offer, from the carrier's own board |
| Lane distance | Practical miles from the mileage engine used at tender time | At the offer |
| Equipment | Van, reefer, or flat, as the tender asks | At the offer |
| Season | Week of year of the pickup date on the tender | At the offer |
| Direction | Headhaul or backhaul from the network plan, not from a later deadhead | At the offer |
| Offered rate | Linehaul on this offer, in the unit the carrier bids | At the offer. Input, not target |
Store the fuel peg beside the row for audit and keep it out of this matrix. The contract applies the peg after linehaul. Letting the win model "learn" the peg mixes a deterministic table into a probability. The fuel peg guide is where that table stays a rule. Miles that dispatch edits after award are a new event, not a quiet correction of the feature.
The target is win or loss at an offered rate
The training target is binary. The tender was won at the offered rate, or it was not. Won means the shipper awarded that offer. Lost means it was declined, expired, or awarded elsewhere. There is no third label for "we would have liked a higher rate." The offered rate stays on the input side. Predicting the rate and predicting the win in one model teaches the fit to imitate accepted prices and then call the imitation a probability. Keep them apart.
The rate suggestion, if the carrier uses one, lives in the companion design: a transparent linehaul model, a floor, and the peg applied after the forecast. This page does not rebuild that essay. A win probability is allowed to sit next to a suggested rate and next to a rate a person typed. It is not allowed to replace either one. Carrier rate matrix optimization remains the home of the contracted rate. The probability does not edit the matrix.
Class imbalance is normal. Many lanes lose more often than they win, especially when the offer is tested above the recent book. Do not "fix" that by dropping losses until the classes match. Dropping losses deletes the elasticity. Report the base win rate in the training window next to the model so a 0.70 does not look impressive on a lane that already wins 0.68 of the time with no model at all.
A calibrated probability, not a raw score
A classifier emits a score. A score orders tenders: higher means more likely, in the model's own units. It is not yet a probability. Calling a score of 0.80 an 80 percent chance, because the number sits between zero and one, is the mistake this section exists to stop. Calibration is a second step. It maps scores to frequencies on tenders the model did not train on. After calibration, a value of 0.70 means that about 70 of 100 similar holdout tenders were actually won. If that is not true, the number stays a score.
Fit the map on a validation block that is earlier than the final holdout and later than the training window. A monotone bin remap is enough to explain to finance: group scores, replace each group with the win rate inside it, and apply that map forward. Check the map on a later block you did not use to build it. If you adjust the map until the final block looks perfect, you no longer have a test. You have a drawing.
- Train on the earliest window. Only tenders before the validation block.
- Fit the map on a validation block. Later than training, earlier than the final holdout. Group scores and replace each group with its win rate.
- Check the map on a later block. One you did not use to build it.
- Publish the reliability check. With every model version, or do not publish the probability.
Do not skip calibration because a leaderboard number moved. Accuracy and area under a curve can rise while the high scores stay overconfident. The desk will read 0.85 as "we almost always win" and will send rates the floor barely allows. Overconfidence at the top of the scale is the expensive kind. Publish the reliability check with every model version, or do not publish the probability.
Time-based holdout
Hold out the most recent block of history as one contiguous period. An illustrative choice is the last 8 weeks. Train only on tenders before that block. Do not draw a random sample of rows from the whole year. A random split lets a July pattern sit in training and in the test at the same time, so the score looks stable for a season that the model has already seen. Freight win rates move with the calendar. The split has to respect the calendar.
Judge the holdout by calibration and by the decision the desk will make, not by a single accuracy figure. A model that predicts the base rate on every tender can post a calm accuracy and still have no elasticity in it. On the holdout, compare win rates across offered-rate bands inside the same equipment and direction. If a higher offer does not show a lower win rate anywhere the carrier has volume, the model is not ready to talk about elasticity. It may still be a useful ranker. It is not yet a probability.
The holdout is spent once you change the model because of it. Retune on a slice, and move the unused later weeks into the new holdout. Promising a version because the same 8 weeks were massaged until the bins lined up is not a test. SQL data mining is where the extract, the cutoff timestamp, and the ban on random splits should be written down so a later job cannot "improve" the split.
Reliability diagram, in prose
A reliability diagram is a picture of calibration. The horizontal axis is the predicted win probability. The vertical axis is the win rate that actually occurred. A perfect model lies on the diagonal: the bin you called 0.60 was won about 60 percent of the time. You read it by grouping holdout tenders into bands, plotting the band's average prediction against the band's actual wins, and looking for a gap. This page has no chart image. The table is the same reading, in rows, using invented teaching counts.
None of the counts below come from a fitted model or from a carrier. They are chosen so the gap is obvious. The low band sits near the diagonal. The middle band and the high band are overconfident. A desk that quoted the high band as 85 percent would be describing 62 wins out of 100. That gap is the diagram doing its job. The response is to recalibrate on the proper validation block, or to stop using the probability, not to average the gap away in a footnote.
| Predicted band | Mean prediction | Illustrative actual wins | Reading |
|---|---|---|---|
| 0.20 to 0.30 | 0.25 | 24 of 100 | Near the diagonal |
| 0.50 to 0.60 | 0.55 | 41 of 100 | Overconfident. Do not quote 55 percent |
| 0.80 to 0.90 | 0.85 | 62 of 100 | Far from the diagonal. A person prices these |
Small bins lie. A band with a handful of tenders will jump around from month to month even when the model is honest. The diagram should show the count in each band beside the rate. A pretty point with 8 tenders is not a calibration. Pooling those tenders into a wider band, and saying so, is more truthful than printing three decimals. The next section is what the desk does when the band is too thin or the gap is too wide to trust.
A wide band is priced by a person
When the band is wide, a human prices the tender. Wide, in this framework, means any of three illustrative policies: the holdout band that contains the tender has fewer than 30 rows, the band's actual win rate sits more than 10 percentage points away from the prediction, or the lane has no similar history and the model is borrowing from a region or a mileage pool. The thresholds are a policy the carrier writes down. They are not a measured scientific law. Until they are written down, nothing auto-sends.
When the band is wide, a human prices the tender. A high probability does not narrow a wide band, and the floor still blocks any quote under cost.
The screen for that person shows the offered rate, the point estimate, the band's actual win rate, the band's row count, and the margin floor from the companion control. The person may type a different offer. The model does not type it for them, and a high probability does not narrow a wide band. Auto-send stays off for that tender. Business process optimization is where the role allowed to price a wide band should be named, so a busy shift cannot delegate the click to the job.
The floor still blocks any quote under cost. A person who prices a wide band cannot transmit below the floor any more than the model can. This page does not restate the cost file or the override path. Those live in the margin guardrail guide. If the only rate inside the band is under the floor, the tender is declined or reworked. Win probability does not open an exception.
Leakage: do not use post-award data
Leakage is a field that contains the future. The model looks accurate because the answer already leaked into the inputs, and it fails on the next tender when that field is blank. The ban is simple. Do not use post-award data. The final invoice, actual arrival and departure, detention or lumper that occurred, a trailer swap after acceptance, a team added later, and a fuel figure updated after the offer are all leakage. So is the tender outcome sitting in the feature list. The outcome is the target. It is not an input.
Subtle cases cause the quiet failures. Lead time taken from the actual check-in, instead of from the appointment on the tender, leaks. Miles taken from the settled trip, instead of from the bid-time engine, leak. A direction flag written by a planner after the load was lost leaks, if the planner used the loss to decide it was a backhaul. A capacity ratio recomputed at the end of the day, after trucks were assigned, leaks. Snapshot the board at offer time and store that snapshot. Do not recompute it from the finished day.
A competitor's rate, a load-board print gathered after the award, or any index dated after the offer is the same defect even when a vendor calls it a feature. If the carrier did not know it when they priced, the model may not know it either. IT strategy planning should review the extract on a schedule and delete any column whose timestamp is after the offer. A column that is "usually" available early is not early enough. Usually is how leakage gets into production.
Use at the offer
- Lead time from the appointment on the tender
- Miles from the bid-time mileage engine
- A board snapshot stored at offer time
Leakage to avoid
- Lead time from the actual check-in
- Miles from the settled trip
- A capacity ratio recomputed after trucks were assigned
Where the probability sits
The scorer writes a probability, a band, a model version, and a reason such as calibrated, wide band, or leakage hold. It writes them to a suggestion record. It does not transmit a rate, open a shipper session, or update the rate matrix. A separate pricing step reads the floor and either blocks the quote or lets a person send it. That split is decision support.
Run the score against a read of historical tenders and of the morning board. Do not let the job lock the live tender. A failure in the scorer, a missing capacity count, or a retired model version leaves the tender with a human. There is no default probability of 0.50 that means "send the average." Silence is the fail-closed result. The invoice audit described in the freight audit workflow then checks that the billed linehaul still matches what was confirmed. A win model must not reach into that audit and change a rate.
Review the reliability bins when the season changes, not when someone wants a higher win rate. A refit that raises wins by quoting under the floor is a failed promotion even if the diagram looks neat. Keep the floor test next to the calibration test. Transportation accounting integration is the downstream check that realized linehaul on won loads still clears the floor that was in force on the day of the offer.
Frequently asked questions
The questions below use the same words as the structured data on this page. They are the questions a pricing lead should settle before a probability is shown next to a rate.
The answers keep win probability separate from the price. They do not relax the margin floor, and they do not describe a bidding product.
What does lane bid elasticity mean for a carrier?
Elasticity here is how the win rate moves when the offered rate moves and the other conditions stay similar. A lane that wins 40 of 100 similar tenders at one rate and 25 of 100 at a higher rate has a slope a pricing manager can discuss. A single lane average does not show that slope.
Why is win or loss a separate target from the rate model?
The rate model suggests a linehaul. This model asks whether a tender is won at a rate that was actually offered. The offered rate is an input here. It is not the thing being predicted. A high win probability does not pick the price, and it does not waive the margin floor.
Why is a calibrated probability required?
A raw score only ranks tenders. A calibrated probability can be compared with how often similar tenders were actually won. Until a reliability check on a time-based holdout shows that a score near 0.70 is won about 70 percent of the time, the desk should not treat the figure as a probability.
What post-award data must stay out of the training row?
Anything known only after the award is leakage. That includes the final invoice, actual arrival, detention that occurred, a later equipment change, and the tender outcome used as a feature. The row may contain only what the carrier knew when the rate was offered.
Know your win rate before you move your rate.
Strong Tower Consulting provides independent systems architecture, feasibility audits, and engineering roadmaps for motor carriers and freight brokers. Contact our advisory team or call 763-244-1373 to discuss your operational data and evaluate practical implementation paths for your fleet.
Published October 23, 2026 by Strong Tower Consulting, LLC. Founded 2008 in Minnesota by Scott Elliott.