Перейти до змісту

ShipCore — Implementation Roadmap

Статус документа: Phase 3 detailed roadmap. Замінює outline-level версію після Phase 1. Pre-conditions: Phase 0 (skeleton) + Phase 1 (market+standards research) + Phase 2 (integration matrix deep) закриті 2026-05-12. 25 архітектурних рішень підтверджені (12 з check-in, 9 Phase 1 corrections, 16 Phase 2 corrections). Поточний фокус: Phase 4 entry (refactor + shipcore.compliance/ foundation).


§ 0. TL;DR Calendar Map

ASCII timeline — місяць-by-місяць з критичними deadlines (1-2 сесії/тиждень baseline, solo dev + AI-assistant). Дати orientative — не commitment до клієнтів, а realistic-pessimistic план з urlpdate-checkpoints після кожної phase.

2026                                                                    2027                                            2028
─────────────────────────────────────────────────────────────────────  ─────────────────────────────────────────────  ────
 05    06    07    08    09    10    11    12     01    02    03    04    05    06    07    08    09    10    11    12  Q1+
 │     │     │     │     │     │     │     │      │     │     │     │     │     │     │     │     │     │     │     │
 ✅P0
 ✅P1
 ✅P2
 ✅P3◀── 2026-05-12 (Phase 3 final concept + sub-documents — цей файл частина)
       ╔═════════╗                                                                                                       
       ║ Phase 4 ║◀── refactor ShipCore namespace + shipcore.compliance/ foundation (5 weeks)
       ║  5 wk   ║      └── Включає eTTN backends (Vchasno+M.E.Doc) — встигаємо до 2027-01-01 mandatory
       ╚═════════╝
                ╔══════════════╗                                                                                         
                ║ Phase 5      ║◀── Sea + Maersk sandbox + CargoWise migration playbook (5-6 weeks)
                ║   5-6 wk     ║      └── Pilot Wave 1 UA road carrier onboard sandbox demo
                ╚══════════════╝
                       ╔═══╗                                                                                             
                       ║5.5║◀── Дунайські TOS (1-2 weeks, parallel with end of P5)
                       ║1-2║
                       ╚═══╝
                          ╔══════╗                                                                                       
                          ║  P6  ║◀── Rail + УЗ Cargo (ГІОЦ) + Customs UA API bonus (4 weeks)
                          ║ 4 wk ║      └── може стартувати парал. з P5 коли GIOC NDA в роботі
                          ╚══════╝
                                ╔═══╗                                                                                    
                                ║P7 ║◀── Quote builder + LaneRateHistory build (3 weeks)
                                ║3wk║      └── WIN cleared як non-fit (air-cargo тільки)
                                ╚═══╝
       ─────────────────────────────────────────────────────────────  ▲                                                  
                                                                      │ 2027-01-01 eTTN UA MANDATORY ✅ (P4 deliverable)

                                       ╔══════════════════════════════════════════════════╗                              
                                       ║          Phase 8 — EU expansion v1.5             ║◀── 16 weeks revised
                                       ║   eFTI 4 connectors + ICS2 ITSP + eCMR hybrid    ║      (P2-R3 revision)
                                       ║   + NCTS broker + eBL 2 hubs + Sign-twice real   ║
                                       ║   + EU sanctions + 2 EU carriers                 ║
                                       ╚══════════════════════════════════════════════════╝
                                                                            │ 2027-07-09 eFTI MANDATORY public authorities ✅
                                                                            │   (P8 deliverable, tight але встигаємо)

                                                                                                                ╔═══════╗
                                                                                                                ║ P9+   ║
                                                                                                                ║ Awery ║
                                                                                                                ║ avia  ║
                                                                                                                ║ TBD   ║
                                                                                                                ╚═══════╝

КРИТИЧНІ КАЛЕНДАРНІ ТРИГЕРИ (verified standards-matrix.md):
─────────────────────────────────────────────────────────────────────────────────────
 ❌ 2026-06-01  ICS2 R3 mandatory для PL/RO/SK/HR/LV/LT
                → НЕ ВСТИГАЄМО. v1 = UA-only — підтверджено user 2026-05-12.
                  EU cross-border транзити переносяться у v1.5 (Phase 8).
                  Чесна позиція: пілоти не роблять UA→EU транзити через ShipCore
                  у v1, тільки UA-внутрішнє + UA→Constanța (Black Sea коридор).
 ⚠️  2026-12-30  EUDR mandatory (deforestation regulation)
                → не пряма ShipCore feature. У v1.5 додаємо EUDR data fields на
                  Booking якщо є попит. Не блокує Phase 8 entry.
 ✅ 2027-01-01  eTTN UA mandatory (всі road carriers)
                → Phase 4 deliverable. Vchasno + M.E.Doc backends. Phase 4 готова
                  не пізніше 2026-Q3 (5 weeks при 1 session/week = 2.5-5 calendar months
                  with realistic capacity). Маркер контрольний.
 ✅ 2027-07-09  eFTI mandatory для public authorities (acceptance)
                → Phase 8 deliverable. v1.5 EU expansion. Phase 8 заплановано
                  закрити Q1-Q2 2027 — встигаємо за 1-2 квартали до deadline.
                  Якщо Phase 4 пойде на місяць пізніше — переносимо v1 GA, не P8.
 📅 2030       DCSA eBL 100% adoption commitment (9 carriers)
                → довгий горизонт. CargoX+WaveBL hubs у Phase 8 покривають baseline.
                  Решта hubs (Enigio/TradeGo/IQAX) — Phase 9+.
─────────────────────────────────────────────────────────────────────────────────────

Чесна позиція по календарю:

  • Phase 4-7 (UA-core) = ~14-18 weeks calendar (5+5.5+4+3 weeks at 1-1.5 session/week tempo з realistic slip-room). Тобто Q3 2026 → Q1 2027.
  • Phase 8 (EU compliance) = ~16 weeks revised (P2-R3). Q1 → Q2/Q3 2027.
  • eFTI 2027-07-09 deadline — досяжний, але буфер ~1 квартал. Якщо Phase 4 ковзне на 2 місяці — Phase 8 кінчається на межі deadline.
  • ICS2 R3 2026-06-01 — пропускаємо свідомо (v1 UA-only). EU клієнти платять за PIlot Wave 2 (ZAMMLER) починаючи Q1 2027.
  • Acceleration triggers (§ 11) можуть стиснути календар у 2× при другому розробнику або у 1.5× при partnership boost.

§ 1. Phases overview (revised after Phase 2)

Таблиця revised effort estimates після Phase 2 corrections (особливо P2-R3 для Phase 8 та C-eFTI-byDesign для Phase 4):

Фаза Назва Тип Original (P0) Revised (P2) Зміна Calendar window
Phase 0 Skeleton + outline Concept 2-3 год ✅ done 2026-05-12
Phase 1 Deep market research (4 треки) + eFTI deep dive Research 1 сесія ✅ done 2026-05-12
Phase 2 Integration matrix deep (~25 інтеграцій) Research 2-3 сесії ✅ done 2026-05-12
Phase 3 Final concept + sub-документи + цей roadmap Concept 1 сесія ✅ done 2026-05-12
Phase 4 Refactor existing + shipcore.compliance/ foundation (C-eFTI-byDesign) Implementation 2-3 weeks ~5 weeks +30% 2026-Q3 → 2026-Q4
Phase 5 shipcore_sea (Maersk Spot sandbox + DCSA VGM REST + CargoWise migration playbook) Implementation 4-6 weeks 5-6 weeks без змін 2026-Q4
Phase 5.5 ⭐ NEW Дунайські TOS adaptation (Ізмаїл/Рені/Усть-Дунайськ) — reaction на Octopi Romania Implementation 1-2 weeks NEW 2026-Q4 (паралельно P5/P6)
Phase 6 shipcore_rail (УЗ Cargo через ГІОЦ + Customs UA API bonus) Implementation 3-4 weeks 3-4 weeks без змін 2026-Q4 → 2027-Q1 (parallel-capable з P5)
Phase 7 Quote builder + LaneRateHistory build (WIN cleared як не fit — air-only) Implementation 1-3 weeks 2-3 weeks +slight 2027-Q1
Phase 8 v1.5 EU expansion (eFTI + ICS2 + eCMR + NCTS + eBL hubs + sanctions + 2 EU carriers) Implementation 6-10 weeks ~16 weeks 🔴 major 2027-Q1 → 2027-Q3
Phase 9+ Awery partnership (avia) + advanced analytics + Client Portal B2B Implementation TBD TBD 2027-Q4+

