Generate proposal — reading a run from drawer to deliverable
What the agent plans, the blanks it asks you to fill, how one default can change the rating method, and how to check the result.
The drawer tells you what will happen
Generate proposal opens with a summary of the work about to start, and any optional extras it will save to History alongside the main output. Read it before you confirm. This is the last cheap moment to notice that the wrong files are selected, because after this the agent starts making decisions on top of that selection.
Fetching, then planning
The run opens on a live log: fetching the source files, then planning. From here the panel is a running record rather than a spinner, which matters when a run takes minutes — you can always see what it is doing, not merely whether it is doing anything.
Thinking out loud: grouping and version policy
The agent describes what it found and how it intends to treat it. Sheets with the same shape and row count are typically read as versions of one dataset rather than as separate datasets, with the latest kept. That single decision is the difference between rating a customer's network once and rating it several times over, and it is stated in the log precisely so you can disagree with it.
The rating plan
Planning resolves into a Rating plan: the datasets it has settled on, a strategy for each, and the columns it still needs from you. Files that genuinely differ in shape stay as separate datasets and can get different treatment. You are approving a method here, not just pressing start.
Blank cells, and how to read the counts
The plan reports how many cells are blank in each optional column. Compare that count against the dataset's own row count: a blank count equal to the row count means the column does not exist for this customer at all, while anything lower means it is partly populated. Those two cases deserve different answers, and the count is the only thing on screen that distinguishes them.
The fill options, and the one that looks harmless
Each blank column offers a way to resolve it — take a value from a chip, fill it manually, or assume zero. Assuming zero reads like the cautious choice: invent nothing, record nothing. In a spreadsheet it would be.
What that zero decides
Later in the same run the agent chooses a rating method per dataset and explains itself. Mass Rating prices against a pallet-priced contract and therefore requires pallet counts; Market Pricing rates without them. So a dataset whose pallet column you resolved with "assume 0" gets Market Pricing, while a dataset that arrived with its pallets intact gets Mass Rating — same agent, same run, opposite methods, and the difference is one dropdown you answered minutes earlier. If pallet counts exist anywhere — another sheet, the covering email, your own knowledge of the freight — supply them rather than assuming zero.
Rating
Each dataset is priced by its chosen method: a batch to the TMS API, or priced off the rate card. The log names the destination for each one, which is the detail that lets you explain a specific number to a customer weeks later.
Checking a result in ten seconds
Every dataset comes back with a lane count, a total, an average, a cost range and an outlier count. Four arithmetic checks catch most problems without opening the workbook.
- Total ÷ lanes — Should equal the stated average. If it does not, one of the two is from a different population.
- Freight mix — Truckload plus LTL should sum to the lane count exactly — otherwise a lane is counted twice or not at all.
- Cost range — Both ends should be positive and plausible for the lane lengths involved.
- Outliers — Quoted as a count; work out the percentage of lanes before deciding whether to look at them.
Plan against result
One more check, and it is the one people skip: does the number of lanes rated match the dataset the plan said it would rate? A result that prices substantially more rows than the sheet it named has either grouped something extra or read a version you did not expect. Comparing the two halves of the same run is free, and it is the difference between a total you can defend and one you can only quote.
The deliverable
The output is a single workbook of several sheets: the rated data, the customer's rate sheet, and the shared reference tables — fuel surcharge schedules, rules and accessorials — stamped in at the row counts the Reference page publishes. Nobody rebuilt the tariff for this run, which is the largest time saving in the product and completely invisible unless you go looking for it.
Reading the log honestly
A run log can show a step name more than once, and several spinners live at the same time, because stages overlap rather than queue. Worth knowing so you do not read a repeated step as a stuck run — and worth reporting if the sequence makes no sense, because a log you cannot trust to be linear is harder to debug than one you can.
Ready to build your own?
Start free and ship your first app in minutes — or have us set it up with you.
More guides in Rating & Proposals
More resources