Feature Area: Analytics / Reporting — SOF Event Data

Impact: Availability of more custom reports today, with out-of-the-box reports coming down the line

Overview

Today, understanding how long a vessel spent in each phase of a port call — arrival, pre-berth, cargo operations, and departure — means digging through SOF event data stored as a JSON blob, which is slow to query and easy to get wrong. This project rebuilds that data model from the ground up: SOF events move into structured, queryable tables, and Voyager pre-computes the standard duration of each port-call phase so it's ready to report on rather than needing to be recalculated every time. This also extends efficient analytics to customers who parse SOFs without creating claims. The eventual goal is a self-service "SOF Insights" reporting layer you can build on, to get exactly the report you need with no delay.

How It Will Work

  • Every validated SOF's events (unhidden/highlighted in the parser) live in normalized, structured tables, making the event data itself directly queryable.
  • Voyager will automatically compute seven standard timing buckets per port call — Arrival, Pre-berth, Cargo Preparations, Operations, Completion, Departure, and overall Port-Call Duration — recalculated whenever a SOF is (re)validated. Each bucket is defined by a specific pair of start/end "milestone" events (e.g. Arrival runs from vessel/barge arrival to NOR tendered).
  • These bucket durations will sync into a reporting layer alongside existing port, vessel, and company data, so they can be reported on without a manual data pull.
  • Data quality for these insights depends partly on customers validations — events a customer has hidden or dismissed as irrelevant to their claim may not be available to feed into these insights. Use the new Document Detection and Bookmarked SOF Event features to expedite the validation process. 

Planned Additions

  • Building out standard dashboards, charts, and metrics available for all customers. 
  • Breaking down the phases to finer-grained sub-buckets — time at anchor, time with the pilot aboard, tank inspections, sampling, and delay reasons — for a more detailed breakdown of why a phase took as long as it did.
  • Tying laytime calculations to operational events to explain the reasons for demurrage costs.