Shipping account dashboard
Overview
The Spatial Data Dashboard is a decision-support tool designed to provide the Solomon Islands Maritime Authority (SIMA) with integrated visualisation of maritime sector data. The dashboard transforms SIMA's vessel registry and operational data into dynamic, interactive visualisations that support evidence-based maritime policy and strategic planning.
Access
https://solomons-sima.d16gqzs3kubl57.amplifyapp.com/
user: sima-pilot
pass: 3s6htc7KMWfXiuE
Source code
The repo that build the dashboard can be downloaded here. The README within the repo contain comprehensive documentation on building, testing and deploying the dashbaord.
Development Status
This is the first iteration of the dashboard, developed during the 16-week pilot phase (October 2025 – January 2026) based on stakeholder engagement and data assessment conducted during in-country visits to Honiara in December 2025.
We are actively seeking feedback from SIMA and associated stakeholders to refine the dashboard design, prioritise additional features, and ensure the tool meets decision-makers' information needs. Feedback gathered during this phase will inform the final dashboard specification.
The following visualisation features have already been identified as priorities for the next iteration, based on consultations with SIMA staff and in-country conversations with stakeholders:
-
Fuel Consumption Density Mapping Visualisations showing fuel consumption density across the fleet.
-
Vessel Route Tracking Visualisations showing which ships follow which route.
-
Cargo Flow Visualisation Visualisations showing cargo density, subject to availability of cargo manifest data.
-
Global Connectivity Intelligence Tracking of AIS positions to show what ships coming to Solomon Islands are doing for the rest of the time.
-
Revenue Tracking Display of income from fees when ships enter international waters.
Feedback
We welcome input on:
- The relevance and utility of proposed visualisations for decision-making
- Additional metrics or visualisations required to support maritime policy and planning
- Data accessibility, interactivity, and user experience preferences
- Integration pathways with existing SIMA workflows and systems
- Feasibility and priority sequencing for dashboard development
Solomon Islands Maritime Transport Dashboard
Comprehensive Documentation and Roadmap
Last updated: 2026-01-27
1) Executive summary
This repository contains a Solomon Islands Maritime Transport Account prototype dashboard for the Solomon Islands Maritime Authority (SIMA), built under the Global Ocean Accounts Partnership (GOAP). The dashboard is a data-driven, configurable web application that visualizes maritime transport indicators, fleet and crew composition, port activity, and spatial layers. It is designed to be integrated into the SIMA portal and to evolve from a prototype that uses a mix of real and synthetic data into a production system connected to SIMA’s database.
Contract objectives addressed:
- Adaptation of the GOAP open-source dashboard tool for Solomon Islands.
- Visualization of fleet deployment, port access, and service coverage.
- Technical documentation for national ownership.
2) Dashboard scope and functionality
Pages
-
Dashboard (/)
- Shipping hero with narrative spotlight and last updated date.
- Fleet scope toggle (prominent card):
- “Solomon Island vessels (domestic)”
- “All vessels (incl. Intl.)”
- All KPIs, fleet composition, GDP placeholders, and port detail breakdowns respond to this toggle.
- KPI grid: fleet total, active vessels, registered tonnage, port calls YTD, crew total, domestic crew share, GDP contribution, GDP share.
- Safety and training coverage cards with synthetic tooltips.
- Fleet composition by vessel type and vessel search table.
- Crew composition by rank and nationality (grouped to “Solomon Islands” vs “Other”).
- Total Domestic and International Maritime Traffic panel (synthetic sample), with click-to-expand port detail modal (vessel type and flag breakdown derived from registry last-port data).
- GDP contribution and share cards open a time-series popup.
- “Maritime transport account prototype” narrative section with assumptions and an embedded “Why these indicators matter” sub-card and modal (includes workforce multiplier context).
- No map on the dashboard; a link directs users to the Spatial page.
-
Spatial (/spatial)
- MapLibre map showing ADM1 provinces, SIMA ports, and vessel/crew density layers.
- Layer toggles for provinces, ports, and heatmap.
- Port popups show terminal flag, authority, UN/LOCODE, and prototype traffic counts.
Design principles
- Data-first cards, concise labels, and accessible layouts.
- SIMA blue branding (#0f67b1) and neutral tones.
- Tooltips explicitly call out synthetic/prototype data.
3) Data architecture
The dashboard is fully driven by JSON/GeoJSON files under public/data/solomons/ and validated by JSON schemas in /schemas.
Core data files
-
overview.json
- KPI calculation descriptors (not KPI values).
- Safety snapshot (placeholder values).
- Spotlight narrative text and highlights (linked to computed metrics).
- Economy placeholder values and time series (domestic vs all vessels).
- Rationale block (“Why these indicators matter”).
-
map.json
- Map defaults and ADM1 boundary reference.
-
solomons_ports.geojson
- Ports with terminal flag, authority, UN/LOCODE, and coordinates.
-
fleet.json
- Vessel registry records (
vessels[]). - Summary values may exist but are not authoritative; the UI computes totals directly from the vessels list.
- Vessel registry records (
-
crew.json
- Crew totals, rank mix, nationality mix (source sample), and training coverage.
-
traffic.json
- Monthly port traffic sample (arrivals/departures/cargo).
-
movements.json
- Prototype logbook-style vessel events (synthetic).
-
heatmap.json
- Prototype density buckets for ports/provinces (synthetic).
KPI derivation (runtime)
- Fleet totals, active vessels, and registered tonnage are computed from
fleet.jsonfiltered by the fleet scope toggle. - Crew totals and domestic crew share are computed from
crew.json. - Port calls YTD and average crew per call are computed from
traffic.jsonsample data. - GDP contribution/share and safety/training coverage are placeholders stored in
overview.json(marked synthetic).
Validation
Run the following before deployment:
pnpm run validate-datapnpm run type-check
4) Data provenance (real vs synthetic)
Data sourced from SIMA portal or SIMA-provided files
- Fleet registry extract (
public/data/solomons/raw/Vessels - 251204.1527.xlsx)- Used to populate
fleet.json.
- Used to populate
- Safe Manning sample (
public/data/solomons/raw/Safe Manning - 251209.1206.xlsx)- Used to populate
crew.jsontotals, rank distribution, and nationality mix.
- Used to populate
- Ports list (
public/data/solomons/raw/ports.md)- Used to populate
solomons_ports.geojson.
- Used to populate
Synthetic / prototype data (used to demonstrate functionality)
- Traffic:
traffic.jsonmonthly arrivals/departures/cargo. - Movements:
movements.jsonlogbook-style events. - Heatmap:
heatmap.jsondensity buckets. - Safety certification coverage and training coverage in
overview.json. - GDP contribution / GDP share and GDP time series in
overview.json.
Each synthetic metric is explicitly marked with a tooltip in the UI.
Known data limitations
- Fleet registry data is downloadable as a bulk extract.
- Detailed logbook data and full crew data can currently only be downloaded record-by-record, making bulk ingestion impractical.
- This limitation is the primary reason a future database-to-JSON pipeline is required.
5) Recommended data integration roadmap (indicative estimation of timeline)
Phase 1: Short-term stabilization (0–3 months)
- Define authoritative metrics and calculation rules for each KPI.
- Agree on data cadence (monthly vs quarterly for traffic; annual for GDP/accounting outputs).
- Prepare a staging area for SIMA data extracts (secure file drop or database snapshot).
- Confirm data governance and approval workflow for updates.
Phase 2: Data pipeline MVP (3–6 months)
- Build a lightweight extraction service from SIMA’s MySQL database.
- Transform into the required JSON schema (
overview,fleet,crew,traffic,movements,heatmap). - Implement automated validation and export jobs.
- Establish a secure location to host/serve JSON (static hosting or API endpoint).
Phase 3: Production integration (6–12 months)
- Connect pipeline to production database.
- Automate daily/weekly updates for traffic and logbook-derived layers.
- Implement operational monitoring (data freshness checks, validation alerts).
- Formalize dashboard ownership and maintenance responsibilities within SIMA.
6) Integration with SIMA portal
Current SIMA portal tech stack
- PHP 8.4, Laravel 8
- MySQL 8
- UI templates: https://akaunting.com/
Integration options
-
Static JSON export (simplest)
- Nightly/weekly export job writes JSON files into the dashboard’s
public/data/solomons/directory or into a static hosting bucket. - Dashboard reads files via
NEXT_PUBLIC_DATA_PATH.
- Nightly/weekly export job writes JSON files into the dashboard’s
-
API-backed JSON service (more scalable)
- A small service (Laravel or Node) serves
/data/...endpoints in the required schemas. - Dashboard pulls live JSON with cache/revalidation.
- A small service (Laravel or Node) serves
Requirements from existing developers
- Create a test environment or folder for dashboard integration with shared template assets and GitHub access.
- Full database access to add new fields and/or new tables (existing fields not altered).
- Joint management of Groups, Users, and Permissions for portal integration.
7) Resource requirements (estimated personnel skills, not FTE)
People
- Product/Project Lead (coordination, stakeholder approvals)
- Data Engineer (ETL/pipeline from MySQL to JSON)
- Full-stack Developer (dashboard integration, portal embedding)
- QA/Analyst (data verification, KPI checks)
Infrastructure
- Staging and production environments
- Scheduled data processing (cron / job runner)
- Storage/hosting for JSON or API
- Monitoring/alerting for data freshness and validation failures
8) Long-term update cadence considerations
- Traffic/logbook data: ideally daily or weekly updates once integration is automated.
- Fleet registry: monthly or quarterly updates.
- Crew data: quarterly or bi-annual updates depending on access.
- GDP/economic accounts: annual updates in sync with national accounts.
The cadence should balance data availability, operational capacity, and validation workload.
9) Operating and maintaining the dashboard
Running locally
pnpm install
pnpm run dev
Validation before release
pnpm run validate-data
pnpm run type-check
Updating data manually (current prototype)
- Replace JSON files in
public/data/solomons/. - Run validation.
- Rebuild and redeploy.
10) Appendix: File reference summary
- Data root:
public/data/solomons/ - Schemas:
/schemas - Validation:
scripts/validate-data.ts - Dashboard entry:
src/app/page.tsx - Spatial entry:
src/app/spatial/page.tsx
This document is intended to be standalone and can be shared directly or exported to PDF for delivery.