Сумарно Phase 4-8: ~28-32 weeks ≈ 7-8 months at baseline tempo. Якщо акселератори спрацюють (§ 11) — компресія до 4-5 months.

Key insights з P2 corrections:

  • Phase 4 +30%shipcore.compliance/ як cross-cutting sub-package, не окремий app. signxml skeleton + Дія КЕП mock + 3-projections canonical Waybill + audit log + 2 eTTN backends (Vchasno + M.E.Doc).
  • Phase 5.5 NEW — після Octopi expansion у Bucharest (SLS 2024) ми не можемо ігнорувати Дунайські порти як white space. Mini-phase 1-2 weeks: yard management primitives для Ізмаїл/Рені/Усть-Дунайськ.
  • Phase 7 WIN cleared — P2-R1 підтвердив що WIN — це air-cargo connectivity hub (e-AWB до 160+ airlines), не universal rate aggregator. LaneRateHistory будуємо tenant-private як планувалось. WIN переноситься у Phase 9+ як partner-кандидат для shipcore_avia (поряд з Awery).
  • Phase 8 +160% — найбільший shock з Phase 2. Original 6-10 weeks реально треба ~16 weeks: ICS2 R3 через ITSP (Descartes/AEB), NCTS через AEB broker, eCMR hybrid OLF+TransFollow, 2 eBL hubs (CargoX+WaveBL primary, не 5), Sign-twice real Дія SDK + EU QTSP partnership, eFTI 4 schema-agnostic connectors (road/rail/IWT/air).

§ 2. Phase 4 — Refactor + shipcore.compliance/ foundation

Goals

Консолідувати existing fleet/containerhub/logistic/transport код під namespace shipcore_*. Створити thin core shipcore/ з cross-cutting compliance/ sub-package (eFTI-by-design). Закрити eTTN UA mandatory deadline 2027-01-01 через 2 backends. Закласти 3-projections canonical Waybill architecture для майбутніх phase 5-8 без refactor pain.

Scope per module

  • shipcore/ (thin core, NEW): moduли з modules/README.md § thin core — TransportUnit base, Container, Wagon (lift з transport), Vessel stub, Aircraft stub, Route (lift з fleet), LocationPoint (lift з fleet), Port, Station, Airport stub, Carrier, MarketCorridor, ShipmentEvent (UNECE codes).
  • shipcore.compliance/ (NEW cross-cutting, не окремий app): структура з phase2-summary.md § 2. exporters/ (efti_road/rail/iwt/air + ecmr_olf/transfollow + ettn_vchasno/medoc/edi_network + emswe) + signing/ (kep_dia_skeleton + xades + sign_twice) + mapping/ (ettn_to_ecmr + ecmr_to_efti + canonical_waybill + 3 projections) + audit.py.
  • shipcore_auto/ (refactor з fleet/): Driver, Waybill, Order, FuelLedger, eTTN, GPS — переехали з мінімальною disruption (modules/auto.md).
  • shipcore_terminal/ (refactor з containerhub/): yard, gate, demurrage primitives. C1 scope reduction — drone CV / advanced stacking dropped, big-terminal-features dropped (тільки bridge через partner API планується у Phase 8) (modules/terminal.md).
  • shipcore_forwarder/ (refactor з logistic/): Inquiry, Quote (stub до Phase 7), Booking, BL stub, multi-leg primitives (modules/forwarder.md).
  • shipcore_pricing/ (NEW skeleton): TariffPlan, TariffLine, FuelSurchargeFormula моделі — full implementation у Phase 7.
  • shipcore_sea/, shipcore_rail/, shipcore_avia/: empty Django apps з migrations (готують ground для Phase 5/6/9+).
  • Frontend shipcore/ umbrella: frontend/erp/src/config/ShipCore.ts з накладкою на existing fleet/containerhub/logistic sidebar groups + common React components (CarrierResolver, BookingTimeline, DocumentChain).
  • BAF Sync update: entity-mapping refresh для нових app namespaces (P2-N13 — BAF per-instance, MVP-ready).

Deliverables checklist

  • [ ] backend/shipcore/ Django app — installed (always-on), models migrated
  • [ ] backend/shipcore/compliance/ sub-package — skeleton + signxml + canonical Waybill
  • [ ] backend/shipcore_auto/ — fleet renamed/moved, all tests passing
  • [ ] backend/shipcore_terminal/ — containerhub renamed/moved (з C1 scope reduction)
  • [ ] backend/shipcore_forwarder/ — logistic renamed/moved
  • [ ] backend/shipcore_pricing/ — skeleton models (без logic)
  • [ ] backend/shipcore_sea/, _rail/, _avia/ — empty Django apps + initial migrations
  • [ ] compliance/exporters/ettn_vchasno.py — production-ready backend
  • [ ] compliance/exporters/ettn_medoc.py — production-ready backend
  • [ ] compliance/exporters/ettn_edi_network.py — as-needed backend
  • [ ] compliance/signing/kep_dia_skeleton.py — mock interface (Phase 8 → real)
  • [ ] compliance/signing/xades.py — signxml integration
  • [ ] compliance/mapping/canonical_waybill.py — 3 projections (eFTI/eCMR/eTTN) з одного canonical model
  • [ ] compliance/audit.py — compliance log (who/what/when signed/sent)
  • [ ] frontend/erp/src/config/ShipCore.ts — umbrella sidebar config + section consolidation
  • [ ] frontend/erp/src/components/ShipCore/{CarrierResolver,BookingTimeline,DocumentChain}.tsx — common-shared
  • [ ] BAF Sync entity-mapping update (dry-run mode validated)
  • [ ] Pilot Wave 1 UA road carrier stakeholder meeting (конкретний клієнт TBD — outreach перед Phase 4)
  • [ ] Documentation update: docs/dop/overview.md, docs/DOCS.md, docs/manifesto.md — додати ShipCore як vertical track
  • [ ] AI bundle update: docs/ai/domains/shipcore/ створено + initial architecture.md + compliance-byDesign.md

Dependencies

Previous phases: - Phase 3 final concept closed (✅ 2026-05-12) - Cash & Bank S6-S8 закрито (docs/todo.md) - Sales Order Architecture Phase 1 закрито (docs/todo.md)

External: - Vchasno API access (commercial subscription — pilot tenant pays) - M.E.Doc EDI gateway access (existing integration в DOP — reuse) - signxml Python library — Apache-2.0, no friction - Pilot Wave 1 UA road carrier (TBD client) management buy-in для namespace refactor

Risks + mitigations

Risk Severity Mitigation
BAF Sync entity-mapping breakage у production tenants High Dry-run mode для всіх mappings, staged rollout per tenant, rollback playbook
eTTN mandate 2027-01-01 не встигаємо якщо Phase 4 ковзне >2 months High Vchasno + M.E.Doc backends — high priority within phase. Якщо інші deliverables не встигають — режемо їх, не eTTN
3-projections canonical Waybill — over-engineering для UA-only v1 Medium C-eFTI-byDesign підтверджена через user decision. Phase 8 без foundation = +50% rework. Risk acceptable
signxml + DSTU 4145 непрацездатний bridge Medium Phase 4 = skeleton/mock тільки. Real Дія SDK integration deferred до Phase 8 (P2-N6 sign-twice 2-phase rollout)
URL redirects для existing customers (/fleet/, /containerhub/) Low Frontend route aliases, не breaking change

