ForHosting KIT · Developer Utilities

Boat ETA from Speed Calculator

This boat ETA calculator turns three practical navigation values into a clear estimated arrival time: the nautical distance still to travel, the vessel's current speed over ground in knots, and the departure time.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

It applies the direct nautical relationship between knots and nautical miles, then reports the UTC arrival timestamp and the journey duration. Use it for passage planning, arrival updates, marina coordination, or quick scenario comparisons whenever a steady-speed estimate is appropriate.

Enter distance, speed over ground, and departure time

Start with the distance that remains along the route, expressed in nautical miles. Use route distance rather than a straight line between two coordinates when hazards, channels, traffic separation schemes, or planned waypoints make the sailed track longer. Next, enter speed over ground in knots. Speed over ground is the useful value here because it already reflects the vessel's progress relative to the earth; speed through the water can produce a misleading ETA when current is present. Finally, provide the departure time as an ISO-8601 timestamp with either Z for UTC or an explicit offset such as +02:00. Requiring an offset removes the ambiguity created by local clock times and daylight-saving changes. The calculator normalizes that timestamp to UTC before adding the computed duration. A distance of zero is valid and returns the normalized departure instant as the arrival time, while speed must always be greater than zero because no finite ETA can be calculated without forward progress.

Understand the calculation and its precision

The calculation uses the definition of a knot: one nautical mile per hour. Travel time in hours is therefore the remaining nautical miles divided by speed over ground in knots. For example, a vessel with 42.5 nautical miles remaining at 8.5 knots has a travel time of exactly five hours. The tool converts the result to seconds and rounds to the nearest whole second before adding it to the departure timestamp, because the returned arrival time is displayed at one-second precision. It also returns decimal travel hours, total travel seconds, and separate hour, minute, and second components so the same answer is convenient for logs, interfaces, and downstream automation. All calendar arithmetic is deterministic and independent of the current clock. The calculator does not silently assume a time zone, consult live vessel data, or change speed during the trip. Identical inputs always produce an identical result, which makes the endpoint suitable for repeatable planning calculations and automated checks.

Treat the result as a steady-speed planning estimate

A computed ETA is only as reliable as the inputs and assumptions behind it. This calculator holds speed over ground constant for the entire remaining distance. Real passages rarely do that perfectly: wind, sea state, tidal streams, river current, traffic, visibility, sail changes, speed restrictions, locks, bridges, fuel stops, and maneuvering near the destination can all change the arrival time. Recalculate whenever the distance-to-go or observed speed changes materially, and add an operational buffer when coordinating a berth, pilot, launch, pickup, or crew handover. For a useful rolling estimate, take distance-to-go and speed over ground from the same navigation source at the same moment. Very low speeds can create extremely long theoretical durations, so confirm that the vessel is actually making meaningful progress toward the destination rather than drifting sideways or waiting. This result supports planning and communication; it does not replace a passage plan, official navigation information, watchkeeping judgment, or the skipper's assessment of conditions.

Update a marina arrival

Convert the latest distance-to-go and speed over ground into a UTC ETA for berth coordination.

Compare passage speeds

Run several realistic speed scenarios to see how slower weather routing or an economical cruise setting changes arrival.

Automate fleet status

Generate a deterministic ETA from navigation-system values for a dashboard, voyage log, or operations message.

What does the calculation cost?

The API price is $0.002 per request. The browser calculator can run locally on this page.

What formula does the calculator use?

Travel time in hours equals distance in nautical miles divided by speed over ground in knots. That duration is added to the departure time.

Should I use speed through the water or speed over ground?

Use speed over ground. ETA concerns progress relative to the destination and therefore needs a speed that reflects current and other effects on ground track.

Does it account for tides, weather, or stops?

No. It is a constant-speed estimate. Recalculate as conditions change and add appropriate time for restrictions, maneuvers, stops, and uncertainty.

Which departure time formats are accepted?

Use an ISO-8601 date and time with Z or an explicit numeric UTC offset, for example 2026-07-25T14:30:00Z or 2026-07-25T16:30:00+02:00.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/travel/boat-eta

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/travel/boat-eta \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"distance_nautical_miles":42.5,"speed_knots":8.5,"departure_time":"2026-07-25T14:30:00Z"}'
{
  "distance_nautical_miles": 42.5,
  "speed_knots": 8.5,
  "departure_time": "2026-07-25T14:30:00Z"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "travel.boat_eta",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →