Skip to content

/v2/cp-performance.json

GET
/v2/cp-performance.json

CP Performance Analysis Data

Returns Charter Party (CP) performance analysis data for voyages belonging to the
authenticated client. Results include warranted speed/fuel (CP terms), actual performance
metrics broken down by ECA region and weather type, damage assessment (loss/saving),
and CO2 emission estimates.

Item Value
Format JSON
Region Global
Update When Audit XML is published in SeaNavigator
Max Results 500 voyages per request

Date Range

Specify a date range using one of the following (mutually exclusive):

Method Parameters Notes
Relative last_x_months Integer 1–48; default is 6 months back from today
Absolute start_time + end_time YYYYMMDD format (UTC); takes priority over last_x_months

Ship Filtering

  • ships: IMO numbers (7 digits, comma-separated, max 20 ships per request)
  • IMO numbers are internally resolved to WNI Ship Numbers via SEA-ShipDB
  • Ships not found in ShipDB are skipped with a warning log

Response Structure Overview

voyages[]
  └─ audit_id          ← use this for POST simulation
  └─ charter_info       ← CP conditions (allowance, good weather definition)
  └─ segments[]
       └─ cp            ← warranted speed/fuel for this segment
       └─ damage_assessment  ← time_lost / fuel overconsumption
       └─ performance
            └─ total.entire       ← full voyage stats
            └─ total.good_weather ← good weather period stats
            └─ eca (in_eca / out_eca)  ← ECA-split stats
       └─ co2_emission   ← CO2 estimate (IMO MEPC.364(79))
co2_coefficients          ← emission factors used

Key Response Fields Explained

loading_condition

  • L = Laden (loaded), B = Ballast

leg_status

  • A = Arrived, D = Departed, E = En-route
  • damage_assessment values are null while status is E (voyage in progress)

eco_speed

  • E = ECO speed mode (reduced speed agreed between owner and charterer), N = Normal

charter_info.allowance

The permitted tolerance from warranted performance before damage is assessed:

  • speed.value (kts): If actual performance speed falls below cp.speed_kts − allowance.speed, time damage applies
  • fo.value / do.value (% or MT/day): Fuel tolerance before overconsumption damage applies

charter_info.good_weather_definition

Criteria used to classify a time period as "good weather":

  • wind.beaufort: Maximum Beaufort number (e.g. 4 = up to Bft 4)
  • wave.sig_wave_m: Maximum significant wave height in metres (e.g. 2.0 m)
  • wave.dss: Douglas Sea Scale threshold
  • current: "All" = include current effect, "Exclude" = exclude, "Negate" = reverse current effect

charter_info.good_weather_day

Rule for classifying a calendar day as a "good weather day":

  • type: "Ratio" + ratio: 50 + operator: "gt" = a day is GW if more than 50% of its hours are good weather hours

performance.total.entire — Full voyage period

Field Description Unit
distance_nm Total distance sailed NM
time_hrs Total elapsed time h
avg_speed_kts Average speed over ground kts
weather_factor_kts Speed impact from weather (negative = hindrance) kts
current_factor_kts Speed impact from ocean current (positive = favorable) kts
fo_mt Total FO (Heavy Fuel Oil) consumed MT
do_mt Total DO (Marine Diesel Oil) consumed MT
daily_fo_mt Average daily FO consumption MT/day
daily_do_mt Average daily DO consumption MT/day

performance.total.good_weather — Good weather period only

Same fields as above, plus:

Field Description Unit
performance_speed_kts Speed corrected for weather & current effects — this is compared against CP warranted speed kts

Performance speed = avg_speed − weather_factor − current_factor. This is the basis for damage assessment.

damage_assessment