Effort breakdown

  • Backend models + migrations (rename + thin core lift): 5 days
  • Backend shipcore.compliance/ services skeleton: 6 days
  • Backend API + ViewSets (registry updates): 3 days
  • Frontend ShipCore.ts config + sidebar consolidation: 2 days
  • Frontend common components: 3 days
  • Tests (target ≥80% line coverage у new modules): 4 days
  • Documentation + AI bundle update (docs/ai/domains/shipcore/): 2 days
  • BAF Sync mapping update + verification: 2 days
  • Pilot client coordination + namespace freeze decision: 1 day
  • Buffer для unforeseen refactor surprises: 2 days
  • TOTAL: 30 working days ≈ 5 calendar weeks at 1.5 day/week tempo

Calendar window

Phase 4 — 2026-Q3 → 2026-Q4 (5 weeks at 1-1.5 sessions/week, або 2.5 weeks at 2 sessions/week). Початок умовно червень-липень 2026. Закриття серпень-вересень 2026 у baseline scenario.

Acceptance criteria

Phase 4 done означає що: - [ ] All Django migrations passed без data loss (verified через staging restore) - [ ] ≥50 tests green (existing tests survived refactor + new compliance skeleton tests) - [ ] eTTN end-to-end через Vchasno backend (sandbox) — verified manually - [ ] eTTN end-to-end через M.E.Doc backend (sandbox) — verified manually - [ ] Waybill.to_efti_road(), Waybill.to_ecmr(), Waybill.to_ettn() повертають valid XML/JSON-LD (schema-agnostic, не XSD-validated до Phase 8) - [ ] AI bundle оновлено (docs/ai/domains/shipcore/architecture.md, compliance-byDesign.md) per skill update-ai-bundle - [ ] modules/auto.md, terminal.md, forwarder.md оновлено з reflect actual namespace + scope зміни - [ ] docs/DOCS.md має секцію ShipCore vertical - [ ] docs/dop/overview.md згадує ShipCore у vertical-track сегменті - [ ] Pilot Wave 1 UA road carrier — kick-off meeting проведено, scope узгоджено - [ ] BAF Sync mapping не зламано — verified production-like staging


§ 3. Phase 5 — shipcore_sea (Maersk Spot + DCSA VGM REST + CargoWise migration playbook)

Goals

Запустити перший real ocean vertical модуль з Maersk Spot integration (sandbox). Закрити CargoWise migration playbook як ICP-attraction deliverable (C4) — реакція на CargoWise Value Packs disruption window (grudzień 2025). DCSA VGM REST замість VERMAS EDIFACT (C5/P2-R2). eBL stub (full eBL hubs — Phase 8).

Scope per module

  • shipcore_sea/ (NEW full): Vessel, VesselSchedule, Voyage, OceanBooking, BillOfLading (BL + HouseBL), BookingConfirmation, ContainerAssignment, DemurrageEvent (modules/sea.md).
  • shipcore.integrations.maersk/: OAuth2 client, Spot Booking API, Container Tracking API (sandbox-only — P2-N7).
  • shipcore_terminal.GateTransaction: VGM submission через DCSA VGM REST 1.0 (Nov 2025 version per P2-R2). REST API, не EDIFACT.
  • shipcore.compliance/exporters/emswe.py: sea → EMSWe / DCSA eBL TransportDocument (НЕ через eFTI per C-eFTI-byDesign). Stub у Phase 5 — повна реалізація у Phase 8.
  • shipcore_forwarder/migration_from_cargowise/: importer для CargoWise XML/CSV exports (Bookings, Quotes, Clients). Mapping documentation. Migration assistant UI (Step Wizard).
  • Vizion aggregator stub: shipcore.integrations.vizion/ connector skeleton (full integration якщо потреба у Phase 5.5-6 для non-Maersk carriers tracking fallback).
  • Container Booking lifecycle: Inquiry → Quote → Booking → Confirmation → Loading → Sailing → Discharge → Release → POD (state machine через ShipmentEvent з UNECE codes).
  • Frontend: BookingForm, BookingList, VesselSchedule (timeline component), BLPrintPreview, CargoWiseMigrationWizard.

Deliverables checklist

  • [ ] shipcore_sea/models.py — full схема (Vessel, Voyage, OceanBooking, BillOfLading, etc.)
  • [ ] Migrations passed
  • [ ] Maersk OAuth2 client implemented + token refresh
  • [ ] Maersk Spot Booking API — create/read/update flow (sandbox)
  • [ ] Maersk Container Tracking API — event polling + ShipmentEvent persist
  • [ ] DCSA VGM REST 1.0 client — shipcore_terminal.GateTransaction.send_vgm()
  • [ ] B/L PDF print template — DCSA-compatible structure (PrintFramework, docs/planning/reports-and-print-strategy.md)
  • [ ] eBL stub: manual PDF generation, no hub submission (Phase 8)
  • [ ] migration_from_cargowise/importer.py — XML/CSV parser
  • [ ] migration_from_cargowise/mapping.md — field-by-field mapping documentation
  • [ ] Migration assistant UI (Step Wizard) — frontend
  • [ ] BookingForm.tsx + BookingList.tsx + VesselSchedule.tsx (timeline) + BLPrintPreview.tsx
  • [ ] Demurrage timers integration з containerhub.DemurrageCalculation (lift до shipcore_terminal)
  • [ ] Tests: 25+ для booking lifecycle (target ≥80% coverage у new code)
  • [ ] Pilot Wave 1 UA road carrier sandbox demo — booking lifecycle end-to-end (P2-N7)
  • [ ] Documentation: modules/sea.md refresh з actual impl
  • [ ] AI bundle: docs/ai/domains/shipcore/sea.md + linkback з architecture.md

Dependencies

Previous phases: - Phase 4 done (namespace + compliance skeleton)

External: - Maersk Spot sandbox account (action item з Phase 2) - Maersk OAuth2 credentials - DCSA VGM REST 1.0 documentation access (verified publicly available) - Pilot sandbox tenant configured (pilot-sandbox.eswf.dev)

Internal: - Phase 4 ShipmentEvent з UNECE codes - Phase 4 shipcore.Carrier model - Phase 4 shipcore_forwarder.Booking skeleton

Risks + mitigations

Risk Severity Mitigation
Maersk sandbox rate limits / API instability Medium Retry-with-backoff + circuit breaker pattern + graceful degradation до Vizion fallback
Maersk production API requires customer agreement (P2-N7) Medium Pilot = sandbox-only demo. Production traffic deferred до Phase 5.5-6
DCSA VGM REST 1.0 carrier adoption неоднорідна Medium Fallback до VERMAS EDIFACT як emergency path (deferred — не budget Phase 5)
CargoWise migration playbook не приваблює клієнтів Low Marketing-driven deliverable, не technical blocker. Якщо ICP не реагує — Phase 9+ pivot
Container Booking lifecycle state machine bugs у production Medium Stress testing з 100+ synthetic bookings перед pilot demo

Effort breakdown

  • Backend models + migrations (shipcore_sea): 5 days
  • Backend Maersk client + OAuth2 + Spot/Tracking APIs: 6 days
  • Backend DCSA VGM REST integration: 2 days
  • Backend EMSWe exporter stub: 1 day
  • Backend CargoWise migration importer: 4 days
  • Backend BL PDF print template (PrintFramework): 3 days
  • Backend API + ViewSets: 3 days
  • Frontend BookingForm + BookingList + VesselSchedule: 5 days
  • Frontend CargoWiseMigrationWizard: 2 days
  • Frontend BLPrintPreview: 1 day
  • Tests (target ≥80% coverage, 25+ tests): 5 days
  • Documentation + AI bundle: 2 days
  • Pilot demo prep + iteration: 2 days
  • TOTAL: 41 working days ≈ 5-6 calendar weeks

