Skip to main content
Skip table of contents

IMOS - Mirroring Contracts

The Veson IMOS Platform is the market-leading cloud solution for commercial marine freight and fleet management.

Configuration flag CFGEnableContractMirroring enables Contract Mirroring.

Intercompany workflows facilitate the existence of multiple separate legal entities within a single database.

Workflow Models

The following workflow models can be used in mirroring. These examples refer to Time Charter contracts, but the concepts apply to all contracts.

Two Internal Companies (Model A)

When the W record entered in the Company field on the contract and the W record in the Counterparty field are both specified as Internal in the Address Book:

  • The Intercompany check box is selected by default.
  • On saving the contract, an identical (or mirrored) contract is automatically created behind the scenes, with the alternate perspective.

For example, when a Time Charter In contract is created between Company X and Counterparty Y (both internal), the Intercompany check box is automatically selected, and on save, a Time Charter Out form with Company Y and Counterparty X is created with the same information.

  • After this mirrored link is established, any entry into either of the contracts passes to the other upon save. This includes brokers and XADDCOMM.
    • If the company in the mirror contract does not have LOB or Department specified in the Address Book, these are copied from the original contract.
  • Disabling the Intercompany option on either of the contracts and saving breaks the link; updates no longer flow through.
  • The automatic creation of mirrored contracts and subsequent updating is allowed even if you do not have Security Object Rights to the company of the linked contract. (You can enter details from X's perspective and have it flow through and update Y's contract, but you cannot change anything in Y's contract directly if you do not have rights to Y.)

One Internal Company and One External Company (Model B)

When the W record entered in the Company field is Internal, but the Counterparty is not Internal:

  • The Intercompany check box is not selected by default.
  • Selecting it selects the IC Company and IC Adj % fields on the form.
  • IC Company refers to the secondary intercompany counterparty; IC Adj % allows a numerical entry.
  • If the IC Company is entered, a total of three contracts are created, all mirrored with one another.
  • If the Freight Type is Worldscale, VC In freight is calculated as follows, and IC Adj % can be negative: VC In WSC % = Cargo WSC % − (Cargo WSC % × IC Adj %)

For example, if a TC In contract is created between internal Company X and external Counterparty Z, and Company Y is the IC Company (also internal), three linked contracts are created:

  • X has a TC In with Z (parent contract)
  • X has a TC Out with Y (child contract 1)
  • Y has a TC In with X (child contract 2)
  • The IC Adj % value is applied automatically to the Gross Hire Rate on the two child contracts, that is, the contracts between the internal counterparties. This is always applied as a mark down on a buy and mark up on a sell.
  • If the Hire Rate is index linked, the same process applies. If a floor/ceiling is specified, they increase/decrease along with the rate, according to the IC Adj % value.
  • After this mirrored link is established, any entry to any of the three contracts passes to the others upon save (except for the IC Company and IC Adj % fields, which are not mirrored). Note that broker entries in the parent contract are not mirrored onto the child contracts (although broker entries are mirrored between the child contracts); XADDCOMM is mirrored among all contracts.
  • Disabling the Intercompany option on any of the contracts breaks the link on all; updates no longer flow through.
  • The automatic creation of mirrored contracts and subsequent indirect updating (through mirroring) is allowed even if you do not have security access to the company of the linked contracts.

TC Mirroring

  • When contract A (connected to voyage 1) is mirrored with contract B (connected to voyage 2), and voyage 1 is scheduled/commenced, port, time, and bunker information flows from the voyage to contract A to contract B. Voyage 2 needs to be manually synced with voyage 1. There is no voyage mirroring in this case.
  • On a TC In or TC Out, to open its mirrored contract, click
    .

Voyage Mirroring

Voyages created through two mirrored Intercompany contracts are mirrored with each other. For example, if a Cargo is mirrored with a VC In, the two corresponding voyages are mirrored with each other. The voyage corresponding to the Cargo contract is the master, while the other is the mirror voyage. The master has to be scheduled before the mirror, and information flow is one way only: master to mirror.

Cargo Mirroring

On a Cargo or VC In, to open its mirrored contract, click 

and then click Open Mirrored Contract Type and ID.

Cargo Mirroring between Two Internal Companies

  • Scenario 1:

    • Company A has a Cargo contract with third party Y.
    • Company B has the TCI vessels that will lift the contract Cargoes.
    • Company A and Company B are internal companies, and the relet is back-to-back.
  1. Address Book:
    1. Enter Company A as Types CO, and W, and with the Internal check box selected.
    2. Enter Company B as Types CO, and W, and with the Internal check box selected.
  2. Cargo form:
    1. Create a Cargo with third party Y and company A.
      Note: For two internal companies, Cargo mirroring is also supported when the Cargo is created indirectly, through an Estimate.
    2. Other Info tab: Select the Intercompany check box and select the IC who will lift this cargo (B).
    3. Save. The following contracts are created:
      1. Cargo between A and third party Y
      2. Cargo between A and B
      3. VC In between A (Charterer) and B (Owner)
  3. VC In: Make sure the Cargo is set as Confirmed.
  4. The parent vessel/voyage will be the voyage between A and B (ii., above), either as TCOV (if the vessel is a TCI) or OVOV.
    1. Create the Voyage Fixture and schedule the voyage from the Cargo.
  5. Create the relet voyage:
    1. Open the third-party Cargo form (between third party Y and A).
    2. Click Add Relet and then click Existing VC In.
    3. Schedule the voyage and use voyage type RELT.
    4. Do not use the Consecutive voyage option, but set the start date equal to the start date of the parent voyage TCOV (OVOV).
    5. Any changes made to the parent voyage (between A and B) will be reflected on the RELT voyage, including the exact start/end date/times.


  • Scenario 2:

    • Company A has a Cargo contract with third party Y.
    • Company B has the TCI vessels that will lift the contract Cargoes.
    • Company A and Company B are internal companies, and the relet is not back-to-back.  I.e. Company A will pay Company B a different freight rate than third party Y pays to Company A.
  1. Address Book:
    1. Enter Company A as Types CO, and W, and with the Internal check box selected.
    2. Enter Company B as Types CO, and W, and with the Internal check box selected.
  2. Cargo form:
    1. Create a Cargo with third party Y and company A.
    2. Create a cargo relet with owner as Company B and company as Company A.  See IMOS - Creating a Cargo Relet.
    3. Enter the freight terms on the cargo relet.  The system will auto check the Intercompany checkbox under Other Info.
    4. Save. The system will now auto create the Cargo between A and B.
  3. The parent vessel/voyage will be the voyage between A and B (ii., above), either as TCOV (if the vessel is a TCI) or OVOV.
    1. Create the Voyage Fixture and schedule the voyage from the Cargo.
  4. Create the RELET voyage:
    1. Open the third-party Cargo form (between third party Y and A).
    2. Schedule the voyage and use voyage type RELET.
    3. Do not use the Consecutive voyage option, but set the start date equal to the start date of the parent voyage TCOV (OVOV).
    4. Any changes made to the parent voyage (between A and B) will be reflected on the RELET voyage, including the exact start/end date/times.
    5. Any changes made to the TCOV linked cargo, will only impact the VC IN contract and not the external cargo with actual Charterer. 

Source Codes for Invoices

invoices with the following Source Codes can be mirrored:

  • POOL
  • OREB
  • CREB
  • CREV
  • FINV
  • DEMP
  • DEMR
  • DESP
  • DESR
  • PTSH
  • MPAC

Summary Panel for Mirrored Voyages

The Voyage Manager Summary panel includes links to any mirrored voyages. To open a voyage, at the bottom of the tree, next to Mirrored Voyages, click the arrow to expand the list, and then click the voyage as shown in the following image:


Related Configuration Flags
Name/FlagDescription
Exclude fields from TC Mirroring
CFGTCMirroringExcludedFields
When enabled, you can exclude a comma-separated list of the TC fields Department, LOB, TradeArea, and BillVia from TC contract mirroring.
Allow Mirrored Invoice Approval
CFGAllowMirroredInvoiceApproval

Enables handling of mirrored invoices independently from their source invoices.

Allow Voyage Overlap
CFGAllowVoyageOverlap

When enabled, the system will warn that your commencing date is in another voyage's period. It will default No to the message box asking if you want to continue, but will allow clicking Yes.

Apply IC Adjustment to Xfrt
CFGApplyICAdjustmentToXfrt

If enabled, for a model B mirrored freight contract (Cargo / VC In and Cargo / VC In COAs), an Extra Freight Term is adjusted by IC Adj % in the same way as the base freight, if the Extra Freight Term type is Rate or Lumpsum (not Percent).

Auto Close Mirror Voyage Child
CFGAutoCloseMirrorVoyageChild

When enabled, when you close a mirrored parent voyage, the child voyage status is automatically set to Closed and is not editable.

Auto Internal Demurrage
CFGAutoInternalDemurrage

When enabled, for a Model B mirrored Cargo, demurrage/despatch between internal companies is automatically derived from the Laytime Calculation with the external counterparty.
Auto Post Mirrored Invoice by Type
CFGAutoPostMirroredInvoiceByType

When an invoice Source Code is included in the value of this flag, when an invoice of the type is posted, if it has a mirrored invoice, that is automatically also posted. If the posting of either side fails, neither side is posted. Possible values: FINV, RINV, TINV, DEMP, DEMR, DESP, DESR, POOL, OREB, CREB, CREV, TCOB, TCIP.

Disable External Commission Mirroring
CFGDisableExternalCommissionMirroring

When enabled, at Model B mirroring of a Freight or TC contract, commissions on the external contract will not be propagated into internal contracts.

Enable Contract Mirroring
CFGEnableContractMirroring

Enables the following types of intercompany contracts to be mirrored: Cargo COA, VC In COA, Cargo, VC In, Time Charter In, Time Charter Out, and FFA/Option/Bunker Swap Trade. When a contract of one of these types is created with internal counterparties, a mirrored contract is automatically created from the opposite perspective, so that users from both legal entities can manage the contract and include it in both their operational planning and their trading exposure and P&L.

  • When both CFGEnableContractMirroring and CFGEnableTCInvoiceMirroring are Y, and when a TC contract is mirrored, TCO invoices are mirrored from TCI invoices. Incremental invoice type is unavailable for such mirrored TC invoices.
  • If an **OV voyage has cargoes with multiple internal charterers, it can be mirrored with multiple RELT voyages, one for each internal charterer's company.
Enable Intercompany Security
CFGEnableIntercompanySecurity

Enables Intercompany Security, which enables you to establish which of your internal companies can transact with each other. Invoices or journal entries constituting transactions between internal companies not authorized per the setup on the Intercompany Security form cannot be posted.

Enable Invoice Mirroring
CFGEnableInvoiceMirroring

Applies only when CFGEnableContractMirroring is enabled; Freight Invoice, AR Demurrage Invoice, Rebillable Expense, and Rebill Claim invoices from the parent voyage are mirrored as Spot/Relet Freight Invoice, AP Demurrage, Voyage Other Expense, and Claim Payment (AP Claim) in the mirror voyage. They also acquire the same invoice numbers.

For Demurrage Invoices, the calculations are not mirrored, so opening the mirror Demurrage Invoice displays the parent voyage invoice. For this reason, the mirror invoice cannot be seen on the voyage Summary panel or Laytime Calculation Setup form. Mirror voyage invoices cannot be reviewed or approved; their status follows their counterparts from the parent voyage; posting has to be done manually in both voyages. The Claim Payment/Voyage Other Exp invoices in the mirror voyage can be rebilled by enabling the Rebillable check box/changing Type in the corresponding invoice forms (and not through the Transaction Data Entry form).

Enable TC Invoice Mirroring
CFGEnableTCInvoiceMirroring

When enabled, invoices of mirrored intercompany TC contracts can be mirrored. When both CFGEnableContractMirroring and CFGEnableTCInvoiceMirroring are Y, and when a TC contract is mirrored, TCO invoices are mirrored from TCI invoices. Incremental invoice type is unavailable for such mirrored TC invoices.

Enable TC Invoice Strict Mirroring
CFGEnableTCInvoiceStrictMirroring

When this config flag and CFGEnableContractMirroring are enabled, Period, Special, and Incremental invoices of mirrored intercompany TCs are strictly mirrored. CFGEnableTCInvoiceStrictMirroring takes precedence over CFGEnableTCInvoiceMirroring.

  • The Alloc P&L to TCO Voy check box is disabled and hidden from the TC form.
  • A TC invoice can be created from either side of a mirrored TC and is exactly mirrored to the other side, except:

    • Voy No of invoice detail line is not mirrored and still respects CFGDefVoyNoToTcoBill and CFGDefVoyNoToTciPay.
    • TC Rebill of invoice detail line is not mirrored.
Enable Voyage Data Flow Via Mirrored TC
CFGEnableVoyDataFlowViaMirroredTC

When enabled, voyages against mirrored TC contracts will share operations data. When a TC contract is mirrored with an internal counterparty, operations data (the itinerary and delays, excluding port expenses) of voyages against the TCI contract will appear in the voyage against the TCO contract. This data is read-only in the TCO voyage, serving as a view into the operations of the internal counterparty.

Independent Mirrored Invoice Approval
CFGIndependentMirroredInvoiceApproval

When enabled, the approvals of mirrored invoices are independent; if one side is approved, the other side must independently be approved by an authorized user.

Mirror Contract Reference No
CFGMirrorContractRefNo

If CFGEnableContractMirroring is enabled, this flag enables mirroring of the Reference No. or Ref No. field between mirror contracts.

Mirrored Freight Invoices Use AR Invoice No
CFGMirroredFreightInvoicesUseARInvNo

When enabled, mirrored freight invoices always use receivable invoice number.

If both CFGEnableInvoiceMirroring and CFGMirroredFreightInvoicesUseARInvNo are enabled, regardless of if a mirrored freight invoice is initiated from FINV or RINV/TINV side, the invoice number of both invoices should follow the numbering convention from the perspective of the FINV invoicing company. When either side of a mirrored freight invoice is posted, the posted invoice will use an FINV invoice number. This invoice number will be populated to both mirrored FINV and RINV/TINV bills. When the second side of the mirrored invoice is posted, the posted invoice will use the same FINV invoice number.

Consecutive Voyages by Company

CFGConsecutiveVoyagesByCompany

If enabled, when a voyage is marked as Consecutive, it is made consecutive to the last previous voyage of the same Company, ignoring any intervening voyages belonging to other Companies.

Useful if, internal company A relets a vessel to internal company B for multiple operating voyages, then once the vessel is redelivered, internal company A continues to schedule their own operating voyages. 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.