Table of Contents

Contract Detail Line Prices

Contract Detail Line Prices store the price of a contract detail line — or graduated price line — as its own dated record, separate from the detail line itself. This lets a contract line have several prices over time, each with its own Valid From Date and Valid To Date, while orders keep using the price that applied on their own pricing date. It's the same central price record already used for FMS contracts, now also available for TMS contracts.

Overview

Contract Detail Line Prices give you:

  • A full price history per detail line, instead of a single price that gets overwritten
  • Automatic use of the correct historical price for orders already priced, even after a new price takes effect
  • Support for both fixed prices and graduated (tiered) prices
  • A safe path to move existing contracts onto this model without having to re-enter prices

Set up Contract Detail Line Prices

  1. Choose the Lightbulb that opens the Tell Me feature. icon, enter TMS Setup, and then choose the related link.
  2. On the tab General, in the Contract Strategy group, turn on Use Contract Detail Line Price.
Field Description
Use Contract Detail Line Price Turned on by default. When on, order pricing looks up a Contract Detail Line Price first, and only falls back to the price fields on the contract detail or sub detail line when no matching price record exists. When off, pricing always uses the price fields on the contract line directly, as before.
Note

Turning this setting off doesn't remove any Contract Detail Line Prices you've already created — it only stops pricing from using them, and hides the related actions described below.

How pricing is determined

When an order, section, or trip is priced, the system looks for a Contract Detail Line Price on the matching detail line (or graduated price line) whose Valid From Date and Valid To Date cover the document's pricing date. That pricing date is the same date already configured for agreement pricing on TMS Setup — for example the document date, posting date, or an actual/planned loading or unloading date, depending on your setup.

  • If a matching Contract Detail Line Price is found, its Unit Price, Base Amount, Min. Amount, and Max. Amount are used.
  • If none is found — because the setting is off, or no price record covers that date yet — the system falls back to the price fields directly on the contract detail or sub detail line, exactly as before.

This means historical orders keep the price that applied when they were priced, while new orders automatically pick up a new price from the date it becomes valid — without anyone needing to touch already-invoiced or already-planned documents.

View and initialize prices on a detail line

Open a contract, go to the detail lines, select a line, and choose Line:

Action What it does
Detail Line Prices Opens the price history for the selected detail line, so you can review every price and its validity period.
Initialize Detail Line Price Creates a Contract Detail Line Price from the line's current price fields, if one doesn't already exist yet. Use this on individual lines you haven't migrated yet.
Note

While a Contract Detail Line Price already exists for a line, changing Unit Price, Base Amount, Min. Amount, or Max. Amount directly on the detail line updates that price record automatically — as long as the line has exactly one price record. If a line already has more than one price period, change prices through the Contract Journal instead, so the history stays intact.

Move a contract to Contract Detail Line Prices

New contracts, and new detail or graduated price lines added to any contract, automatically get a Contract Detail Line Price. For contracts that predate this feature, initialize their existing lines in bulk:

  • From the Contract list, select one or more contracts and choose Initialize Detail Line Price.
  • From a single contract, choose Functions, then choose Initialize Detail Line Prices (Contract).

The system creates a Contract Detail Line Price for every detail and graduated price line that doesn't already have one, and reports how many were created. Lines that were already initialized are skipped, so you can run this action again — for example after adding new contracts — without creating duplicates.