Calendar window

Phase 5 — 2026-Q4 (5-6 weeks at baseline tempo). Початок умовно жовтень 2026 (після Phase 4). Закриття листопад-грудень 2026.

Можлива акселерація: якщо Maersk sandbox credentials отримаємо швидко + Wave 1 pilot готовий до demo paralel — пройти за 4 calendar weeks реалістично.

Acceptance criteria

Phase 5 done означає що: - [ ] Booking lifecycle end-to-end (Inquiry → POD) — verified через 5+ synthetic test scenarios - [ ] Maersk Spot sandbox — booking create + tracking read працює без manual workaround - [ ] DCSA VGM REST — VGM submission працює до Maersk sandbox endpoint - [ ] CargoWise CSV importer — 1 real export з pilot або partner верно імпортовано - [ ] BL PDF generation — verified pixel-perfect з DCSA template reference - [ ] eBL stub PDF — generated, не submitted (Phase 8 deliverable) - [ ] 25+ tests green (≥80% coverage у new code) - [ ] Pilot Wave 1 UA road carrier demo проведено — feedback документований - [ ] AI bundle оновлено (docs/ai/domains/shipcore/sea.md + cargowise-migration ADR if applicable) - [ ] modules/sea.md reflects implemented scope


§ 4. Phase 5.5 — Дунайські TOS adaptation (NEW)

Goals

Reaction на Octopi Romania expansion (SLS Bucharest 2024 — Surprise 2 з Phase 1). Заповнити white space для Дунайських + сухих портів UA де нема SaaS — наша ніша (C1 + P2-N16). Mini-phase, 1-2 calendar weeks, паралельно з кінцівкою Phase 5 або стартом Phase 6.

Scope per module

  • shipcore_terminal/ Дунайські profile: yard management primitives для Ізмаїл / Рені / Усть-Дунайськ — менш sophisticated ніж Constanța / Гданськ, але достатньо для барж + sea-river vessels.
  • MarketCorridor.Danube settings: customs_specifics JSON з UA-RO border crossings (Reni → Galați, Ust-Dunaisk → Tulcea), Дунайська комісія regulations.
  • GateTransaction Дунайський flow: barge ↔ vessel ↔ truck transfer без advanced container stacking (баржі — bulk + breakbulk).
  • CrossDockEvent — Дунайська specifics (deferred з Phase 5 у Phase 5.5 за P2-N16).
  • Чорноморський Corridor playbook як internal master data: CustomsBroker entities, InsuranceProvider (Unity facility до $50M), ePhytoCertificate placeholders. НЕ external integration — internal playbook + reference data.
  • Frontend: lightweight Yard view (Danube profile) — без drone CV / advanced stacking.

Deliverables checklist

  • [ ] shipcore_terminal/profiles/danube.py — profile config
  • [ ] Yard primitives для barge ↔ vessel transfer (без advanced container stacking)
  • [ ] CrossDockEvent model + flow
  • [ ] MarketCorridor seed: Danube Corridor entity з populated customs_specifics
  • [ ] CustomsBroker / InsuranceProvider / ePhytoCertificate master data placeholders (reference-grade, не full implementation)
  • [ ] Frontend Danube Yard view (lightweight)
  • [ ] Tests: 8+ для Дунайські flows
  • [ ] Documentation: modules/terminal.md refresh
  • [ ] Якщо успішно — pitch презентація для Ізмаїл / Рені port management

Dependencies

Previous phases: - Phase 5 in progress (terminal namespace stable)

External: - Інтерв'ю з 1-2 stakeholders з Дунайських портів (бажано через зв'язки Wave 1 pilot, якщо існують) - Знання Дунайської комісії regulations (Phase 1 research material vs domain expert consult)

Risks + mitigations

Risk Severity Mitigation
Дунайські порти не зацікавлені у SaaS (low IT-готовність) High Free tier для перших 2-3 portів. Pitch як «cooperate w UA forwarders» а не «replace your manual workflow»
Octopi expansion не на Дунай а тільки на Constanța Medium Verify через Octopi public materials Q3 2026. Якщо confirmed — Phase 5.5 reduce scope до Ізмаїл/Рені тільки
Scope creep — yard management для big terminals потрапить у Phase 5.5 Medium C1 strict — big terminals = bridge through partner API only

Effort breakdown

  • Backend Danube profile + yard primitives: 3 days
  • Backend CrossDockEvent model: 2 days
  • Backend MarketCorridor seed + customs_specifics: 1 day
  • Master data placeholders (CustomsBroker etc.): 1 day
  • Frontend Danube Yard view: 2 days
  • Tests (8+): 1 day
  • Documentation: 1 day
  • TOTAL: 11 working days ≈ 1-2 calendar weeks (intentionally compact)

Calendar window

Phase 5.5 — 2026-Q4 (паралельно з end of Phase 5 або start of Phase 6).

Acceptance criteria

  • [ ] Danube Yard view відображає barge/vessel/truck transfer state для тестового tenant
  • [ ] CrossDockEvent можна створити через UI або API
  • [ ] MarketCorridor.Danube seed готовий для будь-якого tenant
  • [ ] 8+ tests green
  • [ ] modules/terminal.md має Danube profile section
  • [ ] Якщо outreach пройшов — pitch deck для Ізмаїл/Рені готовий

§ 5. Phase 6 — shipcore_rail (УЗ Cargo через ГІОЦ + Customs UA bonus)

Goals

Стати першою SaaS для приватних UA-операторів УЗ-вагонів. УЗ Cargo direct API через ГІОЦ (B2B-договір + NDA) — P2-N11 виявив що direct path viable, не fallback aggregator. Customs UA API (Держмитслужба) — Phase 6 bonus з P2-N14.

Scope per module

  • shipcore_rail/ (NEW full): WagonOwnership, WagonAvailability, RailTariff (УЗ-tariff structure), TrainManifest, RailwayWaybill (СМГС + CIM forms) (modules/rail.md).
  • shipcore.integrations.uz_cargo_gioc/: direct connector через ГІОЦ (АС Клієнт УЗ + е.Портал УЗ-Карго) — B2B-договір + NDA, 2-6 тижнів onboarding per tenant (P2-N11).
  • shipcore.compliance/integrations/customs_ua.py: Держмитслужба API (P2-N14) — митні декларації, easy win.
  • Railway Waybill розширення: existing containerhub.RailwayWaybill lifted до shipcore_rail.RailwayWaybill з СМГС + CIM dual forms.
  • AsMAP — road, не rail (виправлення Phase 1 assumption). Rail = ГІОЦ.
  • Frontend: WagonAvailabilityBoard, RailTariffCalculator, TrainManifestForm, CustomsDeclarationDrawer.

Deliverables checklist

  • [ ] shipcore_rail/ models — WagonOwnership, WagonAvailability, RailTariff, TrainManifest
  • [ ] Migrations passed
  • [ ] RailwayWaybill lifted з containerhub → shipcore_rail з СМГС + CIM forms
  • [ ] ГІОЦ B2B-договір + NDA для pilot tenant signed (legal phase)
  • [ ] shipcore.integrations.uz_cargo_gioc/ connector — wagon tracking + tariff queries
  • [ ] shipcore.compliance/integrations/customs_ua.py — митна декларація API client
  • [ ] Customs declaration document flow в shipcore_forwarder.Booking
  • [ ] WagonAvailabilityBoard (frontend)
  • [ ] RailTariffCalculator (frontend)
  • [ ] TrainManifestForm + RailwayWaybill print template (СМГС + CIM)
  • [ ] Tests: 15+ для rail workflow
  • [ ] Documentation: modules/rail.md refresh
  • [ ] AI bundle: docs/ai/domains/shipcore/rail.md

