Skip to main content
Skip table of contents

IMOS - Mirroring Contracts

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:

    • 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.

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 Tree for Mirrored Voyages

The Voyage Manager Summary tree includes links to any mirrored voyages. To open a voyage, at the bottom of the tree, next to 

, click 
 to expand the list, and then double-click the voyage.

Related Configuration Flags

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.


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.

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).


Enables handling of mirrored invoices independently from their source invoices.


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


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.


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.


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


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.

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.


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.


When enabled, for a Model B mirrored Cargo, demurrage/despatch between internal companies is automatically derived from the Laytime Calculation with the external counterparty.

  • If a reversible demurrage invoice with multiple cargoes is created for a charterer in a mirror RELT voyage, mirror invoices are created using model B invoice mirroring logic. The Adj% of the first cargo in the Laytime Calculation is used to determine the amounts for the mirror invoices.


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.


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).


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


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.

JavaScript errors detected

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

If this problem persists, please contact our support.