💡Getting started: Click any module card above, or use the sidebar, to begin. Your progress updates automatically as you open module tabs and read through each section, so you always know what you've already covered. Use the search bar at the top to jump straight to a specific field, question or FAQ.
Home › Dashboard
🏠 Dashboard
Your landing page for all open trades and quick actions
🏠 DASHBOARD MODULE
🔄 What you see when you log in
🔑
User Login
Any role
📋
Trade List (default screen)
Home screen
🧭
Left Sidebar Module Menu
All modules
➕
New Trade / Advance Invoice
Trade list actions
📌The Trade List is the default screen after login. Every module in CMS — Deal Management, Scheduling, Inventory, Reports and so on — is reached from the module menu on the left of this screen.
Trade List — Key Columns & Actions
Trade ReferenceREQUIRED
System-generated unique reference for each purchase or sales contract.
Buy/SellREQUIRED
Indicates whether the row is a purchase or a sales contract.
Trade StatusREQUIRED
Pending, Accepted or Void — see the Tips tab for what each means.
Zero Out QuantityOPTIONAL
A dedicated column showing quantity that has been marked "Zero Out" from this screen.
Counter PartyREQUIRED
The buyer or seller on the contract.
Create Advance InvoiceOPTIONAL
Action available directly from the Trade List to raise an advance invoice without opening the contract.
New TradeOPTIONAL
Launches Deal Management > New Trade to capture a fresh contract — see the Deal Management module.
💡Zero Out: Select a trade on the Trade List and mark its quantity as "Zero Out" to remove it from open positions without deleting the record — the zeroed quantity stays visible in its own column for audit purposes.
⚠️Backdated trades: The system only allows trades to be backdated up to 3 days from today's date. Anything older must be entered with the current trade date.
📌Status meanings:Pending — contract saved but not yet approved. Accepted — contract has been approved and is live. Void — manually voided by a user; void is only possible before any PO/SO/GRN/Invoice has been created against the contract.
What is the first screen I see after logging in?▼
The Trade List, showing all purchase and sales contracts with their status. The full module menu is on the left.
Can I create an invoice without opening a contract?▼
Yes — the Trade List screen has a dedicated action to create an advance invoice directly.
How far back can I backdate a new trade?▼
Up to 3 days before today's date. Older trade dates are not permitted.
What does "Zero Out" do to a trade?▼
It marks the selected quantity as zeroed without deleting the contract, and displays that quantity under its own column on the Trade List for traceability.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Deal Management
📄 Deal Management
Capture, price and submit purchase & sales contracts
📄 DEAL MODULE
📌Deal sub-modules: The tour menu is organised as New Trade, My Trades, My Approvals and View All Deals. Use New Trade for entry, My Trades for your drafts/submissions, My Approvals for pending approval action, and View All Deals for the full searchable contract list.
🔄 New Trade — End-to-End Flow
📝
New Trade
Deal Mgmt > New Trade
🧾
Deal Details
Header info
📦
Trade Sections
Commodity / Qty
💲
Price Details
Pricing setup
💱
Forex
Currency & FX
💰
Costs & Charges
Add-on costs
⚙️
Optionality
Contract flex
📨
Submit Deal
Trader / Operator
🟢
Pending → Accepted
Approval workflow
📌A new contract is captured on a single scrolling page divided into collapsible sections — Deal Details, Trade Sections, Price Details, Forex, Costs & Charges and Optionality. Each section can be expanded or collapsed independently with the chevron in its header bar.
💡Use Load Template (top-right of the New Deal Creation screen) to pre-fill a contract from a saved template, or Save Draft to keep working on it later without sending it for approval.
📦Deal-to-inventory handoff: Once a purchase deal section is approved and selected for intake, the inventory process uses the deal's commodity, grade, origin, quantity, UOM, pricing, Incoterm and warehouse defaults to create or plan CTRM batches. Any missing or incorrect deal data should be corrected before intake because it drives batch quantity, inventory classification, valuation and later ledger/WAC reporting.
📋 9 walkthroughs in this section — click any to expand and mark complete
0 / 9
11. Starting a new deal & completing Deal Details▼
1
Open New Trade
Go to Deal Management > New Trade. The system opens the New Deal Creation screen with the Deal Details section expanded first.
2
Choose Buy/Sell before anything else
Select Buy/Sell first. Several other fields — notably Counter Party — stay disabled with a "Select deal type first" placeholder until this is set.
3
Complete the header fields
Fill in Contract Type or Inventory Treatment, Trade Date, Counter Party (toggle Intercompany if the deal is between related entities), Counterparty Address, Broker Name/Reference, Strategy, Business Unit, Profit Center, Settlement UOM, Settlement Currency, Arbitration flag, Trader, Operator, Payment Term, Buyer or Seller Option and Buyer/Seller Reference where applicable.
4
Set the contract tolerance
Choose the Contract Tolerance Type and enter the Above / Below tolerance (e.g. +10% / -10% or a fixed quantity like 100). This governs how much over- or under-delivery is permitted against the trade quantity.
Deal Management → New Trade → Deal Details
Buy/Sell
Required, first field
Counter Party
Locked until Buy/Sell set
Settlement Currency
Required
Trade Input Date
Required
Payment Term
Required
Trade Status
Defaults to Draft
Buyer/Seller Option
Must align to deal side
Arbitration
Yes/No toggle
⚠️ The tolerance set here applies to the entire trade quantity and can be updated at any point until a GRN has been created against the contract — the updated tolerance also applies to existing and new transfers.
22. Building Trade Sections▼
1
Add a section
Expand Trade Sections and use the + button to add a row. Use the section actions to clone or delete a section — useful when one contract splits across several delivery months, grades, origins or Incoterms.
2
Fill the mandatory fields
Commodity, Item, Grade/Crop Year, Origin, Brand/License where used, Trade Quantity, Quantity UOM, External/Internal Packing, Number of Internal Packing, Load Location, Discharge Location, Delivery Start Date, Delivery End Date, Incoterms, Weight, Tax Rate %, Provisional Price, Contract Month, Contract Market, Contract Currency, Valuation Month, Valuation Market and Valuation Currency are all mandatory or business-critical per section.
3
Scroll right for ownership & release rules
The Trade Sections grid is wide — scroll right to reach Incoterms, Weight, Tax Rate %, Provisional Price, Valuation Market, Valuation Currency, Ownership status, Title transfer rule and D365 release rule. The videos show these fields sitting beyond the first visible columns, so do not submit until the far-right cells are checked.
4
Attach contract documents
Documents are added from the Documentation section by searching or selecting a document from the master list, clicking + Add, and confirming the Total Docs counter. Attach Outlook messages, PDFs, Word or Excel files directly against the contract where required.
Deal Details → Trade Sections → + (Add Section)
Commodity
Required
Trade Quantity
Required
Quantity UOM
Required
Tax Rate %
Required
Provisional Price
Required per section
Title transfer rule
Required
⚠️ You can keep updating trade section details right up until a GRN has been created. After that, changes to quantity/tolerance must go through the overfill handling process instead.
33. Setting up Price Details▼
1
Pick the Price Component
Choose how the contract is priced: Future+Differential, Futures+Differential+Premium, Futures+Differential+Sustainability, Flat, or Futures Reference Month+Basis. This list is configurable via the masters.
2
Watch the pricing status badge
The top-right badge automatically shows Unpriced, Partially Priced or Fully Priced depending on how much of the contract quantity has been price-fixed.
3
Let the system pull curve data
Once an Exchange/Index is selected, the number of lots, the Differential Valuation Curve and the Futures/differential combination are auto-populated from the Price Index Master and MTM Index Mapping master — though lot count remains editable.
4
Fix price now or later
Use Fix Now % to partially or fully price-fix the contract quantity immediately, either from this screen or later from the Trade List by editing the contract. Balance Open % shows what remains unfixed.
5
Capture a Hedge Reference if fixing
When fixing price, fill the free-text Hedge Reference field and choose a Type: Purchase Origin, Purchase Supplier, Sale Client, Book Level Calendar Spread or Book Level Arbitrage.
Trade Sections → Price Details
Trader Price Method
e.g. Flat / Fixed
Basis / Differential
Free text
Exchange / Index
Drives curve auto-fill
Contract Month
Required
Valuation Month
Editable until fully fixed
Fix Now %
Optional, triggers fixation
Premium Treatment
Required when premium applies
Index / Fixed rows
Review both pricing lines
💡 Contract Month and Valuation Month can differ, and can be edited independently — Valuation Month can be updated at any point until the trade quantity is fully price-fixed. An email notification automatically goes to the Operations team whenever price is edited.
44. Configuring Forex▼
1
Set the three currencies
Capture Contract Currency, Settlement Currency and Functional Currency. If Contract and Settlement Currency differ, the system auto-converts using the latest available FX rate — unless a user-entered FX rate is supplied, which always takes priority.
2
Flag FX exposure & hedge needs
Set FX Exposure and answer FX Hedge Required? Choose the applicable FX Rule, and for Fixed-rate conversions enter the Fixed FX Rate directly.
3
Record fixing & tolerance references
FX Fixing Reference (e.g. ECB / Treasury rate / Bank quote) and Allowed FX Tolerance (e.g. +/- 1%) document how the rate should be sourced and how much variance is acceptable.
4
Use Treasury notes correctly
The Treasury notes box is for FX handling notes only — it is explicitly not the place to capture execution next-actions.
Trade Sections → Forex
Contract Currency
Required
Settlement Currency
Required
FX Hedge Required?
Yes/No
Treasury Owner
Treasury / Finance owner
⚠️ Treasury notes field placeholder explicitly states: "Capture FX handling notes only. Do not capture execution next actions here."
55. Adding Costs & Charges▼
1
Choose Cost or Revenue
Each cost line is flagged as a Cost (negative polarity, deducted from total price) or Revenue (positive polarity, added to total price).
2
Choose Unit or Lumpsum
Capture the cost either as a per-unit rate or as a single Lumpsum amount. The grid also records settlement currency/UOM, cost payment term, counterparty, effective date, FX rate, cost status, cost scope, transfer/non-transfer treatment and D365 status.
3
Apply at section level
Costs are added at the Trade Section level, not against the whole contract — so a contract split across multiple sections can carry different costs per section.
4
Use the right currency
Costs can be captured in multiple currencies; the value itself can never be entered as negative — polarity (Cost vs Revenue) controls the sign.
Trade Sections → Costs & Charges
💡 Cost and Revenue amounts must always be entered as positive numbers — the Cost/Revenue toggle is what determines whether it subtracts from or adds to the total settlement price.
66. Capturing Optionality▼
1
Open Optionality
This section lets the trader build in contractual flexibility agreed at an earlier stage of the deal — e.g. a buyer being allowed to vary Grade/Crop Year, Origin, Discharge Location or Internal Packaging within limits. The videos show optionality rows for Grade, Origin, Internal Packing and Discharge Location, with value, pricing type, price, currency/UOM, cost/revenue, applies-to, expiry date, status and post-GRN rule columns.
2
Apply a premium or discount
Each optionality type can carry a premium or discount that adjusts price when the option is exercised.
3
Know the cut-off
Optionality can be added or modified any time up until a GRN has been created for the contract.
Trade Sections → Optionality
⚠️ Modifying optionality automatically triggers a notification email to the Operations team so the change is reflected in their overview file. Optionality changes remain possible after a partial GRN for the overall trade quantity, as long as it relates to a new PO.
77. Submitting & the approval workflow▼
1
Save Draft vs Submit Deal
Save Draft keeps the contract editable without starting approval. Submit Deal moves the contract into Pending status and triggers an approval-request email to the assigned approver.
2
Approval moves it to Accepted
Once approved, the contract status changes to Accepted and an automatic email is sent to the Operations team.
3
Re-approval on price edits
Any time pricing details are updated after acceptance, the contract reverts to Pending for the non-executed quantity and must go through approval again.
4
Voiding a contract
A contract can be cancelled/voided only while no PO/SO has been created against it. If PO/SO/GRN/Packing Slip/Invoices already exist, those must be reversed or cancelled first before the contract itself can be voided.
New Deal Creation → Save Draft | Submit Deal
Pending
Saved, awaiting approval
Accepted
Approved, live
Void
Manually cancelled
✅ Approval rights are assigned to users via master configuration — only users with the relevant right can approve a Pending contract.
88. Checks for Buy/Sell, DIS and Normal deals▼
1
Confirm the deal side and operating variant
The uploaded Buy and Sell recordings show the same New Deal Creation layout, but the selected side changes the expected strategy, counterparty role, Buyer or Seller Option and downstream inventory meaning. Normal and DIS-style deals should be checked before the user starts entering rows.
2
Use the top actions deliberately
Load Template can pre-fill repeat deal patterns, Save Draft preserves work without approval, and Submit Deal sends the contract into workflow. These buttons remain visible at the top-right while the user scrolls the deal page.
3
Treat the right-side Summary as a final review panel
The screen shows a vertical Summary handle on the right edge. Use it as a last check after Trade Sections, Price Details, Forex, Costs, Documentation and Optionality have been completed.
4
Watch multi-section row controls
The video walkthroughs repeatedly use row selection, the plus button, clone/copy, delete and horizontal scrolling. For multi-section deals, review each row independently because pricing, packaging, delivery dates, locations, costs and optionality can differ by section.
5
Check browser permission prompts once
Some recordings begin with a location-access browser prompt. If it appears, allow or dismiss it according to company policy, then continue in CMS; it is not part of the deal data and should not distract from required fields.
Observed in uploaded Buy/Sell Normal and DIS multi-section deal creation videos
✓ Practical rule: complete the page left-to-right and top-to-bottom, then scroll each grid fully to the right before using Submit Deal.
99. How to use Load Template▼
1
Start from New Trade
Go to Deal Management > New Trade. Use Load Template from the top-right actions on the New Deal Creation screen before entering manual deal details.
2
Select the saved template
Choose the template that matches the repeat deal pattern, such as Buy or Sell, Normal or DIS, commodity, counterparty, pricing structure, costs and common section layout. Do not load a template for a different deal side unless the user intends to rebuild the affected fields.
3
Review what was pre-filled
After the template loads, check Deal Details, Trade Sections, Price Details, Forex, Costs & Charges, Documentation and Optionality. Treat the template as a starting point: update trade date, counterparty-specific references, quantities, delivery dates, contract/valuation months, prices, warehouses, payment terms and documents for the current contract.
4
Scroll every grid before submitting
Template-loaded rows can include hidden right-side fields in wide grids. Scroll Trade Sections, Price Details, Costs and Optionality fully to the right to confirm Incoterms, tax, ownership, D365 release rule, valuation currency, applies-to rules and expiry dates.
5
Save or submit only after validation
Use Save Draft if the template needs later review, or Submit Deal only after all template values have been replaced with the current trade values and the Summary panel matches the intended contract.
Deal Management > New Trade > Load Template
Load timing
Before manual entry
Template use
Repeat deal patterns
Must review
All pre-filled sections
Final action
Save Draft or Submit
⚠️ A loaded template reduces typing, but it does not replace user validation. Wrong side, quantity, dates, pricing, costs or optionality can carry into approval, inventory intake and D365 release.
Trying to fill Counter Party before Buy/Sell
HIGH RISK▼
Counter Party (and several dependent fields) stay locked with a "Select deal type first" placeholder until Buy/Sell is chosen — attempting to click into them first does nothing and confuses new users.
✅ Fix: Always select Buy/Sell as your first action on a new deal, then move left-to-right through the remaining Deal Details fields.
Editing Optionality or the contract tolerance after a GRN has been created
HIGH RISK▼
Both Optionality and the contract tolerance can only be amended up to the point a Goods Receipt Note (GRN) is created. Edits attempted afterward will not apply correctly, and overfill scenarios must instead be handled through the contract tolerance update process for overfill, per the D365 limitation.
✅ Fix: Confirm GRN status on the Execution module before attempting to change optionality, tolerance, or trade quantity on an existing contract.
Confusing Contract Month with Valuation Month
MEDIUM▼
These are two distinct fields. Contract Month drives the trade value calculation for unpriced quantity; Valuation Month drives the Market Value (MTM) calculation. Treating them as the same field produces incorrect PnL.
✅ Fix: Set Contract Month at trade sections level when the section is built, and review Valuation Month separately on Price Details — it can be updated independently until the quantity is fully price-fixed.
Writing execution next-actions into the Treasury notes box
MEDIUM▼
The Forex section's Treasury notes field is reserved for FX handling notes. Using it to log operational next-steps means Treasury-relevant information gets buried and operational tasks get missed by the Operations team, who track their own overview file instead.
✅ Fix: Keep Treasury notes limited to FX handling commentary; raise operational next-actions through the standard email notifications the system already triggers on price/optionality changes.
Leaving the contract on the default Price Component without selecting a deliberate pricing method
MEDIUM▼
If Trader Price Method / Price Component is left at a default value, the contract can sit "Unpriced" longer than intended, which affects both the Pricing Status badge and downstream MTM/PnL reporting.
✅ Fix: Explicitly choose the correct Price Component (Future+Differential, Futures+Differential+Sustainability, Flat, or Futures Reference Month+Basis) for every contract during Price Details setup.
Forgetting to attach contract documents at creation time
LOW▼
Contract documents (Outlook message, PDF, Word, Excel) can be attached directly to the contract — skipping this means documents have to be added later via the OMS-linked Contract Documents screen instead.
✅ Fix: Attach available contract documentation while completing Trade Sections, rather than relying solely on the OMS download link afterward.
What is the difference between Save Draft and Submit Deal?▼
Save Draft keeps the contract fully editable and out of the approval workflow. Submit Deal moves the contract to Pending status and emails the assigned approver to request approval.
How is the total settlement price calculated when contract and settlement currency differ?▼
The system converts automatically using the latest available FX rate, unless a user has entered a specific FX rate — a user-input rate always takes priority over the system rate.
Can I edit a contract after it has been Accepted?▼
Yes, but any pricing edit reverts the non-executed quantity back to Pending status and re-triggers the approval workflow.
What happens if I change the tolerance percentage on an existing contract?▼
The updated max/min tolerance applies to both existing and new transfers under that contract, as long as it is updated before a GRN has been created.
How does partial price fixation work?▼
Use Fix Now % on Price Details (or edit the contract from the Trade List) to fix part of the quantity. The Pricing Status badge will show "Partially Priced" and Balance Open % shows what remains unfixed; the system displays a weighted average price across multiple fixations.
Can I roll over a contract that has no linked futures trade?▼
Yes — physical contracts can be rolled over even without a linked future trade (referred to as unhedged deals). Priced contracts can also be rolled over, but only when the Contract Month has expired and only for Price Unfixed quantity; Valuation Month is editable on rollover whenever the month has expired, regardless of priced/unpriced status.
Why did my contract move back to Pending after I only changed the price?▼
Any pricing update on an Accepted contract automatically routes the affected (non-executed) quantity back through the approval workflow — this is by design to ensure price changes are re-approved.
How does a deal feed inventory intake?▼
An approved purchase deal section is selected during inventory intake. CMS uses the deal section's commodity, grade, origin, quantity, UOM, pricing, Incoterm and warehouse defaults to create or plan CTRM inventory batches.
How do I attach or retrieve contract documents?▼
Documents can be attached directly during Trade Sections setup, or accessed afterward via the Contract Documents link, which opens the OMS system to download all related documents without leaving the CMS interface.
📅 Daily Tasks
✓
Capture and submit new purchase/sales contracts received from the desk
Trader
✓
Review contracts sitting in Pending status awaiting approval
Approver
✓
Action price-edit notifications and update the operations overview file
Operations
📆 Weekly Tasks
✓
Review open (unfixed) quantity and plan upcoming price fixations
Trader
✓
Reconcile contract tolerance settings ahead of expected GRNs
Operations
✓
Review optionality clauses nearing exercise windows
Trader
🗓️ Month-End / Expiry Tasks
✓
Identify Price Unfixed contracts with an expired Contract Month for rollover
Trader
✓
Confirm void/cancel requests have no outstanding PO/SO/GRN/Invoice before processing
Operations
✓
Validate all contract documents are attached or available via OMS
Operations
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3), CTRM user manual source documents, and the uploaded Buy/Sell Normal/DIS deal creation, Template and Inventory Purchase videos provided for process clarification.
Home › Trade Linking
🔗 Trade Linking
Link purchase and sales contracts for scheduling & execution
🔗 LINKING MODULE
🔄 Linking Purchase & Sales Contracts
📥
Purchase Contract
Accepted status
📤
Sales Contract
Accepted status
🔗
Create Linkage
Trade Linking screen
🔢
Unique Link Number Issued
System generated
🚚
Used in Scheduling & Execution
Search by link number
📌Linkage can be 1-to-1, 1-to-Many or Many-to-1 — for example, one large purchase contract split and linked against several smaller sales contracts.
💡A separate, related capability lets you link a physical contract to an FX forward trade using an "FX Hedge Reference" plus a free-text comment field — this is how a physical deal's currency exposure is tied to its FX hedge.
Trade Linking — Key Fields
Purchase Contract ReferenceREQUIRED
The accepted purchase contract being linked.
Sales Contract ReferenceREQUIRED
The accepted sales contract being linked. Supports linking multiple sales contracts to one purchase contract, or vice versa.
Linkage NumberOPTIONAL
System-generated unique identifier created once the link is saved — used downstream to search linked trades in Scheduling.
FX Hedge ReferenceOPTIONAL
Used specifically when linking a physical contract to an FX forward trade.
CommentOPTIONAL
Free-text comment field accompanying the FX Hedge Reference link.
💡Always create the linkage before going to Scheduling — the Scheduling screen searches existing linked trades by Linkage Number, so an unlinked contract won't appear there.
📌Linkage exists purely to make Operations' life easier: it gives every purchase/sales pair (or group) a single shared reference to use across Scheduling and Execution.
Can one purchase contract be linked to more than one sales contract?▼
Yes — the system supports 1-1, 1-Many and Many-1 linkage types.
What is the Linkage Number used for?▼
It is a unique identifier created at the point of linking, used to search for linked trades quickly during Scheduling and Execution.
How do I link a physical contract to its FX hedge?▼
Use the FX Hedge Reference field together with the comment field to associate the physical contract with the relevant FX forward trade.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Scheduling
📅 Scheduling
Schedule open quantity to Instore or to the sales counterparty
📅 SCHEDULING MODULE
🔄 Scheduling an Open Position
🔎
Search by Link Number
Find linked trade
📐
Select Trade or Storage
✏️
Enter Scheduling Details
Vessel, dates, weights
🔀
DIS or Non-DIS?
Branch point
🔢
TO Number Auto-Generated
On save
📦
Inventory Updated
DIS scenario only
⚠️DIS inventory note: DIS (Delivery Instore) inventory only moves into the ACF inventory module once it is matched against the shipment BL. Until then, any advance paid to the supplier is treated as a supplier advance — stock delivered at origin against that advance is not yet part of ACF inventory.
Scheduling Screen — Key Fields
Link NumberREQUIRED
Search field used to locate the already-linked purchase/sales trade pair.
Scheduled QuantityREQUIRED
Entered once an execution mode has been selected for the linked trade.
TO Ref NumberOPTIONAL
Auto-generated transfer order reference once scheduling is saved.
Stuffing DateOPTIONAL
Date the container/vessel is stuffed.
BL Weight (MT)OPTIONAL
Bill of Lading weight in metric tons.
Vessel ETD / ETAOPTIONAL
Estimated Time of Departure / Arrival for the vessel.
Quay TimeOPTIONAL
Time spent at the loading quay.
Transit TimeOPTIONAL
Total transit duration.
Dest Quay TimeOPTIONAL
Time spent at the destination quay.
Free DaysOPTIONAL
Free demurrage/storage days allowed at destination.
DIS flagREQUIRED
Indicates whether this scheduling instance is a Delivery Instore (DIS) scenario.
📌Non-DIS: the system simply lets the user proceed with scheduling the transfer once trade or storage has been selected.
💡DIS scenario: the user additionally fills in the quantity being brought into origin inventory and saves — this immediately updates the Inventory module with the available stock at the origin warehouse.
💡Optionality can be amended on the execution screen when an optionality type exists at contract level — and remains amendable after a partial GRN as long as it relates to a new PO.
How do I find the trade I want to schedule?▼
Search by the Linkage Number created in Trade Linking — this surfaces the already-linked purchase/sales pair.
What gets generated automatically when I save a scheduling entry?▼
A "TO Number" (Transfer Order number) is auto-generated by the system the moment scheduling is saved.
Does scheduling update inventory immediately?▼
Only for DIS scenarios — saving a DIS scheduling entry updates the Inventory module with available stock at the origin warehouse straight away. Non-DIS scheduling does not.
Why doesn't my DIS stock show in ACF inventory yet?▼
DIS inventory only becomes part of ACF inventory once it is matched against the shipment BL. Before that, it sits as a supplier advance rather than recognized inventory.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › MTM & Valuation
📊 MTM & Valuation
Mark-to-market positions against contract & valuation months
📊 VALUATION MODULE
🔄 Trade Value vs Market Value
📑
Contract Month price
Drives Trade Value
📈
Valuation Month price
Drives Market Value
🌙
EOD Run
Snapshot taken
💹
MTM Calculated
Unrealized PnL
📌For an unpriced contract, the Trade Value is calculated using the price taken from the Contract Month — as though it had been fixed against that month — while the Market Value is calculated using the price from the Valuation Month. The difference between the two is the unrealized MTM.
Worked example from the functional specification:
An unpriced contract: Quantity 1,000 MT, Differential GBP 150, Contract Month March 22, Valuation Month May 22.
Futures price for March 22 = 1,600; futures price for May 22 = 1,610; market differential for May 22 = GBP 160.
Trade Value = 1,000 × (150 + 1,600) = 1,750,000 Market Value = 1,000 × (160 + 1,610) = 1,770,000 Unrealized MTM = Market Value − Trade Value = +20,000
💡This Trade Value vs Market Value comparison is also exactly what feeds the Open Forward PnL Valuation Report on the Reports module, shared in Excel daily after EOD completes.
⚠️MTM values calculated during the EOD process must be reflected consistently across every report and inquiry screen — if a number looks different on two screens for the same EOD date, that is treated as a defect, not an acceptable variance.
📌Valuation Market and Valuation Currency are captured at Trade Sections level and are used together with Valuation Month to source the correct market curve price for MTM.
What's the difference between Contract Month and Valuation Month?▼
Contract Month is used to value an unpriced contract's Trade Value (as if it were fixed against that month). Valuation Month is used for the Market Value side of the MTM comparison, and can be changed independently until the quantity is fully price-fixed.
When is MTM calculated?▼
During the End of Day (EOD) run, using the market prices applicable as of the EOD processing date.
Where can I see the calculated MTM?▼
It flows into the Open Forward PnL Valuation Report and the Net Positions Report on the Reports module, and is shown consistently across all relevant inquiry screens.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Execution
🚚 Execution
Track scheduled and actual (D365) transfers, GRNs & POs
🚚 EXECUTION MODULE
🔄 From Scheduled Transfer to D365 Execution
📋
Scheduled Transfer
Created in CMS
⛴️
Vessel Sails
📄
BL Received
🖥️
Operations Execute in D365
PO/SO, GRN/Packing Slip
🔁
PO/SO & GRN Flow Back to CMS
Visible in Execution module
Execution Module — What You See
Scheduled TransfersREQUIRED
Every transfer created in CMS Scheduling appears here.
Actual Transfers (from D365)REQUIRED
Transfers actually executed are interfaced back from Microsoft D365 into CMS.
PO / SO NumberREQUIRED
The Purchase Order or Sales Order number created in D365 is displayed against the matching transfer.
GRN / Packing Slip NumberREQUIRED
The GRN (purchase) or Packing Slip (sales) number created in D365 is displayed once available.
Additional DIS FieldsOPTIONAL
Extra fields specific to tracking DIS contract execution, as defined in the functional specification appendix.
📌The Operations team executes the actual transaction in D365 once the vessel has sailed and the BL is received — CMS is the planning/visibility layer, D365 remains system of record for the execution transaction itself.
⚠️Any additional charges added in CMS (for example, a recovery charged back to the buyer) must also flow back to D365 — confirm these sync correctly rather than assuming they post automatically.
Where do I see the PO/SO number for my shipment?▼
In the Execution module, once Operations have created it in D365 — it is interfaced back and displayed against the corresponding CMS transfer.
Does Execution let me create the PO/SO myself?▼
No — for standard execution, D365 remains the system where the PO/SO and GRN/Packing Slip are actually created; Execution in CMS is where you view that data once it flows back. (DIS Contract Execution is the exception — see the DIS Workbench module.)
What triggers Operations to execute in D365?▼
The vessel sailing and the Bill of Lading (BL) being received.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Broker Confirmed Execution
✅ Broker Confirmed Execution
Confirm broker-executed derivative trades into the book
✅ BROKER EXEC MODULE
📌The functional specification does not name this screen explicitly — its content here is mapped from the closely related Derivatives Trade Capture (Futures & Options) requirements, which describe exactly this confirm-and-accept workflow for exchange/broker-executed trades.
🔄 Confirming a Broker-Executed Trade
🏦
Trade Executed at Broker/Exchange
📥
Captured in CMS as Pending
Manual or API/bulk upload
📑
Reviewed Against Broker Confirmation
✅
Manually Marked Accepted
User action
⏳
Live Until Exchange Expiry
Feeds positions & risk
Key Fields — Futures & Options Confirmation
LotsREQUIRED
Number of lots traded; the system accepts fractional (decimal) lots.
Lot SizeOPTIONAL
Sourced from the Price Index master data setup for the relevant curve.
Contract QuantityOPTIONAL
Auto-calculated: Contract Quantity = Lots × Lot Size.
StatusREQUIRED
Pending on capture; user manually updates to Accepted once confirmed against the broker.
Expiry DateOPTIONAL
Based on the expiry date of the Exchange Contract master set up for the curve. On expiry, status moves Accepted → Expired.
Option-specific fieldsOPTIONAL
For options: exercising, expiry, partial expiry/exercise, with Delta position and price calculation.
⚠️Once a contract has Expired, it cannot be edited — the system shows a validation that the contract has expired. Positions drop out of all reports at expiry, and PnL flips from Unrealized to Realized.
💡Futures, Options and FX forward trades can all be ingested via API from an external system, or bulk-uploaded — useful for high volumes of broker-executed trades.
Why is a newly captured futures trade showing as Pending?▼
All captured derivative trades start in Pending status; a user must manually confirm and move them to Accepted once checked against the broker confirmation/contract note.
Can I bulk-upload broker trades instead of entering them one by one?▼
Yes — the system supports bulk upload as well as automated extraction via API from an external system.
What happens to PnL when a contract expires?▼
On expiry, the position is dropped from all reports and any PnL on it moves from Unrealized to Realized.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Trading and Risk
📈 Trading and Risk
Value at Risk (VaR) calculation and risk reporting
📈 RISK MODULE
🔄 Parametric VaR Pipeline
📥
Cocoa 2nd Month Futures Price
Auto-retrieved from market data
🗄️
Historical Price Store (3+ yrs)
Retained for analysis
📐
Parametric VaR Methodology
Statistical measures derived
📑
VaR Reports Generated
3 report types
📌Value at Risk is calculated using the Parametric VaR methodology, based on a minimum of 3 years of historical price data.
🛡️
Hedge Position Price VaR Report
Calculates and displays the Value at Risk associated with the net positions of the hedge book.
📈
Prop Position Price Risk VaR
Calculates and displays the Value at Risk associated with Prop trading net positions.
🌍
Differential Position VaR Report
Assesses risk from changes in price differentials between origins, calculating VaR for differential positions specifically.
💡All three VaR reports can be downloaded in Microsoft Excel format directly from this module.
📌The system automatically retrieves the Cocoa Second Month Futures Price from market data providers and stores it for historical analysis, reporting and valuation purposes — you don't need to source this manually.
What methodology does the system use for VaR?▼
Parametric VaR, based on a minimum of 3 years of historical price data.
What's the difference between the Hedge Position and Prop Position VaR reports?▼
Hedge Position Price VaR covers the net positions of the hedge book; Prop Position Price Risk VaR covers proprietary trading net positions specifically.
Can I export these reports?▼
Yes, all VaR reports can be downloaded in Microsoft Excel format.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Hedging
🛡️ Hedging
Capture and reference futures & FX hedges against physical risk
🛡️ HEDGING MODULE
📌CMS does not have a single screen literally named "Hedging" in the specification — hedging activity is performed through Futures and FX derivative trade capture and referenced back to physical contracts via the Hedge Reference field on Price Details. That underlying functionality is documented here.
🔄 Linking a Hedge to Physical Risk
📄
Physical Contract
Unhedged exposure
📈
Futures or FX Trade Captured
Broker Confirmed Execution
🔖
Hedge Reference + Type set
On Price Fixation / Price Details
📊
Hedge Position VaR Report
Risk visibility
Hedge Reference — Type Options
Purchase OriginOPTIONAL
Hedge relates to exposure from a specific purchase origin.
Purchase SupplierOPTIONAL
Hedge relates to exposure from a specific purchase supplier.
Sale ClientOPTIONAL
Hedge relates to exposure on a specific sales client.
Book Level Calendar SpreadOPTIONAL
Hedge relates to a calendar spread position held at book level rather than against a single contract.
Book Level ArbitrageOPTIONAL
Hedge relates to a book-level arbitrage position.
💡Hedge Reference is a free-text field — pair it with a consistent naming convention (e.g. supplier code, client code) so the Hedge Position VaR Report stays meaningful when filtered.
📌Forex hedges follow the same logic as Futures: capture the FX forward trade, then on the physical contract set an FX Hedge Reference plus comment (see Trade Linking) to tie the two together.
Is there a dedicated "Hedging" entry screen?▼
Hedging is performed by capturing a Futures or FX trade (see Broker Confirmed Execution and Forex Workbench) and linking it back to the physical contract via the Hedge Reference field on Price Details/Price Fixation.
What is the Hedge Reference Type used for?▼
It classifies what the hedge is offsetting — a purchase origin, a purchase supplier, a sale client, or a book-level calendar spread/arbitrage position — which feeds into hedge effectiveness and VaR reporting.
Can a physical contract be rolled over without a linked future?▼
Yes — the system explicitly supports rolling over unhedged physical contracts that have no linked futures trade.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Price Fixation
💲 Price Fixation
Partially or fully fix price against the open contract quantity
💲 FIXATION MODULE
🔄 Fixing Price Against an Open Contract
📄
Open Contract (Unpriced)
🎯
Enter Fix Now %
From Price Details or Trade List
🔖
Capture Hedge Reference + Type
💱
Apply FX Rate
If settlement currency differs
📧
Auto-Notify Operations
Email trigger
📊
Status Updates
Unpriced → Partially/Fully Priced
Price Fixation — Key Fields
Fix Now %REQUIRED
The percentage of the contract quantity being fixed in this action.
Free-text field capturing what the fixation is hedging.
Hedge Reference TypeOPTIONAL
Purchase Origin / Purchase Supplier / Sale Client / Book Level Calendar Spread / Book Level Arbitrage.
Fixed FX Rate TypeOPTIONAL
Used when contract currency and settlement currency differ; allows entry of a fixed FX rate for this fixation.
Weighted Average PriceOPTIONAL
Auto-displayed when a contract has multiple price fixations.
💡You can fix price either while creating the contract on Price Details, or later by editing the contract directly from the Trade List — both paths update the same underlying pricing record.
📌For the unpriced open quantity, MTM uses the market price for the contract month; for already-hedged/fixed quantity, the fixed price is used. The weighted average price blends these correctly across multiple fixations.
⚠️Every time price is edited or updated by the trade team, an automatic email/notification goes to the Operations team so they can reflect the change in their overview file — don't rely on a separate manual notification.
Can I fix only part of a contract's quantity?▼
Yes — partial fixation is supported via Fix Now %, and the contract shows "Partially Priced" until the remaining Balance Open % is also fixed.
Which FX rate is used when fixing a contract in a different settlement currency?▼
By default the last available system FX rate is used, but a user-entered Fixed FX Rate always takes priority if supplied.
Does fixing price affect rollover eligibility?▼
Yes — rollover for priced contracts is only available once the Contract Month has expired, and only applies to the Price Unfixed portion of the quantity.
What happens to the Futures/Differential line after a rollover?▼
The pre-rollover line's status changes to "Rolled Over," and a new line appears for both Futures and Differential reflecting the rolled position.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Commercial Workbench
💼 Commercial Workbench
The trading desk's single workspace for deal status & documents
💼 COMMERCIAL MODULE
📌The specification does not define Commercial Workbench as a separate functional section — it is presented here as the trading desk's consolidated workspace over functionality detailed elsewhere (Deal Management, Cost & Charges, Contract Documents and Approval Workflow), gathered into one place for quick reference.
📄
Monitor contract status
See Pending / Accepted / Void contracts across the desk at a glance — the same statuses set during the Deal Management approval workflow.
✅
Action approvals
Approve or review contracts in Pending status, for users with approval rights assigned via master configuration.
💰
Review costs & charges
Check the cost/revenue lines added per trade section before the contract is finalized.
📎
Access contract documents
Open the OMS-linked Contract Documents screen to download contract paperwork without leaving the CMS interface.
Reference — Contract Status Meaning
PendingOPTIONAL
Saved or submitted, awaiting approval.
AcceptedOPTIONAL
Approved and live — feeds into Scheduling, Execution, MTM and Reports.
VoidOPTIONAL
Manually cancelled; only possible before any PO/SO/GRN/Packing Slip/Invoice exists against the contract.
Is Commercial Workbench where I create a new deal?▼
New deal capture itself happens in Deal Management > New Trade — Commercial Workbench is the surrounding workspace for tracking status, approvals, costs and documents on contracts already in the system.
Where do I download contract documents?▼
Via the Contract Documents link, which opens the OMS system seamlessly to download all related documents — CMS does not store these files itself.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Market Data & Pricing Mgmt
🗂️ Market Data & Pricing Mgmt
Maintain price indices, exchange contracts and curve masters
🗂️ MARKET DATA MODULE
📈Price Index
Create and activate/inactivate price index curves. Includes an external reference field for interfacing with third-party price providers, and supports building a curve from a formula (e.g. Futures + Differential → Flat curve). Bulk import supported.
📜Exchange Contract
Capture the exchange contract for a defined pricing curve — this drives expiry handling on Futures/Options trade capture. Import supported.
🔗MTM Index Mapping
Map MTM indices so the system can default the Trade and Valuation curves automatically when a contract is captured — users can still override Trade/Valuation curve manually.
💱FX Curve Set Up
Set up FX curves at master level, specifying which currency is the base and which is the quote currency.
📤Future / Differential / Flat Price Upload
Import future, differential or flat prices into the system. The system can also pull prices from an external system automatically via API.
💲FX Price Upload
Import FX rates, with intra/extrapolation support for missing dates. Can also pull FX prices from an external system via API.
🔄 Masters Stay In Sync With D365
🖥️
Master Created in D365
Existing system of record
🔄
Synced to CMS
Already-available masters
➕
CMS-Specific Masters Added
Price Index, Curves, Mappings
✅
Used Across Deal Capture & MTM
📌Masters already available in D365 are synced into CMS rather than re-created — CMS adds the additional pricing-specific masters (Price Index, MTM Index Mapping, FX Curve) that D365 does not natively hold for this business.
Can I import price/FX data instead of typing it in manually?▼
Yes — both Future/Differential/Flat prices and FX rates support file import, and the system can also pull prices automatically from an external system via API.
What does MTM Index Mapping actually control?▼
Once a mapping exists, the system automatically defaults the correct Trade and Valuation curves when a contract is captured — though users retain the ability to override both manually.
How does the Price Index curve relate to lot size on derivative trades?▼
Lot size is defined in the Price Index master and is used to auto-calculate Contract Quantity (Lots × Lot Size) on Futures trade capture.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Tracking
🛰️ Tracking
Track shipment milestones from stuffing to discharge
🛰️ TRACKING MODULE
📌The specification does not define a standalone "Tracking" section — content here is mapped from the shipment-milestone fields captured during Scheduling and the document flow described under Execution, which together form the logistics tracking trail for a shipment.
🔄 From Stuffing to Discharge
📦
Stuffing Date
⛴️
Vessel ETD
🌊
Transit Time
⚓
Vessel ETA
🏗️
Dest Quay Time
📄
BL Received
🖥️
Executed in D365
GRN/Packing Slip raised
Tracking — Milestone Fields
Stuffing DateOPTIONAL
Date the cargo is stuffed into the container/vessel.
Vessel ETDOPTIONAL
Estimated time of departure.
Transit TimeOPTIONAL
Total transit duration for the shipment.
Vessel ETAOPTIONAL
Estimated time of arrival.
Quay Time / Dest Quay TimeOPTIONAL
Time spent at origin quay and destination quay respectively.
Free DaysOPTIONAL
Free demurrage/storage days available at destination before charges accrue.
BL Weight (MT)OPTIONAL
Bill of Lading weight, used to reconcile against scheduled and landed weight.
Where do I enter shipment milestone dates?▼
These fields live on the Scheduling screen when a transfer is created; Tracking is the consolidated view of that same milestone data as the shipment progresses.
What confirms a shipment has actually moved, versus just being scheduled?▼
The Execution module reflects the actual transfer once it has been executed in D365, following BL receipt — Tracking fields show the planned/in-progress milestones leading up to that point.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Forex Workbench
💱 Forex Workbench
Manage FX curves, exposure and settlement currency conversion
💱 FOREX MODULE
🔄 Where FX Data Is Used
⚙️
FX Curve Set Up
Base / Quote currency, master level
📤
FX Price Upload
Manual or API
📄
Used on Deal Forex Section
Contract/Settlement/Functional ccy
📊
Forex Exposure Report
Origin-wise, in GBP
Forex Workbench — Key Fields
Contract CurrencyREQUIRED
The currency the contract is denominated in.
Settlement CurrencyREQUIRED
The currency settlement actually happens in — converted automatically if different from Contract Currency.
Functional CurrencyOPTIONAL
The reporting/base currency for the relevant entity.
FX ExposureOPTIONAL
Indicates the nature of the FX exposure on the contract.
FX Hedge Required?OPTIONAL
Flags whether this exposure needs to be hedged.
FX Rule / Fixed FX Rate TypeOPTIONAL
The rule governing rate sourcing, or a fixed rate entered directly by the user.
FX Fixing ReferenceOPTIONAL
e.g. ECB / Treasury rate / Bank quote — documents where the rate was sourced from.
Allowed FX ToleranceOPTIONAL
e.g. +/- 1% — acceptable variance band for the FX rate used.
🌍Origin-wise consolidation
Consolidates and displays FX exposure arising from both purchase and sales positions, by commodity origin.
💷Converted to GBP
All exposure values in the report are converted and presented in GBP, using business-defined exchange rates.
💹MTM on FX trades
Calculates the MTM value of each FX trade by comparing the contracted FX rate against the applicable market FX rate as of the valuation date.
📥Excel export
Downloadable in Microsoft Excel format.
Which FX rate wins if I enter one manually on a contract?▼
A user-input FX rate always takes priority over the system's last available FX rate for that conversion.
Can FX rates be intra/extrapolated for missing dates?▼
Yes — the FX price upload functionality supports intra/extrapolation of rates in addition to direct import and API retrieval.
What currency is the Forex Exposure Report shown in?▼
All values are converted and presented in GBP, regardless of the original contract or settlement currency.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
📌The Inventory module is organised like Deal Management: choose a subtab, review the process flow, then follow the practical entry steps for the task. Inventory is grouped into Purchase, Sales and Ledger.
📥 Purchase Deal to Inventory Intake
📄
Select Approved Deal Section
Loads commodity, grade, origin, qty
🏭
Set Warehouse + Handling
Storage and recognition treatment
📦
Create CTRM Batch
Immediate or planned batch
🚢
Shipment + Quality
BL weight, inspection, accepted qty
✅
Receipt / GR Saved
Updates stock and ledger
Inventory Intake — Key Inputs and Effects
Select deal rowREQUIRED
Select an approved purchase deal section. CMS loads commodity, grade, origin, quantity, pricing, Incoterm and default intake values from the deal.
Expected WarehouseREQUIRED
Defines expected warehouse/storage and is used by receipt, inventory position and D365 site/warehouse mapping.
Handling TypeREQUIRED
Controls physical/ownership treatment, recognition requirement, allocation eligibility and receipt policy.
Batch QuantityREQUIRED
Quantity converted into CTRM stock. It cannot exceed the remaining quantity on the selected deal section.
This Receipt QtyREQUIRED
Quantity received in the current receipt/GR transaction. It is cumulative-controlled against accepted quantity and cannot exceed the remaining accepted quantity.
Receipt DateREQUIRED
Drives inventory recognition timing, inventory aging and accounting period checks.
Create CTRM Batch — Values Shown in the Intake Screen
Minimum required fieldsREQUIRED
Source deal, commodity/grade, batch quantity, expected warehouse and handling type. Other deal context can be completed later if the business process allows it.
Commercial basisSYSTEM
Provisional price, currency and price UOM are brought from the selected deal so the batch keeps its commercial cost context.
Quantity summarySYSTEM
Deal Qty, Tolerance Qty, Created Batches, Planned Qty, Remaining Original, Remaining Tolerance and Total Remaining help the user avoid over-planning inventory.
Batch actionsREQUIRED
Use Add Batch Line to Plan when planning multiple lines, or Create Batch & Move to Shipment when the batch is ready for the shipment/in-transit step.
⚠️Intake control: Create a batch only after the selected deal, expected warehouse, handling type and batch quantity are correct. If a batch is created from the wrong deal section or quantity, downstream shipment, quality, receipt, stock position and valuation records inherit that context.
🔄 Inventory Purchase — End-to-End Flow
📄
Select Approved Deal
Inventory Purchase > Intake
📦
Create CTRM Batch
Batch qty, warehouse, handling
🚢
Shipment / In-Transit
BL, vessel, ETA, warehouse
✅
Quality Approval
Accepted + blocked + rejected
📥
Receipt / GR Completed
Ledger and stock updated
1How to create a CTRM batch▲
1
Open Inventory Purchase > 1. Intake
Select an approved purchase deal row. CMS brings deal reference, commodity, grade, counterparty, origin, Incoterm, ETA and pricing context into the batch form.
2
Enter the minimum batch fields
Confirm source deal, commodity/grade, batch quantity, expected warehouse and handling type. Batch quantity must stay within the remaining deal quantity and tolerance shown in the summary.
3
Check quantity summary before saving
Review Deal Qty, Tolerance Qty, Created Batches, Planned Qty, Remaining Original, Remaining Tolerance and Total Remaining so the batch does not over-consume the deal.
4
Choose the batch action
Use Add Batch Line to Plan for multiple planned lines, or Create Batch & Move to Shipment when the batch is ready for shipment/in-transit entry.
Inventory > Inventory Purchase > 1. Intake
⚠️ Wrong deal selection, warehouse, handling type or quantity carries forward into shipment, quality, receipt, ledger and valuation.
2How to send a batch for shipment▼
1
Move from Intake to Shipment/In-Transit
After batch creation, open the shipment/in-transit step for the CTRM batch that needs logistics details.
2
Capture shipment details
Enter BL Weight / Shipment Qty, Shipment Status, Packaging Type, Mode of Transport, Vessel Name, IMO Number, BL Number, Number of Bags, Type/No. of Container, Buyer Lot Number, BL Date, Vessel ETD/ETA, Ready for Service date, Reweight Date, free-day fields and Storage Levels where applicable.
3
Save and monitor pending step
Once shipment is saved, the batch should move toward Quality. If it does not, it appears in the Shipment Done But Not Moved Ahead report.
Inventory Purchase > 2. Shipment / In-Transit
💡 Use the Inventory Ledger reports to find batches with shipment saved but no quality or receipt progress.
3How to approve quality▼
1
Open 3. Quality for the batch
Select the batch after shipment is saved. Quality captures the inspection result before receipt/GR can continue.
2
Enter required quality fields
Complete Inspection Date, Inspection Status, Certificate No if available, Actual Grade, Grade Decision, Quality Result and Claim Required. Add inspection or quality observations where relevant.
3
Balance the quantity split
Accepted Qty + Blocked Qty + Rejected Qty must equal Received Qty. The accepted quantity drives Accepted Origin Qty, Recognised Available Qty, Saleable Qty, Allocation Eligible Qty and D365 Eligible Qty.
4
Submit for approval
After quality is confirmed, the batch may show Pending Approval. Once approved, the action moves to Ready for GR.
Inventory Purchase > 3. Quality
✅ Ready for GR means shipment, quality split and approval checks have cleared.
4How to complete Receipt / GR▼
1
Start from Ready for GR
Use the Ready for GR action only after the batch has cleared shipment and quality approval.
2
Enter receipt details
Confirm this receipt quantity, receipt date and warehouse details. Receipt quantity cannot exceed the remaining accepted quantity.
3
Save the receipt
Saving creates the stock movement, updates the Warehouse Ledger, and feeds valuation fields such as Receipt Value, Carrying Value and WAC.
Inventory Purchase > 4. Receipt / GR
⚠️ If Receipt/GR is disabled, check shipment, quality completion, balanced quantity split and approval status.
5How to use the Inventory Dashboard action queue▼
1
Open Inventory Dashboard first
Use Logistics Visibility to see batches by Planned, In Transit, Arrived and Exception status. Use Aging & Dormancy to find stock by age bucket, free quantity and risk note.
2
Read the Action column literally
The dashboard may show D365 Release, Commercial Bridge, Receipt / GR or Shipment / In-Transit. Follow that action instead of jumping to the next tab manually.
3
Investigate exceptions before receipt
Rows with missing BL/vessel data, exception status, blocked quantity, zero free quantity or a non-GR action usually need shipment, quality, commercial bridge or D365 release work before receipt can proceed.
Tip The dashboard is the fastest way to know the next correct action for a batch.
6Why Receipt / GR may be disabled▼
1
Check the tab state
In the uploaded troubleshooting clips, Receipt / GR stays greyed out when the selected batch has not cleared the previous required stage.
2
Clear shipment and quality first
Shipment details must be saved, inspection must be completed, and Accepted + Blocked + Rejected quantities must equal the received or scheduled quantity.
3
Resolve approval and eligibility
If the batch shows Pending Approval, wait for or complete approval. Then confirm the dashboard/action state has moved to Ready for GR or Receipt / GR, and that D365 Eligible Qty is populated when the process requires D365 release.
Warning Do not force a receipt from a stale tab. Refresh the dashboard and follow the batch action shown by CMS.
📌Stock entering a warehouse — typically from a DIS scheduling entry, deal intake batch, or a GRN posted in D365 — is recorded here as an inward movement.
📥
Inward movement source
Stock inward transactions originate either from a DIS scheduling save (origin warehouse) or from a GRN/Packing Slip interfaced from D365.
⚖️
Landed Weight
The system records "Landed Weight" so users can see the actual available quantity; the balance quantity can then be written off in D365 after the necessary adjustment entries are booked.
🏭
Origin Warehouse exclusivity
Origin Warehouse inventory is maintained exclusively within CMS — CMS is the system of record for origin inventory balances and movements, not D365.
📌The Quality step validates the received batch before Receipt/GR can be completed. It captures accepted, blocked and rejected quantities, then controls whether the batch is ready for GR or still pending approval.
Quality Gate — Minimum Required Fields
Actual GradeREQUIRED
The grade confirmed after inspection. It may match the deal grade or record the actual inspected grade.
Grade DecisionREQUIRED
Business decision on whether the received batch is acceptable as-is, conditionally acceptable, blocked or rejected.
Quality ResultREQUIRED
Final quality outcome such as pass or conditional pass. This result feeds the quality history and inventory buckets.
Claim Required?REQUIRED
Indicates whether a quality claim must be raised for the received batch.
Quantity splitREQUIRED
Accepted Qty + Blocked Qty + Rejected Qty must equal the Received Qty. CMS uses this check to prevent inconsistent quality posting.
Quality Output — Inventory Buckets After Quality
Accepted Origin QtySYSTEM
Quantity accepted at origin/inspection level and available for the next business decision.
Recognised Available / Saleable QtySYSTEM
Quantity that can be treated as recognised available inventory and potentially offered for sale.
Allocation Eligible QtySYSTEM
Quantity eligible for allocation against sales demand after quality controls are satisfied.
D365 Eligible QtySYSTEM
Quantity that can be released into the D365/GR flow after the quality gate and approval checks.
Pending Approval / Ready for GRSTATUS
A batch may show Pending Approval after quality is saved. Once approvals are satisfied, the action moves to Ready for GR.
⚠️Receipt/GR dependency: If the Receipt/GR action is disabled, check whether shipment details are saved, quality is confirmed, the quantity split balances, and approval has moved the batch out of Pending Approval.
Readiness tells whether the demand is Ready for D365, Conditionally Ready, Mixed or Not Ready.
3
Open allocation when stock is available
Use Allocate only when the demand has compatible supply or a business-approved conditional supply option.
Inventory Sales > Sales Demand Queue
💡 Not Released in Delivery means the sales demand is not yet ready for final dispatch/release.
2How to allocate compatible supply▼
1
Open Allocate Supply
Review available supply rows by source, CTRM batch, contract type, type/stage, origin/certification, warehouse, eligible quantity, allocated quantity, available quantity and available value.
2
Match compatibility
Only allocate supply that matches the sales demand requirement such as commodity, grade/certification, warehouse, contract type and readiness.
3
Keep firm and conditional supply separate
Firm supply can normally move toward D365 release. Conditional or in-transit supply can support planning but may need approval or status change before release.
Inventory Sales > Allocate Supply
⚠️ Incompatible positions should not be allocated because they can promise the wrong stock to the customer.
3How to move allocation to execution▼
1
Confirm allocated quantity
Check total allocated and remaining quantity on the sales demand before release.
2
Use Execution Queue
Rows that are Ready for D365 should move into the execution queue for downstream sales release or D365 processing.
3
Track shipment/in-transit
Once released for execution, use the shipment/in-transit view and allocation ledger to confirm movement history.
✅ Normal sales movements update stock through the inventory transaction and ledger trail.
4How to create a Goods Issue Instruction▼
1
Open the allocated sales contract
Check Sales Contract, Allocated, Already Instructed, Reserved, Goods Issued and Readiness before entering a new instruction.
2
Enter instruction quantity by allocation line
Use the allocation table to review Allocation, Supply/Batch, Warehouse, Allocated, Already Instructed, Available to Instruct, Instruct Now and Stage.
3
Capture dispatch and shipment details
Fill Requested Dispatch Date, Mode, Delivery/Shipment Ref, Packing Requirement, Special Instructions, Vessel Name, IMO Number, BL Number, Number of Bags, Type/No. of Container, Buyer Lot Number, Storage, BL Date, Estimated/Actual Transfer Date, RFS Date, Reweight Date and free-day fields where applicable.
4
Save shipment and return
Use Save Shipment & Return after confirming shipment quantity, shipment status, packaging type and required logistics fields.
Inventory Sales > Create Goods Issue Instruction
⚠️ Sending an instruction may release only part of the allocated quantity. It does not reduce physical on-hand stock and does not prove that D365 reservation has succeeded.
📌Stock leaving a warehouse against a sales contract — typically tied to an executed transfer or GRN/Packing Slip on the sales side — is recorded here as an outward movement.
📤
Outward movement source
Outward transactions are driven by execution of the linked sales contract — visible once the corresponding D365 transaction (PO/SO, GRN/Packing Slip) is interfaced back.
🔁
Automatic balance update
Warehouse stock balances update automatically based on the inventory transactions recorded in the Warehouse Ledger — no separate manual adjustment is needed for a normal sale.
Inventory Sales — Demand Queue and Allocation
Sales Demand QueueREQUIRED
Shows sales deal, customer, requirement, firm quantity, conditional quantity, planned quantity, total allocated, remaining quantity, readiness and delivery release status.
ReadinessSTATUS
Indicates whether the demand is Ready for D365, Conditionally Ready, Mixed, or Not Ready based on allocation and inventory status.
Compatible SupplyREQUIRED
Only compatible positions should be allocated. Conditional supply remains separate from firm inventory and should not be mixed without a business approval rule.
Supply certaintySTATUS
Firm supply can normally support D365 release. Conditional or in-transit supply may support planning but may not be fully releasable yet.
Allocation columnsSYSTEM
Supply, CTRM batch, contract type, type/stage, origin/certification, warehouse, eligible quantity, allocated quantity, available quantity, available value and certainty support allocation decisions.
💡Use the Inventory Sales tabs as an operational queue: Sales Demand Queue → Allocate Supply → Execution Queue → Shipment/In-Transit → Allocation Ledger → Audit.
🔄 Inventory Ledger — Reports Flow
📊
Open Ledger Reports
Inventory Ledger
🔍
Filter Batch / Deal / BL
Find movement trail
🚧
Check Pending Steps
Shipment, Quality, GR
💹
Review Value / WAC
Receipt and carrying value
📥
Export / Reconcile
Excel or operations follow-up
1How to use the Warehouse Ledger report▲
1
Open Inventory Ledger
Use this tab for report-based review of stock movements, balances and valuation trail. No operational entry is done here.
2
Search by known reference
Filter by batch, deal, BL, warehouse, level, commodity, GRN/PS number or transaction date to isolate the movement.
3
Trace the movement
Review inward, outward, transfer, adjustment and receipt records to reconcile the current stock position.
Inventory > Inventory Ledger > Warehouse Ledger
💡 The ledger is the audit trail behind stock balances shown elsewhere in Inventory.
2How to use Shipment Done But Not Moved Ahead▼
1
Open the exception report
Use this report when shipment has been saved but the batch has not moved into Quality, Receipt/GR or the next expected step.
2
Review the visible columns
Check Batch, Deal, Shipment Qty, BL No, Vessel, Destination/Warehouse, ETA, Shipment Status and Pending Step.
3
Act on the pending step
If Pending Step shows Quality, complete quality approval. If GR is blocked, check Ready for GR status and required receipt fields.
Inventory Ledger > Shipment Done But Not Moved Ahead
⚠️ This is a daily operations exception report, not a normal transaction-entry screen.
3How to read Receipt Value, Carrying Value and WAC▼
1
Read Receipt Value
Receipt Value comes from the receipt/intake transaction, normally using received quantity multiplied by the applicable deal, purchase or receipt cost basis.
2
Read Carrying Value
Carrying Value is the current stock book value after receipts, issues, transfers, adjustments and capitalized inventory costs.
3
Read WAC
WAC is the weighted average cost/carry price recalculated from quantity, value, receipt prices, adjustments and eligible inventory costs.
Inventory Ledger > Valuation / WAC columns
✅ Use WAC and carrying value for reconciliation; use the movement trail to explain why values changed.
4How to use Ledger controls and filters▼
1
Set the report filters
Use Deal Filter, Warehouse Filter, Movement Filter and Batch/Receipt Search to narrow the ledger snapshot by deal, warehouse, movement type, batch, receipt, BL or document.
2
Refresh or reset the report
Use Build from current DIS data when you need a fresh ledger snapshot from available DIS data, or Reset filters to return to the default view.
3
Read the summary cards
Review On-hand Qty, Available Qty, Allocated/Locked, Inventory Value, Weighted Avg Carry Price and Movement Documents before opening the detail tabs.
Inventory Ledger > Inventory Ledger Controls
⚠️ If the snapshot fails to load, reset filters and rebuild from current DIS data before assuming the stock balance is zero.
5How to use the Inventory Commercial Report▼
1
Review commercial summary
Use Physical Qty, Received Qty, Allocated Qty, Priced Qty, Unpriced Qty and Commercial Actions to understand the batch-level commercial position.
2
Filter the report
Search by deal, batch, counterparty or commodity, then refine by commodity, execution type, pricing status, release status and next action.
3
Read the bridge table
Use CTRM Batch, Deal, Counterparty, Commodity/Grade, Origin, Warehouse, Execution Type, Physical Qty, Received Qty, Quality Accepted and Allocated Qty to connect inventory status with commercial action.
💡 This report is useful when inventory exists physically but still needs pricing, release or next-action follow-up.
📌The Warehouse Ledger is the detailed, transaction-level movement history behind every stock balance shown elsewhere in Inventory.
Warehouse Ledger — Recorded Fields
GRN / PS NumberREQUIRED
The Goods Receipt Note or Packing Slip number the movement relates to.
OriginREQUIRED
Commodity origin for the movement.
Commodity Grade / Crop YearREQUIRED
Grade and crop year of the commodity moved.
Mode of TransferREQUIRED
Distinguishes stock inward vs stock outward transactions.
Net QuantityREQUIRED
Net quantity moved in this transaction.
Transaction Date & TimeREQUIRED
When the movement was recorded.
Valuation / WAC — Where Values Come From
Receipt ValueSYSTEM
Calculated from the receipt/intake transaction, normally using received quantity multiplied by the applicable deal, purchase or receipt cost basis.
Carrying ValueSYSTEM
Current book value of stock after receipts, issues, transfers, adjustments and capitalized inventory costs. A fresh receipt may match Receipt Value until stock is consumed or adjusted.
WACSYSTEM
Weighted Average Cost / carry price. It is recalculated from inventory quantity, carrying value, receipt prices, adjustments and any costs treated as inventory cost by finance rules.
💡Search and filter the ledger by BL, Warehouse, Level, Commodity or GRN/PS Number to trace a specific movement quickly.
📌A complete audit trail of inventory transactions is maintained for reconciliation — warehouse stock balances are expected to always align with the underlying ledger transactions.
📌Inventory Reports help operations find batches that are stuck between steps, especially after shipment details are saved but before quality or receipt/GR is completed.
Shipment Done But Not Moved Ahead
PurposeREQUIRED
Shows batches where shipment details are already saved, but the batch has not moved forward into Quality or Receipt/GR.
Visible fieldsSYSTEM
Batch, Deal, Shipment Qty, BL No, Vessel, Destination/Warehouse, ETA, Shipment Status and Pending Step.
Shipment StatusSTATUS
Examples include In Transit or Arrived. The Pending Step shows whether Quality or another next step is still open.
💡Use this report as a daily exception list for operations: if shipment is done but the batch is still not ready for GR, check the Quality tab, approval status and required receipt fields.
📌A consolidated, commercially-oriented view of current stock position across the business.
Stock Position — Key Fields
WarehouseREQUIRED
Stock balances are viewable warehouse-wise.
LevelREQUIRED
Stock balances are also viewable level-wise.
CommodityREQUIRED
Commodity-wise stock quantity information.
BuyerOPTIONAL
Buyer-wise stock quantity information.
Total Quantity AvailableREQUIRED
Current stock position, shown in the standard UOM (e.g. Metric Tons).
💡Stock can be transferred from one warehouse to another, or one location to another, directly from this screen — the transfer also updates D365.
📌Inventory data and reports can be exported to Excel for analysis and operational reporting.
How does inventory data get into CMS?▼
CMS integrates with D365 to automatically receive inventory movements, receipts, transfers, adjustments and write-offs through a configured interface — no manual re-entry is required for D365-originated movements. Origin Warehouse inventory, however, is maintained exclusively in CMS.
What is "Landed Weight" and why does it matter?▼
It captures the actual quantity received at the warehouse so users can see real available stock; any balance-quantity write-off is then booked in D365 via the necessary adjustment entries.
Can I move stock between warehouses from this screen?▼
Yes — transferring stock between warehouses or locations is supported and the change is also reflected in D365.
What must be correct before I create a CTRM inventory batch?▼
Confirm the selected approved purchase deal section, expected warehouse, handling type and batch quantity. These values load the inventory context and cannot exceed the remaining deal quantity.
Where do Receipt Value, Carrying Value and WAC come from?▼
Receipt Value comes from the receipt/intake transaction. Carrying Value is the current stock book value after receipts, issues, transfers, adjustments and capitalized costs. WAC is the weighted average cost or carry price recalculated from quantity, value, receipt prices and eligible inventory costs.
Why is Receipt/GR disabled for a batch?▼
Receipt/GR can remain disabled if shipment details are missing, quality is not confirmed, accepted/blocked/rejected quantities do not add up to the received quantity, or the batch is still pending approval after quality.
What does Pending Approval after quality mean?▼
It means the quality result has been recorded but the batch has not yet cleared the required approval step. Once approval is complete, the batch can move toward Ready for GR.
What does Shipment Done But Not Moved Ahead show?▼
It is an exception report for batches where shipment details are saved, but the batch has not progressed into Quality, Receipt/GR or the next required step.
What is the difference between Ready for D365 and Conditionally Ready?▼
Ready for D365 means the allocated inventory is firm enough for the D365 release path. Conditionally Ready means some supply is still conditional, in-transit or approval-dependent, so it may support planning but not full release.
Why can incompatible supply not be allocated?▼
Supply must match the sales demand requirements such as commodity, grade/certification, warehouse, contract type and readiness. Incompatible positions are kept out of allocation to avoid promising the wrong stock to the customer.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3), CTRM user manual source documents, and the uploaded Deal/Inventory plus Inventory Purchase tour, troubleshooting and quality/GR videos provided for process clarification.
Home › DIS Workbench
📦 DIS Workbench
Delivery Instore contract execution and MBL financing logic
📦 DIS MODULE
🔄 Initiating a PO from DIS Contracts
🏭
Select Multiple Origin Shipments
DIS & Non-DIS contracts
✏️
Enter Scheduling + EMG Warehouse Info
📨
Trigger PO Creation in D365
🔻
Origin Inventory Reduced
🔺
EMG Warehouse Inventory Increased
⚠️Origin shipment inventory details are not integrated with D365 — they exist only within CMS until they are picked up by a DIS PO creation.
📦
Quantity received at Origin Warehouse
Once quantity is received in the Origin Warehouse, the user can manually enter the provisional payment amount as an advance invoice.
💷
70% provisional payment
The advance invoice is typically raised for 70% of the provisional amount; D365 generates the advance invoice accordingly.
🔁
Flows to Invoice module
Advance invoice details also flow through to the Invoice module. If the advance invoice is reversed in D365, CMS is updated with the reversal automatically.
✅
Final invoice on price fixation
Once final price is fixed by the trader, it flows to D365 and the final invoice is issued there — Operations are notified by the same price-edit trigger used elsewhere in the system.
📌MBL = Macquarie Bank Limited. Contracts with Macquarie as counterparty are excluded from MTM and net position calculations — this is a deliberate accounting exclusion built into the system.
🚢
Supplier ships to ACF
Supplier delivers to the designated Origin Warehouse; inventory receipt is recorded there. ACF is responsible for settling the supplier invoice per agreed payment terms.
📑
ACF shares documents with MBL
Warehouse Receipt (LTD) and Proforma Invoice are shared with MBL once inventory is received at origin.
💰
MBL pre-finances ACF
MBL provides pre-financing of 60%–100% of the equivalent Supplier PI Value. BL is not involved at this stage; the financing amount and related inventory are tracked against the stock position.
🔁
Repo Sale triggered on BL confirmation
Once BL confirms inventory availability, a Repo Sale is initiated: MBL settles the remaining payable to ACF (net of prepayments), inventory transfers from Origin to EMG Warehouse for Instore fulfilment, and ownership of inventory remains with MBL throughout.
🔗
Intercompany buyback chain
To reflect a genuine purchase/sale rather than ACF buying directly back from MBL: EMG Mauritius (MAU) purchases from MBL → ACF buys from EMG MAU → ACF sells to the final customer, who is invoiced directly by ACF.
💳
Settlement cascade
Customer payment due date is calculated from the Buyback Invoice date (typically 30-day terms). On receipt: ACF settles MAU → MAU settles MBL — completing and closing the transaction cycle.
Why are Macquarie (MBL) contracts excluded from MTM and net positions?▼
This is a deliberate rule in the MBL logic — Macquarie-countparty contracts sit outside standard MTM/net position calculations because of the repo-financing structure underlying them.
How much of the provisional payment can be raised as an advance invoice?▼
The user manually enters the provisional payment amount once quantity is received at the Origin Warehouse — the specification references 70% of the provisional amount as the advance, with D365 generating the invoice.
Is origin shipment inventory visible in D365?▼
No — origin shipment inventory details are not integrated with D365; they live in CMS until a DIS PO creation request reduces origin stock and increases EMG warehouse stock.
How is the MBL report currently maintained, and how does this module change that?▼
It is currently maintained manually in Excel, consolidating data from multiple source files to identify which Bills of Lading are available for sale — DIS Workbench is intended to formalize this within CMS.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Reports
🖨️ Reports
PnL, position, exposure, aging and liquidity reporting suite
🖨️ REPORTS MODULE
📈Open Forward PnL Valuation Report
Shared in Excel daily after EOD. Trade Value uses Contract Month price; Market Value uses Valuation Month price — see the worked example tab.
📥 Microsoft Excel export
⚖️Net Positions Report
Presents overall organizational positions by consolidating open purchase and sales positions across contracts, trades, shipments and pricing activity.
📥 Microsoft Excel export
🌍Origin Wise Differential Report
Consolidated commodity positions across valuation months, origins and grades/crop year. Includes Net Purchase/Sales quantities and a separate weighted-average differential table (after costs) by origin & crop year.
📥 Microsoft Excel export
🤝Counterparty Exposure Report
Sourced from the Open Forward PnL Valuation Report. Origin-wise and counterparty-wise exposure across purchase and sales, with consolidated long/short positions by origin and grade.
📥 Microsoft Excel export
💳Credit Report vs Credit Limits + Receivables Aging
Consolidated customer credit exposure against approved limits, combined with receivables aging buckets. All values shown in USD; invoicing beyond credit limit is restricted at the D365 level.
📥 Microsoft Excel export
📦Inventory Aging Report
Shows how long inventory has been held and its value across different time buckets.
📥 Microsoft Excel export
💧Exchange Liquidity Sensitivity Report
Consolidates broker account positions and margin limits to forecast Variable Margin (VM) requirements under price-fluctuation scenarios — calculated per month rather than aggregated into a single reference month.
📥 Microsoft Excel export
💱Forex Exposure Report
Origin-wise FX exposure across purchase and sales, converted to GBP, including MTM on FX trades.
📥 Microsoft Excel export
📌The Operational Control Report and Budget vs Actuals — Direct Costs & S&D Costs Report are noted in the specification as planned for a later project phase and are not yet part of this report catalogue.
Open Forward PnL Valuation Report — worked example:
Unpriced contract: Quantity 1,000 MT, Differential GBP 150, Contract Month March 22, Valuation Month May 22.
Futures price March 22 = 1,600; Futures price May 22 = 1,610; Market differential May 22 = GBP 160.
Trade Value = 1,000 × (150 + 1,600) = 1,750,000 Market Value = 1,000 × (160 + 1,610) = 1,770,000
💡This is the same calculation logic that drives MTM on the MTM & Valuation module — the Reports module simply packages it for daily distribution to the business in Excel.
What format are reports delivered in?▼
Every report listed here is downloadable in Microsoft Excel format.
How often is the Open Forward PnL Valuation Report shared?▼
Daily, after the EOD process completes.
What currency is the Credit Report shown in?▼
USD — all values in the Credit Report vs Credit Limits combined with Receivables Aging are represented in USD.
How is Variable Margin calculated for the Liquidity Sensitivity Report?▼
Per month, based on monthly positions and monthly price variations — not by aggregating all positions into one reference month.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Per Business Unit / Trade / Portfolio / Broker (sub)account
📸
Snapshot Created
Positions, trades, prices, exposures, balances
💹
MTM & PnL Calculated
Using EOD-date market prices
📊
Reports Updated
Reflect selected EOD run date
EOD — Behaviour to Know
Concurrency lockREQUIRED
The system prevents concurrent EOD runs for the same Business Unit or Trade, and uses locking/version control to avoid race conditions or deadlocks.
Run logOPTIONAL
Start time, end time, duration and user details are recorded for every EOD run, alongside any errors, warnings or exceptions encountered.
Status visibilityOPTIONAL
Execution status (success / failure / error) is displayed to all users, not just the user who triggered the run.
Closed period protectionREQUIRED
No transactions can be entered against a closed accounting period during or after EOD.
📌Accounting periods can be opened or closed independently per company, business unit or legal entity, as configured.
🔒
Close a period
Authorized users close a period; once closed, financial transactions, journal entries and accounting adjustments cannot post into it.
🔓
Reopen a period
Authorized users can reopen a previously closed period — subject to approval and audit controls.
📌Audit records are captured automatically — no manual logging step is required — and cannot be modified or deleted by users.
What Gets Audited
Login/logout activityREQUIRED
All user login and logout events are recorded, including unsuccessful login attempts and account lockouts.
User-initiated transactionsREQUIRED
All user-initiated transactions and updates are captured, with User ID, Role, Date, Time and Session Information.
Master data changesREQUIRED
Creation, modification, activation, deactivation and deletion of master data is fully audited, capturing both previous and new values for modified fields.
⚠️Single Platform User Requirement: Users should only need to work in one system. For example, the Operations team should be able to complete all workflows within the CTRM platform and should not need to access or navigate to the OMS for any reason, whether directly or through embedded links.
Can two EOD runs happen at the same time for the same Business Unit?▼
No — the system explicitly prevents concurrent EOD runs for the same Business Unit or Trade.
What happens to reports after an EOD run?▼
They are updated and displayed based on the selected EOD run date, with MTM and PnL calculated using that date's market prices.
Who can reopen a closed accounting period?▼
Only authorized users, and the action is subject to approval and audit controls.
Can a user delete an audit record?▼
No — audit records cannot be modified or deleted by any user, by design.
Source: ConTract Management System (CMS) — Functional Specification Document, Phase 0 (v3). Where the specification did not name a UI element explicitly, content has been inferred from the related functional requirement and the captured Deal Management screen recording.
Home › Glossary
📖 Glossary
CMS and cocoa-trading terminology, A to Z
AI Ask CMS Assistant
Answers are limited to the current training modules: Dashboard, Deal Management, Tracking and Inventory.
Checking API
Ask about Trader Dashboard, Deal Management, Tracking or Inventory.