Dependencies

Previous phases: - Phase 4 done (compliance/integrations/ folder ready) - Phase 5 in progress or done (Booking lifecycle stable)

External: - ГІОЦ B2B-договір signed (2-6 weeks per tenant — start onboarding parallel з Phase 5) - ГІОЦ NDA signed - Держмитслужба API access (publicly available, low friction) - 1+ pilot client з UA rail operations (TBD — потенційно існуючий Wave 1 carrier, якщо має rail leg)

Risks + mitigations

Risk Severity Mitigation
ГІОЦ onboarding 6 тижнів затримає Phase 6 High Start ГІОЦ contract negotiation у Phase 4 calendar window (paralel). Не блокуємо Phase 6 commits на ГІОЦ access — robustний mock backend
ГІОЦ API stability / breaking changes (post-ЕТРАН успадкована) Medium Wrap у adapter pattern + version pinning. Fallback на manual paste / file import
Customs UA API undocumented edge cases Low M.E.Doc bridge as fallback (already integrated in DOP)
Pilot не має rail operations Medium Outreach до інших UA rail operators (Wave 2/3 candidate)

Effort breakdown

  • Backend models + migrations (shipcore_rail): 4 days
  • Backend ГІОЦ connector + mock backend: 5 days
  • Backend Customs UA API integration: 2 days
  • Backend Railway Waybill (СМГС + CIM) print templates: 3 days
  • Backend API + ViewSets: 2 days
  • Frontend WagonAvailabilityBoard: 3 days
  • Frontend RailTariffCalculator: 2 days
  • Frontend TrainManifestForm + CustomsDeclarationDrawer: 3 days
  • Tests (15+): 3 days
  • Documentation + AI bundle: 2 days
  • ГІОЦ legal coordination (separate track): (paralel, not counted)
  • TOTAL: 29 working days ≈ 3-4 calendar weeks

Calendar window

Phase 6 — 2026-Q4 → 2027-Q1 (3-4 weeks at baseline tempo). Може стартувати паралельно з Phase 5 якщо ГІОЦ legal track у роботі заздалегідь.

Acceptance criteria

  • [ ] УЗ Cargo wagon tracking — verified через 3+ real wagon IDs
  • [ ] Customs UA declaration submission — sandbox tested
  • [ ] Railway Waybill PDF (СМГС + CIM) — pixel-perfect з referense templates
  • [ ] WagonAvailabilityBoard — відображає wagon state з ГІОЦ data (live або mock)
  • [ ] 15+ tests green
  • [ ] ГІОЦ B2B-договір signed для pilot tenant
  • [ ] AI bundle: docs/ai/domains/shipcore/rail.md + gioc-onboarding-playbook.md (для майбутніх tenants)
  • [ ] modules/rail.md reflects implemented scope

§ 6. Phase 7 — Quote builder + LaneRateHistory build

Goals

UA-internal "DAT" — самостійний lane rate aggregator на історії клієнта. WIN platform cleared як non-fit (P2-R1: WIN — air-cargo connectivity hub, не universal rate aggregator). Будуємо tenant-private LaneRateHistory як планувалось у Phase 0 D8. Quote builder з трьома цифрами (floor/median/margin band) — реалізація з docs/planning/truck-freight-pricing-western.md формул.

Scope per module

  • shipcore_pricing/ (full implementation): LaneRateHistory, Quote, QuoteLine, FuelSurchargeFormula, AccessorialTariff (detention/lumper/tolls), SeasonalAdjustment (modules/forwarder.md Pricing section).
  • CPM/CPK calculator per Vehicle (fixed + variable + driver pay) — implement truck-freight-pricing-western.md formulas. Service у shipcore_pricing.services.cpm_calculator.
  • Lane median/min/max — розрахунок з історії executed bookings. Tenant-private (один tenant не бачить інших).
  • Quote builder UI з трьома цифрами:
  • Floor (мінімальна ціна — break-even з CPM/CPK)
  • Median (історична lane-median з історії tenant)
  • Margin band (suggested price з desired margin %)
  • FSC окремим полем (DOE-style формула, адаптована для UA palwa price index).
  • Frontend: QuoteBuilder, LaneRateView dashboard, FSCConfigurator, CPMCalculatorDrawer.

Deliverables checklist

  • [ ] shipcore_pricing/models.py — full схема (LaneRateHistory, Quote, QuoteLine, FuelSurchargeFormula, AccessorialTariff, SeasonalAdjustment)
  • [ ] Migrations passed
  • [ ] CPM/CPK calculator service — verified проти truck-freight-pricing-western.md formulas
  • [ ] LaneRateHistory aggregation service — median/min/max query
  • [ ] FSC formula engine — DOE-style з UA palwa adaptation
  • [ ] Quote document model з 3 числами + FSC окремим полем
  • [ ] Backend API + ViewSets
  • [ ] QuoteBuilder UI (інтегрований з ShipCore-Forwarder Booking)
  • [ ] LaneRateView dashboard (з фільтрами по corridor/equipment type/season)
  • [ ] FSCConfigurator UI
  • [ ] CPMCalculatorDrawer (на Vehicle / FixedAsset side)
  • [ ] Tests: 20+ для pricing calculations
  • [ ] Documentation: modules/forwarder.md Pricing section refresh
  • [ ] AI bundle: docs/ai/domains/shipcore/pricing.md

Dependencies

Previous phases: - Phase 5 done (Sea booking lifecycle — real lane data sources) - Phase 6 done (Rail booking lifecycle — real lane data sources) - Phase 4 shipcore.Contract.default_tariff_plan FK existing

Internal cross-cutting: - Fleet ↔ Essentials data bridge (docs/todo.md) для FixedAsset costs у CPM - Real lane data from Phase 5 + Phase 6 bookings (тривалість 2-3 місяці після Phase 5/6 launch для накопичення)

Risks + mitigations

Risk Severity Mitigation
Тонкі lane data — недостатньо для median розрахунку High Cold-start strategy: до 10+ bookings на lane — show «not enough data». До тих пір CPM-based floor лише
CPM формули не reflect UA-specific costs (toll, fuel arbitrage) Medium Iterate з Wave 1 pilot UA carrier після Phase 5 → перевірити assumptions
FSC palwa index source unreliable Medium Multiple sources: ОККО, WOG, USAID Ukraine fuel report — average baseline
Customers просять competitor data (не tenant-private) Medium Out of scope для v1. Phase 9+ Awery partnership може unlock cross-tenant aggregation (з permission)

Effort breakdown

  • Backend models + migrations: 3 days
  • Backend CPM/CPK calculator service: 3 days
  • Backend LaneRateHistory aggregation: 2 days
  • Backend FSC formula engine: 2 days
  • Backend API + ViewSets: 2 days
  • Frontend QuoteBuilder: 3 days
  • Frontend LaneRateView dashboard: 2 days
  • Frontend FSCConfigurator + CPMCalculatorDrawer: 2 days
  • Tests (20+): 3 days
  • Documentation + AI bundle: 1 day
  • TOTAL: 23 working days ≈ 2-3 calendar weeks

Calendar window

Phase 7 — 2027-Q1 (2-3 weeks at baseline tempo). Може почати щойно Phase 5 + Phase 6 закриті. Real lane data можливо накопичиться лише через 2-3 місяці експлуатації — Quote builder UI готовий, але LaneRateView dashboard буде sparse спочатку.

