Spun off from NAUTILUS codebase, a real-time compliance management tool for shipowners and fleet managers operating under the EU Emissions Trading System (EU ETS) and FuelEU Maritime regulation.
Live at https://compliance.ingeniat.eu · Backend API at port 8000 · Built with FastAPI + React/Vite
Getting Started
Log in with the pre-filled credentials:
[email protected] / admin123
What it does
Emissions calculations, done for you
The platform computes EU ETS obligations automatically from your voyage and fuel data. Load a voyage, attach the fuel records (BDN data), pick the compliance year and the current EUA price — the system spits out the exact tCO2 and the cost in euros. No spreadsheets, no back-of-envelope estimates.
FuelEU Maritime works the same way: the system calculates your GHG intensity against the regulatory baseline, flags whether you’re in deficit, and tells you how much the penalty will be (and whether you can borrow from next year’s allocation instead).
CII ratings without the lookup tables
Enter your vessel’s total CO2 and distance for the year and the platform returns the CII rating — A through E — with the reference value for your vessel type and size. If you’re sitting at D or E, it also generates a corrective action plan blurb you can paste into your SEEMP.
UK ETS, tracked separately
The UK operates its own ETS with different rules (domestic routes are 100%, UK-EEA is 50%, everything else is out of scope). The platform keeps a completely separate ledger for UK obligations so nothing bleeds into your EU numbers.
THETIS-MRV export
Generate a THETIS-MRV XML file for any vessel-year directly from the platform. Upload it to the EMSA portal and you’re done with that part of the reporting cycle.
Invoicing that follows the chain
When a voyage falls under a charterparty, the platform allocates the ETS cost between owner and charterer according to the BIMCO SHORTNM or SHIPMAN clause. Then it generates the invoice — line items per voyage, total in euros — ready to send. Record payments as they come in and the status advances automatically from Draft to Sent to Paid.
OPX Pool — buying and selling surplus EUAs
If you’ve over-allocated EUAs relative to actual emissions, you can list the surplus on the platform’s internal marketplace. Other tenants on the platform can browse listings and agree a price. When a match is made, the platform records the EUA purchase and sale as a transaction in your ledger.
Alerts that actually surface
The system watches for things that need attention: surrender deadlines approaching, ETS positions running low, C ratings turning into D, invoices going overdue, fuel records missing for completed voyages. You configure which alerts fire and who receives them. The dashboard shows a live unacknowledged count so nothing slips through.
ERP connectivity
If your company runs SAP, Oracle, or Dynamics, the platform can pull vessel data, voyages, and fuel consumption directly from your ERP — no manual re-entry. Configure the connection once and trigger a sync whenever you need fresh data.
Feature Overview
Vessels — Fleet Registry
Manage your full fleet from a single screen. Each vessel record carries its IMO number, flag state, vessel type, and live compliance indicators.
– ETS Coverage % — proportion of the vessel’s voyages covered under EU ETS (0–100%)
– CII Rating — current Carbon Intensity Indicator rating (A/B/C/D/E)
– EU ETS Verified — toggle indicating whether the vessel has submitted its annual EU ETS emissions verification
– FuelEU Compliant — FuelEU Maritime compliance status for the current regulatory period
Clicking any IMO number opens the vessel detail page, showing the full voyage history, fuel consumption records, and per-voyage CO2 emissions broken down by fuel type.
Voyages — Operational Tracking
Each voyage record links a vessel to a specific route, timestamps, and regulatory coverage figures.
| Field | Description |
| Voyage # | Unique identifier assigned by the fleet operator |
| Route | Departure → Arrival port (UN/LOCODE format) |
| Departure / Arrival | Timestamps in UTC |
| Type | MIXED, INTRA (within EU/EEA), or EXTRA (extra-EU) |
| ETS Coverage | % of the voyage’s emissions subject to EU ETS surrender obligations |
| FuelEU Coverage | % subject to FuelEU Maritime greenhouse gas intensity requirements |
| Status | PLANNED · IN PROGRESS · COMPLETED · CANCELLED |
Voyages with COMPLETED status automatically show 100% ETS and FuelEU coverage in the seed data. IN_PROGRESS voyages reflect partial coverage. PLANNED voyages carry zero coverage until departure.
Create, edit, and delete voyages directly from the Voyages tab. The status of a voyage can be advanced from PLANNED through IN_PROGRESS to COMPLETED without leaving the edit modal.
Invoices — EU ETS & FuelEU Financials
Tracks all EU ETS allowance invoices and FuelEU penalty invoices linked to specific vessels and regulatory periods.
Each invoice records:
– Invoice # — structured as INV-<YEAR>-<QUARTER>-<TYPE>-<SEQ> (e.g. INV-2025-Q4-EUETS-001)
– Counterparty — shipowner or partner entity
– Amount / Currency — total payable in EUR
– Issue Date / Due Date — payment timeline
– Status — DRAFT · SENT · PARTIAL_PAID · PAID · OVERDUE · DISPUTED
Overdue invoices automatically surface as CRITICAL alerts in the Alerts tab. Invoice records can be created, edited, and deleted from the Invoices tab.
OPX Pool Marketplace — Surplus Allowance Trading
The OPX Pool allows fleet managers to buy and sell surplus EU ETS allowances (EUAs) peer-to-peer, at negotiated prices, without going through the standard secondary market.
Browse — view active listings from other market participants. Each listing shows:
– Vessel name and IMO
– Surplus tCO2e available
– Ask price (EUR per tCO2e)
– Total listing value (EUR)
– OPX Premium % — deviation from the current EU ETS spot price benchmark
– Expiry date
My Listings — manage your own surplus allowance listings. Place new listings, track which have been matched with a counterparty, and settle agreements directly through the platform.
OPX Premium % is calculated against the live EU ETS benchmark (seeded at ~€67/tCO2e). A negative premium means the listing is priced below the benchmark — attractive to buyers.
Alerts — Real-Time Monitoring
The Alerts tab surfaces compliance events requiring human attention across all vessels and regulatory instruments.
Alert types include:
| Severity | Trigger |
|—|—|
| CRITICAL | EU ETS submission deadline missed |
| CRITICAL | Invoice overdue (past due date, unpaid) |
| CRITICAL | Pool listing expired without settlement |
| WARNING | CII efficiency threshold breached |
| WARNING | Charterparty approaching expiry |
| WARNING | FuelEU intensity exceedance |
| INFO | EU ETS monitoring plan due for renewal |
Each alert can be acknowledged (ACK button) to mark it as seen. Unacknowledged alerts appear as badge counts in the sidebar navigation.
The Dashboard widget shows the live alert summary: total count, unacknowledged count, and critical-only count — updated in real time as alerts are acknowledged or new ones are triggered.
Dashboard — Compliance at a Glance
The landing page after login gives a fleet-wide compliance snapshot:
– Active Alerts — live count of unacknowledged alerts by severity
– Fleet Overview — total vessels, vessels with ETS coverage, FuelEU compliant count
– ETS Covered Voyages — number and % of voyages with 100% EU ETS coverage for the current year
– Invoice Status — breakdown of DRAFT / SENT / OVERDUE / PAID invoices for the year
– Recent Voyages — latest 10 voyages with ETS % and status
Regulatory Scope
| Regulation | Obligation | Applies To |
|—|—|—|
| EU ETS (2003/87/EC, as amended) | Surrender EUAs matching verified CO2 emissions | Vessels >5, GT operating in EU/EEA ports |
| FuelEU Maritime (2023/959) | Meet GHG intensity limits per voyage | Vessels >5, GT, departing from or arriving at EU/EEA ports |
| EU MRV (2015/757) | Report CO2 emissions, fuel consumption, efficiency data | Vessels >5, GT on EU/EEA port calls |
The platform currently covers EU ETS allowance management and FuelEU compliance tracking. EU MRV data (fuel consumption, CO2 per voyage) is seeded in the database and exposed via the backend API; the frontend UI for direct MRV data entry is planned.
Technology Stack
– Frontend: React 18 + TypeScript, Vite build tool, plain CSS with CSS custom properties (no framework)
– Backend: FastAPI (Python 3.12), SQLAlchemy 2.0 async ORM, Pydantic v2
– Database: PostgreSQL 16 (asyncpg driver)
– Authentication: JWT (access + refresh token), role-based (SUPER_ADMIN / COMPLIANCE_MANAGER / FLEET_CONTROLLER / VESSEL_OPERATOR)
– API Base: /api — all frontend requests proxied through Vite to http://localhost:8000/api
– Seed Data: 5 vessels, 22 voyages (2024–2026), 21 invoices (2025), fuel consumption records, 18 alert events, 12 pool listings + 6 from a second tenant