Field Sign Meaning
time_lost_hrs positive Owner lost time (charterer claims)
time_lost_hrs negative Owner gained time (owner claims saving)
fo_over_mt positive FO overconsumption (owner's burden)
fo_over_mt negative FO underconsumption (owner's saving)
do_over_mt positive DO overconsumption

co2_emission

Calculated using IMO MEPC.364(79) coefficients:

  • co2_fo_mt = fo_mt × 3.1144 (t-CO2)
  • co2_do_mt = do_mt × 3.206 (t-CO2)

Key Changes from v1 (cp-warranty)

  • No GEN server dependency — fully serverless (Lambda + DynamoDB)
  • client / section parameters removed — auto-detected from auth token
  • metadata removed from response — response contains only voyages array
  • Hierarchical JSON response — replaces flat structure
  • Segment-level detail — performance data per voyage segment
  • CO2 emissions included — calculated with IMO MEPC.364(79) coefficients
  • callback (JSONP) removed — CORS supported natively

Parameters

Header Parameters

Authorization*

"WniWebApi " + Token ID

Typestring
Required

Query Parameters

ships*

IMO numbers (7 digits, comma-separated, 1–20 ships).
Numbers not found in ShipDB are logged as warnings.

Typestring
Required
Example9000001,9000002
last_x_months

Number of past months to query (1–48, default: 6).
Mutually exclusive with start_time/end_time.

Typeinteger
Example6
minimum1
maximum48
default6
start_time

Start date in YYYYMMDD format (UTC).
When omitted, defaults to 1 year before end_time.
start_time must be before end_time.

Typestring
Example20260101
pattern^\d{8}$
end_time

End date in YYYYMMDD format (UTC). When omitted, defaults to today.
start_time must be before end_time.

Typestring
Example20260331
pattern^\d{8}$

Responses

Successful response with CP performance data
application/json
JSON
{
"voyages": [
{
"audit_id": "sid20250101_000001",
"leg_id": "sid20260111_000506",
"imo_num": "9000001",
"ship_name": "ARAUCARIA",
"voyage_no": "40",
"loading_condition": "string",
"leg_status": "string",
"updated_at": "2026-02-09T09:06:49Z",
"charter_info": {
"allowance": {
"speed": {
"value": 0.5,
"unit": "kts"
},
"fo": {
"value": 5,
"unit": "%"
},
"do": {
"value": 5,
"unit": "%"
}
},
"good_weather_definition": {
"wind": {
"type": "Beaufort Scale",
"beaufort": 4
},
"wave": {
"type": "SgWave",
"sig_wave_m": 2,
"dss": 3
},
"current": "All",
"negate": "Negate current"
},
"good_weather_day": {
"type": "Ratio",
"ratio": 50,
"operator": "gt",
"unit": "%"
},
"extrapolation": "Extrapolate"
},
"segments": [
{
"seg_id": "1",
"atd": "2026/02/01T10:18:00",
"ata": "2026/02/03T20:48:00",
"dep_port": "AVEIRO",
"arr_port": "50.07N 1.46W",
"eco_speed": "E",
"cp": {
"speed_kts": 12,
"fo_mt_day": 15.1,
"do_mt_day": 0.1
},
"damage_assessment": {
"time_lost_hrs": 0,
"fo_over_mt": 0,
"do_over_mt": 0
},
"performance": {
"total": {
"entire": {
"distance_nm": 725,
"time_hrs": 58.5,
"avg_speed_kts": 12.39,
"weather_factor_kts": -0.3,
"current_factor_kts": 0.12,
"fo_mt": 22.9,
"do_mt": 11.33,
"daily_fo_mt": 9.39,
"daily_do_mt": 4.65
},
"good_weather": {
"distance_nm": 111,
"time_hrs": 8.8,
"avg_speed_kts": 12.61,
"performance_speed_kts": 12.61,
"weather_factor_kts": 0,
"current_factor_kts": 1.06,
"fo_mt": 0,
"do_mt": 5.16,
"daily_fo_mt": 0,
"daily_do_mt": 14.07
}
},
"eca": {
"in_eca": {
"distance_nm": 725,
"time_hrs": 58.5,
"avg_speed_kts": 12.39,
"weather_factor_kts": -0.3,
"current_factor_kts": 0.12,
"fo_mt": 22.9,
"do_mt": 11.33,
"daily_fo_mt": 9.39,
"daily_do_mt": 4.65
},
"out_eca": {
"distance_nm": 725,
"time_hrs": 58.5,
"avg_speed_kts": 12.39,
"weather_factor_kts": -0.3,
"current_factor_kts": 0.12,
"fo_mt": 22.9,
"do_mt": 11.33,
"daily_fo_mt": 9.39,
"daily_do_mt": 4.65
}
}
},
"co2_emission": {
"co2_fo_mt": 71.32,
"co2_do_mt": 36.33
}
}
]
}
],
"co2_coefficients": {
"fo": 3.1144,
"do": 3.206,
"unit": "t-CO2/t-fuel"
}
}

Playground

Headers
Variables
Key
Value

Samples

All product names, trademarks and registered trademarks are property of their respective owners.