Acceptance criteria

  • [ ] CPM/CPK calculator — verified проти manual Excel calculation для 5+ Vehicle profiles
  • [ ] LaneRateHistory aggregation — median розрахунок з 10+ synthetic bookings
  • [ ] FSC formula — verified для 1 month UA palwa data
  • [ ] Quote document створено з 3 числами (floor/median/margin) + FSC окремим
  • [ ] QuoteBuilder UI — end-to-end з Booking integration
  • [ ] LaneRateView dashboard — фільтри працюють
  • [ ] 20+ tests green
  • [ ] AI bundle оновлено
  • [ ] modules/forwarder.md Pricing section reflects impl

§ 7. Phase 8 — v1.5 EU expansion (full compliance + 2 EU carriers)

Goals

Реалістичний EU offering для DE/PL/RO mid-market forwarders з UA-маршрутами. Закрити eFTI mandatory deadline 2027-07-09 для public authorities acceptance. ICS2 R3 connector through ITSP (не direct). eCMR hybrid (OLF self-host + TransFollow connector). NCTS через AEB broker. eBL 2 hubs (CargoX + WaveBL primary). Sign-twice real Дія SDK + EU QTSP partnership. Sanctions screening upgrade (EU XML feed → Sanctions.io). +2 EU carriers (Hapag-Lloyd, CMA CGM).

Це найбільша фаза за scope і effort — P2-R3 revision з 6-10 weeks до 16 weeks.

Scope per module

  • shipcore.compliance/integrations/ics2_itsp.py: ITSP connector (Descartes / AEB) для ICS2 R3 pre-arrival declarations (P2-N2).
  • shipcore.compliance/integrations/ncts_broker.py: AEB EU broker bridge для NCTS-P5 (P2-N5).
  • shipcore.compliance/exporters/efti_road/rail/iwt/air.py: real schema-agnostic export з canonical Waybill. eFTI4EU release 0.5 base schema, pluggable architecture (P2-N1).
  • shipcore.compliance/exporters/ecmr_olf.py: OLF self-host backend (Apache-2.0, live June 2025) — UA-internal eCMR generation.
  • shipcore.compliance/exporters/ecmr_transfollow.py: TransFollow connector — для cross-border партнерів які вже на TransFollow (P2-N3 hybrid).
  • shipcore.compliance/integrations/ebl_cargox.py: CargoX hub primary.
  • shipcore.compliance/integrations/ebl_wavebl.py: WaveBL hub primary. (Enigio/TradeGo/IQAX-GSBN — deferred до Phase 9+ per P2-N4.)
  • shipcore.compliance/signing/kep_dia_real.py: real Дія SDK integration (replaces skeleton з Phase 4).
  • shipcore.compliance/signing/sign_twice.py: production-ready cross-border UA→EU (КЕП + XAdES). EU QTSP partnership signed.
  • shipcore.compliance/sanctions/sanctions_io.py: v2 upgrade з Sanctions.io (OFAC SDN + EU + UK HMT + DPL coverage). Free EU XML feed залишається baseline.
  • shipcore_sea/ carriers expansion: Hapag-Lloyd Quick Quotes integration + CMA CGM two-tier (free API key → OAuth2 upgrade per P2-N8).
  • MSC deferred (P2-N9): MSC eBL/Booking 2.0 scheduled не live — переноситься у Phase 8.5+ після MSC DCSA готовий (~Q3 2026 за original schedule, перевірити recheck).
  • shipcore.compliance/integrations/tir_carnet_iru.py: IRU TIR-EPD electronic submission.
  • Multi-language UI: додати de / pl / ro як addон до existing en / ua.
  • AEO compliance fields на Client.
  • Frontend: ComplianceCheckDrawer, ECMRPreview, T1DeclarationForm, EFTIDataSetViewer, eBLHubPicker, SanctionsScreeningResult.

Deliverables checklist

Compliance core: - [ ] compliance/integrations/ics2_itsp.py — ITSP partner connector (Descartes або AEB) - [ ] compliance/integrations/ncts_broker.py — AEB EU broker - [ ] compliance/exporters/efti_road.py — full schema-agnostic - [ ] compliance/exporters/efti_rail.py — full schema-agnostic - [ ] compliance/exporters/efti_iwt.py — full schema-agnostic - [ ] compliance/exporters/efti_air.py — full schema-agnostic (uses Awery PHP ONE Record OSS якщо available — P2-N10) - [ ] compliance/exporters/ecmr_olf.py — OLF self-host backend - [ ] compliance/exporters/ecmr_transfollow.py — TransFollow connector - [ ] compliance/exporters/emswe.py — full sea EMSWe (was stub у Phase 5) - [ ] compliance/integrations/ebl_cargox.py — CargoX hub - [ ] compliance/integrations/ebl_wavebl.py — WaveBL hub - [ ] compliance/integrations/tir_carnet_iru.py — IRU TIR-EPD - [ ] compliance/signing/kep_dia_real.py — real Дія SDK - [ ] compliance/signing/sign_twice.py — production cross-border - [ ] compliance/sanctions/sanctions_io.py — v2 upgrade - [ ] EU QTSP partnership signed (XAdES production recognition)

Carriers expansion: - [ ] Hapag-Lloyd Quick Quotes integration - [ ] CMA CGM free API key → OAuth2 upgrade pathway

UI + UX: - [ ] ComplianceCheckDrawer (на Client + Booking) - [ ] ECMRPreview (PDF preview з sign status) - [ ] T1DeclarationForm - [ ] EFTIDataSetViewer (debug + validation UI) - [ ] eBLHubPicker (CargoX vs WaveBL selection per booking) - [ ] SanctionsScreeningResult (на Client + Invoice issue flow) - [ ] Multi-language UI: de + pl + ro (i18n keys) - [ ] AEO compliance fields на Client form

Testing + Documentation: - [ ] Tests: 30+ для compliance flows - [ ] modules/forwarder.md, sea.md, auto.md — refresh з EU expansion impl - [ ] AI bundle: docs/ai/domains/shipcore/compliance/ повний — eFTI, eCMR, ICS2, NCTS, eBL, signing, sanctions - [ ] docs/dop/overview.md — ShipCore v1.5 EU GA announcement section

Dependencies

Previous phases: - Phase 7 done (LaneRateHistory + Quote builder для EU pricing) - Phase 4 compliance foundation (skeleton, canonical Waybill, signxml)

External (CRITICAL — багато moving parts): - ITSP partner contract signed (Descartes або AEB) — start outreach Phase 6 - AEB EU broker contract signed (для NCTS-P5) - TransFollow API access (для hybrid eCMR) - OLF eCMR live deployment validated (Apache-2.0, should be available June 2025+) - CargoX hub account + credentials - WaveBL hub account + credentials - Sanctions.io commercial subscription - EU QTSP partnership signed (XAdES production trust list recognition) - Real Дія SDK access (через офіційний registration) - Hapag-Lloyd Quick Quotes API access - CMA CGM free API key (30-day trial → production OAuth2) - IRU TIR-EPD certified party status (якщо direct; інакше through broker)

Internal: - Phase 4 canonical Waybill — 3 projections validated за час Phase 5-7 expansion - Pilot Wave 2 — ZAMMLER або інший EU forwarder onboard ready

Risks + mitigations

Risk Severity Mitigation
ITSP / NCTS broker contract delays (3-6 months) Critical Outreach з Phase 6 calendar (parallel). Backup: temporary direct connect для 1 EU member state як stop-gap
OLF eCMR not production-ready при Phase 8 entry High TransFollow connector як primary fallback. OLF — long-term self-host
EU QTSP partnership не signed до 2027-07-09 deadline Critical Mitigation impossible — eFTI public authority acceptance потребує trusted XAdES. Якщо QTSP затримується — narrow scope до eFTI generation без sign (public authorities приймають unsigned у baseline)
MSC переноситься з Phase 8 у 8.5 (P2-N9) Medium Acceptable — два carriers (Hapag-Lloyd + CMA CGM) достатньо для v1.5
Real Дія SDK API change Medium Wrap у adapter pattern (already в Phase 4 skeleton design)
16 weeks плюс slip → запізнюємось на eFTI deadline 2027-07-09 High Buffer 4 weeks вбудовано в estimate. Якщо Phase 4 ковзне >2 months → Phase 8 starts на місяць пізніше → переносимо v1 GA, не v1.5
Sanctions.io pricing tier mismatch Low EU XML feed free залишається baseline. Sanctions.io upgrade tied до paid tier customers

