Pricing / LCL engine & history
LCL pricing engine
§8.3: inputs → Total Cost, Selling Price, Margin, Margin %. Rates come from the active weekly version; the formula lives in backend rules, never in the frontend (§10).
Inputs
TASK-035
Origin is required.
Destination is required.
CBM must be > 0.
Weight must be ≥ 0.
Result
— no calculation yet —Fill origin, destination and CBM, then Calculate. The engine matches the active weekly version and stores nothing until you save.
Calculation history
TASK-036 · pricing_calculations| Ref | Linked to | Lane | Rate version | Total cost | Sell | Margin % | By |
|---|
Snapshot detail
select a history rowEvery saved calculation keeps its inputs, the matched rate version and FX so old quotations stay reproducible after weekly prices rotate (§8.2, §16).
Engine boundary. The four outputs follow §8.3 exactly; component breakdown (freight/handling/trucking/customs/additional) is the backend's business-rule output — this screen renders values only. Sales can run and save calculations (§3.2) but cannot edit rate masters. Saving without a linked quotation creates a standalone record; attaching one links the calculation to a quotation draft (TASK-011 path).