Longshore sediment transport rate calculator
Waves breaking 1.5 m high at 15 degrees from the shore-normal give sin(2α) = 0.5, and with the default K of 0.39 the CERC formula turns that into a longshore sediment transport rate you can audit step by step. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Breaking wave height
- 1.5
- Wave angle deg
- 15
- Wave angle rad
- 0.2617993878
- K
- 0.39
- Sin 2alpha
- 0.5
- Transport rate
- 0.5373568123
Longshore sediment transport is the net alongshore movement of beach sand and gravel driven by waves that break at an angle to the shoreline. Coastal engineers, geomorphologists, and shoreline managers estimate that rate with the CERC formula, which links breaking wave height and the wave approach angle at breaking to a bulk transport rate used in sediment budgets, inlet bypassing studies, and groin or breakwater impact screening. This longshore sediment transport rate calculator accepts breaking wave height in metres, the approach angle in degrees relative to the shore-normal, and an optional CERC coefficient K (default 0.39), then returns the signed transport rate, its absolute value, and the intermediate sin(2α) term so you can audit the result. Negative wave height is rejected as invalid input rather than silently flipped.
What the CERC formula computes and when it applies
The Coastal Engineering Research Center (CERC) formula is a bulk empirical relation for the longshore sediment transport rate driven by breaking waves. The angle α is measured from the shore-normal, so α equals zero when wave crests are parallel to the beach and there is no preferred alongshore direction; net transport then vanishes because sin(2α) is zero.
Magnitude of transport grows with wave height because energy flux scales with height squared and group velocity in shallow water scales with the square root of depth, which is itself proportional to height at breaking—together those effects produce the classic five-halves power on Hb. The factor sin(2α) peaks at forty-five degrees of obliquity and falls again toward grazing incidence, matching the trade-off between alongshore wave-energy flux and the efficiency of the nearshore radiation-stress gradient.
K is an empirical coefficient; the Shore Protection Manual default near 0.39 is commonly paired with significant breaking height, but field calibrations range widely with grain size, barred profiles, and how height is defined. Use it for order-of-magnitude budgets, homework, and quick comparisons of height-angle scenarios, then escalate to site-specific models when design decisions need tighter uncertainty bounds.
When this transport estimate is most useful
University coastal engineering courses assign CERC estimates so students can see how small changes in breaker height dominate transport compared with modest angle changes near normal incidence. Consulting notebooks use the same formula as a first-cut sediment budget term before investing in SWAN or XBeach runs. Municipal shoreline managers compare storm seasons by holding K fixed and varying Hb and α from buoy or hindcast summaries.
Failed validation does not consume balance.
What you can do with it
Classroom CERC homework checks
Let students submit breaking height and approach angle and verify Q = K·Hb^(5/2)·sin(2α) against hand calculations for coastal engineering labs.
Screening sediment budgets
Compare order-of-magnitude longshore transport rates across storm seasons or design wave conditions before running full morphodynamic models.
Notebooks and design optioneering
Script height-angle scenarios for groin, breakwater, or nourishment alternatives with a deterministic CERC oracle and no network dependency.
FAQ
What formula does the longshore sediment transport calculator use?
The CERC coefficient form Q = K · Hb^(5/2) · sin(2α), with α converted from degrees relative to the shore-normal. Default K is 0.39 when you omit the k field.
What happens if breaking wave height is negative?
Wave height must be a finite non-negative number in metres; negative values are not flipped or absolute-valued.
What angle convention should I use?
Send the wave approach angle at breaking in degrees relative to the shore-normal.
Can I change the CERC coefficient K?
Yes. K defaults to 0.39, the classic value used with significant breaking wave height, but calibrations on real beaches vary with grain size, barred profiles and how wave height is defined. Enter your own calibrated value when you have one.
At what wave angle is longshore transport greatest?
At forty-five degrees from the shore-normal, where sin(2α) reaches its peak. Transport is zero when crests arrive parallel to the beach and falls again as waves approach at a grazing angle.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/earth/longshore-transport \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"breaking_wave_height":1.5,"wave_angle_deg":15}'const res = await fetch("https://api.kit.forhosting.com/earth/longshore-transport", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"breaking_wave_height": 1.5,
"wave_angle_deg": 15
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/earth/longshore-transport",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"breaking_wave_height": 1.5,
"wave_angle_deg": 15
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/earth/longshore-transport", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"breaking_wave_height":1.5,"wave_angle_deg":15}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"breaking_wave_height":1.5,"wave_angle_deg":15}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/earth/longshore-transport", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"breaking_wave_height": 1.5,
"wave_angle_deg": 15
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "earth.longshore_transport",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What the CERC formula computes and when it applies
In the simplified coefficient form used here, Q equals K times breaking wave height to the power five-halves times the sine of twice the approach angle: Q = K · Hb^(5/2) · sin(2α). This endpoint implements that screening formula deterministically: it does not solve wave refraction, setup, or a full morphodynamic model.
Input contract, response fields, and validation rules
If breaking wave height is negative the task fails with a clear message that height cannot be negative—those failures are not billed. Zero height is allowed and yields zero transport, which is physically consistent with no waves. Example: Hb equals 1.5 m, angle equals 15 degrees, K equals 0.39 produces a positive transport rate near 0.527 because sin(30°) equals one half and 1.5 to the five-halves is about 2.7557. Pair the response with your own unit conversion if you need annual volumes under a different K calibration; this capability returns the coefficient form of Q and does not assume a specific volumetric unit system beyond the input metres and the chosen K. POST a JSON body with breaking_wave_height (metres, finite and non-negative) and wave_angle_deg (degrees from the shore-normal, any finite number). Each field accepts a JSON number or a plain numeric string; missing values, empty strings, and non-finite numbers fail with invalid_input naming the field. The success payload echoes the coerced height, angle in degrees and radians, the K actually used, sin_2alpha, transport_rate (signed, so the sign of sin(2α) indicates longshore sense relative to your angle convention), transport_rate_abs for magnitude-only tables, and a formula string restating the CERC expression.
Where a longshore transport API earns its keep
Keep requests small, pin the rounded transport_rate in tests, and you get reproducible CERC results for homework, LMS plugins, and edge workers without standing up a full coastal-process stack of your own.
Technical questions
Can I change the CERC coefficient K?
Yes. Pass k (or aliases K, cerc_k, cerc_coefficient). It must be finite and non-negative. If omitted, the handler uses the classic default 0.39.
What does the longshore sediment transport calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.