Effort breakdown

Compliance core (~10 weeks): - ICS2 ITSP integration: 5 days - NCTS broker integration: 4 days - eFTI 4 connectors (road/rail/iwt/air): 8 days - eCMR hybrid (OLF + TransFollow): 6 days - EMSWe full sea export: 4 days - eBL 2 hubs (CargoX + WaveBL): 8 days - TIR-EPD integration: 3 days - Real Дія SDK + sign-twice production: 5 days - EU QTSP partnership integration: 3 days - Sanctions.io v2 upgrade: 2 days

Carriers (~1.5 weeks): - Hapag-Lloyd Quick Quotes: 3 days - CMA CGM two-tier: 3 days

Frontend (~3 weeks): - ComplianceCheckDrawer + ECMRPreview + T1DeclarationForm: 5 days - EFTIDataSetViewer + eBLHubPicker + SanctionsScreeningResult: 4 days - Multi-language i18n (de/pl/ro): 3 days - AEO fields on Client + UI polish: 2 days

Tests + Docs (~1.5 weeks): - Tests (30+): 5 days - Documentation + AI bundle: 3 days

  • Buffer / unforeseen integration surprises: 5 days
  • TOTAL: 81 working days ≈ 16 calendar weeks (P2-R3 revised)

Calendar window

Phase 8 — 2027-Q1 → 2027-Q3 (16 weeks at baseline tempo). Початок Q1 2027 (після Phase 7). Закриття Q2-Q3 2027. Deadline eFTI public authorities 2027-07-09 — буфер ~1 квартал якщо все по плану.

Якщо акселератор (другий розробник) — Phase 8 можна стиснути до 10-12 weeks за рахунок розпаралелення compliance connectors.

Acceptance criteria

Phase 8 done означає що: - [ ] eFTI Data Set valid (schema-agnostic, eFTI4EU 0.5) — verified для road/rail/iwt/air projections - [ ] eCMR generation working через OLF backend (1+ real shipment) - [ ] eCMR working через TransFollow backend (1+ partner test) - [ ] ICS2 pre-arrival declaration submitted через ITSP — verified - [ ] NCTS-P5 declaration submitted через AEB broker — verified - [ ] eBL issued через CargoX hub — verified end-to-end - [ ] eBL issued через WaveBL hub — verified end-to-end - [ ] Sign-twice (КЕП + XAdES) — verified для UA→EU cross-border shipment - [ ] EU QTSP recognition — XAdES signature accepted by EU public authority test endpoint - [ ] Hapag-Lloyd booking — sandbox-tested - [ ] CMA CGM tracking — free API key working - [ ] Sanctions screening — Client + Invoice flow returns hits/non-hits з Sanctions.io - [ ] Multi-language: de/pl/ro UI повністю переведено - [ ] 30+ tests green - [ ] Pilot ZAMMLER (Wave 2) — onboard demo проведено - [ ] AI bundle: docs/ai/domains/shipcore/compliance/ complete - [ ] docs/dop/overview.md — ShipCore v1.5 EU GA section published


§ 8. Phase 9+ — Awery partnership + advanced

Goals

Long-horizon — Awery partnership для shipcore_avia (avoid рік розробки on greenfield air cargo module). Advanced analytics (margin per lane, carrier scorecard, empty-mile %). Client Portal B2B розширення. Mobile dispatcher app. AI-агент розширений на quote-from-email.

Candidates (detail TBD з Awery response):

  • ShipCore-Avia з Awery partnership — outreach з Phase 4-5 calendar window. P2-N10 — Awery готує OSS PHP ONE Record reference server (5× IATA hackathon winner). Phase 9+ scope: «Awery API integration + white-label opportunity», не «build AWB module». Outreach conversation з Awery (Phase 4-5 calendar window).
  • WIN platform partnership (alternative до Awery) — якщо Awery не зацікавлені, WIN connector для air-cargo connectivity hub (e-AWB до 160+ airlines).
  • Advanced analytics: Margin per lane / Carrier scorecard / Empty-mile %. Реалізація поверх Phase 7 LaneRateHistory + Phase 5/6 booking data.
  • Client Portal B2B: shipper self-service quote + booking (на базі existing frontend/shop/ Next.js client portal — P2-N16 не стосується, окрема story).
  • Mobile dispatcher app: extension з existing driver app (RN + WatermelonDB у mobile/).
  • AI-агент «quote з email клієнта» — extension з existing eswf_chat.ai-invoice-agent (recently added — див recent commits).
  • eBL hubs phase 2: Enigio + TradeGo + IQAX-GSBN (P2-N4 deferred з Phase 8).
  • MSC — після MSC DCSA готовий (~2026-Q3+ за original schedule, recheck).
  • ShipCore for SMB shipper (B2C cabinet — інтеграція з Client Portal).

Effort breakdown (orientative)

  • Awery partnership conversation + technical due diligence: 2-3 weeks
  • Advanced analytics dashboards: 3-4 weeks
  • Client Portal B2B extension: 4-6 weeks
  • Mobile dispatcher app: 6-8 weeks
  • AI quote-from-email: 2-3 weeks

TOTAL: 17-24 weeks — split into mini-phases 9.1, 9.2, etc.

Calendar window

Phase 9+ — 2027-Q4 і пізніше. Залежить від v1.5 GA reception і ринкового pull.


§ 9. Dependencies map (розширений з Phase 2 corrections)

Phase 0 (skeleton) ────► Phase 1 (research) ────► Phase 2 (integrations) ────► Phase 3 (final concept) ✅ all closed 2026-05-12
                              Cash & Bank S6-S8 ───────────────────────────────────────┤
                              Sales Order Architecture Phase 1 ────────────────────────┤
                              eTTN mandate 2027-01-01 ─────► hard dependency on P4 ────┤
                                                                            Phase 4 (refactor + compliance/ foundation, ~5 weeks)
                                                              ┌────────────────────────┼────────────────────────┐
                                                              ▼                        ▼                        ▼
                              Maersk sandbox ─────────► Phase 5 (Sea, 5-6 weeks)   Phase 5.5 (Danube TOS,     Phase 6 (Rail, 3-4 weeks)
                              Pilot Wave 1 carrier ────► CargoWise migration         1-2 weeks, paralel)        │
                              DCSA VGM REST 1.0 ──────► VGM submission                                          ▲
                                                              │                                                 │
                              Octopi Romania reaction ─► triggers 5.5 mini-phase                       ГІОЦ B2B-договір
                                                              │                                       (start outreach Phase 4)
                                                              ▼                                       Customs UA API
                              Real lane data (3+ months ops) ─► Phase 7 (Quote+RateView, 2-3 weeks)
                              ITSP partner contract ──┐       │
                              NCTS broker contract ───┤       │
                              EU QTSP partnership ────┤       │
                              CargoX + WaveBL hubs ───┤       │
                              OLF eCMR live ──────────┤       │
                              TransFollow API ────────┤       │
                              Real Дія SDK ───────────┤       │
                              Sanctions.io subscription┤      │
                              Hapag-Lloyd API ────────┤       ▼
                              CMA CGM API ────────────┴──► Phase 8 (EU expansion v1.5, 16 weeks revised) — DEADLINE 2027-07-09 eFTI
                              Pilot ZAMMLER ──────────────► onboard у Phase 8                          (буфер ~1 квартал)
                              Awery outreach (Phase 4-5)─► Phase 9+ (Awery partnership / advanced, TBD)

