The GSIS reconciliation process takes a batch of GSIS updates to ROCK and processes them across OTTs. Having GSIS schedules updated is important to make the right planning decisions. Furthermore it enables accurate projection of future stock. This page describes how the process is designed.
At high level the process has the following steps:
Match Summary
In this first step the latest GSIS schedules are compared against OTTs to identify any changes on the routing information. Matching rules are applied to identify which events should be invoked.Invoke Events
The reconciliation events (updates, mismatches, rematches omit checks) are executed done according to the flags set in the match summary.OTT Status and Flags
As an additional step in the GSIS reconciliation logic the OTT status and flags are maintained.
Match Summary
Input data is selected for the reconciliation process in accordance with below:
Data | Notes | Criteria/How data looks |
|---|---|---|
GSIS Schedules | ROCK keeps a history of 6 months GSIS data, and receive an hourly batch update for every schedule into the future. For GSIS reconciliation logic the full GSIS data is used, which is approximately 6 months back to 6 months into future. |
|
OTT | When selecting the OTT data, the timeframe of available GSIS schedules are evaluated as the earliest arrival and highest departure time of each call. |
|
The matching logic is run against each OTT and compares each of the origin and destination calls against vessel schedules.
Matching is done using the following approach, for both origin and destination:
Note: Destination matching is similar to origin, one difference is that only terminal calls happening after the origin call are considered
Identify all schedules based on the following matching criteria
OTT VesselCode = GSIS VesselCode
OTT
ORIGIN \ DESTINATIONCall PoolCode = GSIS TerminalCode PoolCodeGSIS ArrTime is within N Days of OTT
ORIGIN \ DESTINATIONarrival time (where N is 30 days for OTTs in state Loaded, else 7 days)GSIS DepTime is within N Days of OTT
ORIGIN \ DESTINATIONdeparture time (where N is 30 days for OTTs in state Loaded, else 7 days)
If more than one schedule exists, the following ordering is applied
Exact matches of schedule IDs aka DSC ID (descending by IsMatchingDSC = whether schedule DSC equals OTT
ORIGIN \ DESTINATIONDSC code)Exact matches of
ORIGIN\DESTINATIONsite (descending by IsMatchingORIGIN\DESTINATIONSiteCode)Lowest absolute time difference of call as per schedule to OTT
ORIGIN \ DESTINATIONcall (ASC by ArrDiffABS)In ascending order by schedule ID (unique, tiebreaker)
OTT is matched by first item of ordered scheduled (rank = 1)
Sample matching data (matching an OTT Origin Call):
OTT Origin Call Data
OTT number | Origin Schedule ID | Vessel code | Origin site | Origin pool | Origin Arr Voy | Origin Dep Voy | Arrival | Departure |
|---|---|---|---|---|---|---|---|---|
R19397349 | 11144131 | H4J | MYTPPTM | MYTPP | 950N | 950N | 2019-12-17 10:12 | 2019-12-21 11:22 |
Relevant GSIS Schedules (ordered). All schedules below match the Origin site, differences are highlighted.
Reason for rank | Schedule ID | Vessel code | Origin site | Origin pool | Origin Arr Voy | Origin Dep Voy | Arrival | Departure | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Precise match | 11144131 | H4J | MYTPPTM | MYTPP | 950N | 950N | 2019-12-17 10:12 | 2019-12-21 11:22 |
| 2 | Different timing, but closer to OTT schedule than 3 | 11144127 | H4J | MYTPPTM | MYTPP | 949S | 949S | 11-12-2019 00:13 | 11-12-2019 13:41 |
| 3 | 11144135 | H4J | MYTPPTM | MYTPP | 952W | 952W | 26-12-2019 10:09 | 26-12-2019 21:18 |
Based on matched summary, each OTT is flagged according to below types, which dictate which actions are required
Criteria | CaseType | Post Processing Actions | |||||||
|---|---|---|---|---|---|---|---|---|---|
Was Matched | Is Now Matched | Updates | Duplicate | # | Event | Run Mismatch | Run Rematch | Commit Updates | Check Omit |
Yes | Yes | 0 | - | 1 | OTT still matches, but no updates | No | No | No | No |
Yes | Yes | >0 | Yes | 2 | OTT still matches, but update causes duplicate OTTs | Yes | No | No | No |
Yes | Yes | >0 | No | 3 | OTT still matches and updating is safe | No | No | Yes | Yes |
No | No | - |
| 4 | OTT still does not match to any schedule | No | No | No | No |
No | Yes | - | Yes | 5 | OTT now matches again, but update causes duplicate OTTs | No | No | No | No |
No | Yes | - | No | 6 | OTT now matches again and re-matching is safe | No | Yes | No | Yes |
Yes | No | - | - | 7 | OTT no longer matches to a schedule | Yes | No | No | No |
Invoke Events
GSIS events are processed according to the event flags, following the below rules
Event Group | OTT updates | OTT log updates | Cancellations |
|---|---|---|---|
Mismatch |
|
| is_unlocked = OTT does not have any OTT lock, equ group lock or vessel call lock
if is_unlocked:
OTT is Cancelled (Status updated)
|
Rematch |
|
| none |
Normal Update |
|
| none |
Check OMIT |
is_ott_scope: Ott is in state A if is_ott_scope: planned equ in state A cut to S |
| is_ott_scope = OttStatus IN ('S', 'A'):
new_omit = Origin is now OMIT or Dest is now OMIT
if is_ott_scope and new_omit:
OTT state set to 'C'
|
OTT Status and Flags
The final step in the reconciliation process includes maintaining the status codes for OTTs
Step | Applies to | Condition | Action | Shown in Activity Log |
|---|---|---|---|---|
Set marine OTTs to LOADED | Marine OTTs in status SUGGESTED or APPROVED | There is Actual Arrival coming from GSIS | Set OTT state to LOADED | Yes |
Revert outdated Loaded state | Marine OTTs in status LOADED | The OTTs have neither Actual Arrival set, nor currently matching containers (due to schedule changes, Ocean Reconciliation might not attribute the containers to this OTT any more) | Set OTT state to the state they were in prior to Loaded | Yes |
Set inland OTTs to LOADED | Marine OTTs in status SUGGESTED or APPROVED | Actual Arrival date from GSIS has been reached | Set OTT state to LOADED | Yes |
Set dummy OTTs to LOADED | Dummy OTTs (type 'xx%') | Corridor arrival date has been reached | Set OTT state to LOADED | Yes |
Handle optimal voyage status | Marine OTTs | Mark as optimal voyage, if origin or destination site are NOT called more than once within the voyage | No |