Terminal connections in Rotterdam
A container only leaves the quay once two parties have released it: customs and the terminal. SKAI puts both statuses side by side in the same dossier, so your declarant sees straight away which side is still blocking instead of clicking between portals half the day.

Which Rotterdam terminals are connected?
SKAI connects to the deep sea terminals that handle the Rotterdam container volume: ECT Delta and Euromax on the Maasvlakte, Rotterdam World Gateway on Maasvlakte II, and the APM Terminals sites, both Maasvlakte II and APM Terminals Rotterdam. Every terminal has its own portal, its own message set and its own way of releasing a container. What they share is the substance of the requirement. For every container the carrier has to have released it commercially, the customs side has to be settled, and the pick-up has to be announced with a haulier and a time window. Miss one of those three and the container stays where it is, even though there is nothing wrong with the declaration. What differs per terminal is the form. One wants the pick-up announced per container, another per trip. The windows are called something different everywhere and the rejection reasons come back in different wording. That difference is exactly what a connection removes: in the dossier you read one status field, not four dialects.
What is the difference between customs release and terminal release?
Customs release means customs has released the goods for the procedure you asked for. The declaration is accepted, an MRN has been issued, and no document or physical inspection is still running. Terminal release means something else: the terminal may hand this container over to the haulier standing at the gate. Those are two decisions by two parties and they are independent. The terminal does not look into DMS. The terminal looks at what arrives through Portbase about the customs status of the container, at the carrier's release, and at its own conditions: is the sea freight settled, has the container been discharged, is there a valid pick-up announcement. Both have to be true before the container moves. That is why a declarant can think the job is done while the haulier still cannot leave, and a planner can think the haulier is slow while the customs side is still open. As long as those two pictures live in different systems, every phone call about it costs two people time.
How do you announce a container and link the MRN?
Announcing is the moment you tell the terminal that a customs procedure exists for this container and which one it is. In the Netherlands that runs through Portbase, with the container number on one side and the MRN of the declaration on the other. That link is what returns the status the quay works from. The link itself is where it goes wrong. An MRN belongs to a declaration, not to a container. An import declaration covering twenty containers produces one number that has to be announced twenty times, and a shipment with a T1 plus a separate import clearance has two numbers of which only one is the right one for this step. Announcing the wrong number produces a rejection with no obvious cause. SKAI builds that link from the dossier itself. The container number comes out of the bill of lading, the MRN out of the customs response, and both carry a source label back to the document they came from. Nothing is retyped and nothing is fished out of an email.

Why do demurrage and detention keep running while you wait for one document?
Demurrage runs over the time the container stays on the terminal after the free period. Detention runs over the time you hold the carrier's container once it has left the terminal. The counter does not look at the reason. The counter looks at the days. A health certificate that has not arrived, a goods code that does not line up with the authorisation, an invoice that only comes on Monday: they all cost the same calendar days. The further the free period is behind you, the more each further day per container costs, and the weekend simply counts. The unpleasant part is that those days rarely land as customs costs where they arose. They arrive weeks later as an invoice from the carrier or the terminal, by which time nobody can reconstruct which missing document caused the delay. Keep the terminal status and the customs status side by side with timestamps and you can, and you can have that discussion with facts.
How does SKAI keep terminal status next to customs status?
In SKAI a container is not a loose fact in another screen but a line in the same dossier that holds the declaration. The dossier shows what customs sent back and, beside it, what the terminal sent back: discharged, announced, released, blocked, or waiting on one of the conditions. That turns the question a declarant asks all day, which side is blocking this one, into a glance at one screen instead of three portals. If the declaration is under inspection, it sits with customs. If the declaration is accepted and the container is still on hold, it is commercial or the pick-up announcement is missing. That distinction decides who you call. Every status change stays in the dossier with its time and its source, the same way every read field does. That is useful during the run, and it is exactly what you need when there is an argument afterwards about who let which day run.
What does checking three portals by hand actually cost?
A forwarder with containers across ECT, RWG and APM logs into three portals, filters each one on its own container numbers and holds the outcome up against the declaration system. Each time that is a few minutes. The problem is not those few minutes, it is that it happens several times a day per container, and always to the same people who also file the declarations. That time appears in no report. There is no line for it on the invoice, no step for it in the dossier, and in the timesheet it is called operational work. Only when someone sits with the team for a day does it become clear how much of the day goes into looking up again what the system already knew. A connection takes that step out. The status arrives, lands in the dossier and only becomes visible when something is actually being asked of you. Your declarant looks at the exceptions, not at every container.