КРИТИЧНІ КАЛЕНДАРНІ DEADLINES (verified):
─────────────────────────────────────────────────────────────
❌ 2026-06-01 — ICS2 R3 mandatory (PL/RO/SK/HR/LV)             → НЕ встигаємо. v1 = UA-only підтверджено
⚠️  2026-12-30 — EUDR mandatory                                 → не блокує. Data fields у v1.5 якщо є попит
✅ 2027-01-01 — eTTN UA mandatory                              → Phase 4 deliverable (Vchasno + M.E.Doc backends)
✅ 2027-07-09 — eFTI mandatory public authorities acceptance   → Phase 8 deliverable (буфер ~1 квартал)
📅 2030       — DCSA eBL 100% adoption (9 carriers)            → CargoX + WaveBL у Phase 8 baseline OK
─────────────────────────────────────────────────────────────

§ 10. Resource constraints + acceleration triggers

Baseline

  • Solo dev + AI-asst. Calendar tracks 1-2 коротких сесії на тиждень.
  • Календарне очікування Phase 4-8 — ~7-8 місяців at this pace (28-32 working weeks).
  • Pilot Wave 1 — UA mid-market road carrier архетип (короткий decision cycle, низька IT-зрілість, Auto+Pricing perfect fit) — onboard parallel з Phase 4-5. Конкретний клієнт TBD.
  • Pilot Wave 2 — ZAMMLER forwarder (висока ARPU justifies onboarding для Sea+eBL) — onboard Phase 8.

Pilot client constraints

  • UA road carrier — Wave 1. Перший pilot — внутрішній або close-circle, для максимального контролю + швидких ітерацій. Sandbox-only Maersk demo (P2-N7). Конкретна компанія ще не визначена.
  • ZAMMLER — Wave 2. Wave 2 кандидати з EU exposure — onboard Phase 8 коли eCMR/T1/eFTI works.
  • Skip TIS / ЛЕМТРАНС як direct (занадто корпоративні, EU enterprise stack).
  • Phase 4 pilot — узгодити з менеджментом обраного pilot перед refactor commits (C8).

Acceleration triggers

Trigger Impact на календар Implication
Інший розробник приєднується Compress 1.5-2× Phase 5 + Phase 6 паралельно. Phase 8 compliance connectors розпаралелити (eCMR + ICS2 + NCTS — independent tracks)
Awery response до partnership outreach Phase 9+ unlocks Convert avia від stub до integration deliverable. Phase 9+ becomes concrete не TBD
Maersk customer agreement Phase 5 production traffic З sandbox-only demo до real production booking у Phase 5 кінці або Phase 5.5-6
ITSP / NCTS broker fast onboarding (<8 weeks) Phase 8 starts earlier Якщо contracts підписали у Phase 6 calendar — Phase 8 може стартувати в Q4 2026
OLF eCMR live + production-ready Phase 8 -2 weeks Eliminates fallback complexity. OLF self-host alone достатньо для UA-internal
EU QTSP partner pre-signed Phase 8 -3 weeks Sign-twice integration tested під real partnership terms
Pilot client provides early production data Phase 7 starts earlier LaneRateHistory accumulates з Phase 5 booking data, ready для Phase 7 build
Awery OSS PHP ONE Record server live Phase 9+ avia -4 weeks Reuse Awery foundation замість build from scratch
CargoX або WaveBL fast onboard Phase 8 -1 week Single hub primary замість 2

Deceleration risks

Risk Impact
Phase 4 ковзне >2 months (BAF Sync surprises, compliance skeleton complexity) Phase 5 starts late → Phase 8 ризик упустити 2027-07-09 deadline
ГІОЦ B2B-договір 8+ weeks Phase 6 blocks, переносимо у Q1 2027
Pilot Wave 1 drops out / не вдалось знайти Wave 2 ZAMMLER потребує більший effort для cold start
EU QTSP partnership не signed до Phase 8 mid eFTI public authority acceptance ризик. Mitigation: narrow scope до eFTI без sign (acceptable baseline)

§ 11. Mandatory calendar deadlines (verified standards-matrix.md)

Дата Що ShipCore позиція Risk
2026-06-01 ICS2 R3 mandatory pre-arrival declarations для PL/RO/SK/HR/LV/LT Не встигаємо. v1 = UA-only підтверджено user 2026-05-12. EU cross-border транзити в v1.5 (Phase 8) Acceptable — пілоти не роблять UA→EU транзити через ShipCore у v1
2026-12-30 EUDR mandatory (deforestation regulation) ⚠️ Не пряма ShipCore feature. У v1.5 додаємо EUDR data fields на Booking якщо є попит Low — не блокує Phase 8
2027-01-01 eTTN UA mandatory (всі road carriers) Phase 4 deliverable. Vchasno + M.E.Doc backends. Phase 4 готова не пізніше Q3 2026 Medium — критичний deliverable у Phase 4
2027-07-09 eFTI mandatory для public authorities (acceptance, не submission) Phase 8 deliverable. v1.5 EU expansion. Phase 8 планується закрити Q2-Q3 2027 — буфер ~1 квартал High — якщо Phase 4 ковзне на 2+ months, ризик missed
2030 DCSA eBL 100% adoption commitment (9 carriers) ✅ Phase 8 CargoX + WaveBL hubs покривають baseline. Решта hubs (Enigio/TradeGo/IQAX) — Phase 9+ Low — довгий горизонт

Verified чесна позиція

  • ICS2 2026-06-01 — пропускаємо свідомо через v1 = UA-only. Це не баг, це продуктове рішення з C7.
  • eTTN 2027-01-01 — must hit. Якщо Phase 4 ризикує не встигнути — режемо інші deliverables (shipcore_pricing skeleton, frontend components), зберігаємо eTTN backends + skeleton compliance.
  • eFTI 2027-07-09 — design-time deadline. Підтекст: public authority acceptance, не operator submission obligation. Якщо EU QTSP partnership затримується — narrow scope до eFTI generation без sign (поки acceptable у baseline спецификації).
  • DCSA eBL 2030 — комфортний горизонт. Phase 8 hubs primary, Phase 9+ closes the rest.

§ 12. Phase update protocol

Кожна закрита implementation-фаза → обов'язкове оновлення: 1. Цього файлу (status + actual dates + scope deviations + lessons learned) 2. Відповідного modules/{name}.md (implemented section з actual schema) 3. docs/done.md (як з horizontal-фазами зараз) 4. docs/ai/domains/shipcore/ через skill update-ai-bundle: - architecture.md — якщо архітектурні зміни - compliance-byDesign.md — якщо compliance/ змінення - Per-domain (sea/rail/pricing/...) — окремий файл per module 5. ADR через skill update-ai-bundle § ADR section — якщо рішення нетривіальне 6. docs/DOCS.md + docs/dop/overview.md — якщо feature-level зміни (user-visible) 7. README.md цього проекту (shipcore/README.md) — status secrtion update

Phase 4 specific (з огляду на critical deadlines):

  • Прі closing Phase 4 — додати «ICS2 deadline check» section до README з confirmation чи на target track для eTTN 2027-01-01.
  • Якщо Phase 4 ковзає >2 weeks за оригинал baseline — escalation note до user з re-planning recommendation.

§ 13. Linkbacks

Source-of-truth документи

  • README — програмний overview ShipCore vertical
  • decisions-2026-05-12 — Phase 0 + Phase 1 corrections (D1-D12 + C1-C8 + C-eFTI-byDesign)
  • phase2-summary — Phase 2 corrections (P2-R1..R3 + P2-N1..N16) — особливо § 2 effort estimates revised

Research deliverables

Concept + Modules

Cross-cutting plans

External references


Phase 3 detailed roadmap closed 2026-05-12. Phase 4 entry awaiting user trigger.