Propellant mass fraction calculator
To gain 9400 of velocity with an exhaust velocity of 3500, 0.931827518029 of the rocket's starting mass must be propellant, a mass ratio of 14.668675264333. Use any velocity unit, as long as both values share it. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Mission or stage delta-v
- 9,400
- Effective exhaust velocity ve
- 3,500
- Propellant mass fraction
- 0.931827518
- Mass ratio
- 14.6686752643
The propellant mass fraction answers that trade with a single dimensionless number: the share of initial mass that must be propellant to achieve a chosen velocity change for a given effective exhaust velocity. This capability applies the ideal rocket equation in closed form—mass ratio R equals exp of delta-v over ve, and the propellant mass fraction is one minus the reciprocal of that ratio—so students, mission analysts, and stage designers get a deterministic fraction without spreadsheets or Monte Carlo noise. Inputs share any consistent velocity unit; the result is a pure fraction of initial mass, ready for homework checks, spreadsheet pipelines, or automated trade studies against known Isp-class engines.
How the rocket equation sets the propellant share
Every rocket trades propellant against structure, cargo and the rest of the vehicle. The ideal rocket equation links the velocity change a vehicle can achieve to its exhaust velocity and to the ratio between its starting mass and its mass once the propellant is spent. That mass ratio equals the exponential of the velocity change divided by the exhaust velocity. The propellant mass fraction is then one minus one over the mass ratio: the share of the starting mass that has to be propellant. A higher velocity change at the same exhaust velocity pushes that share up quickly.
When to use it and common mistakes
Students use it to check textbook problems, and mission analysts use it for quick stage-sizing trade studies against engines of a known class. With a velocity change of 9400 and an exhaust velocity of 3500, the fraction is 0.931827518029. The most frequent mistake is mixing units, such as kilometres per second for one value and metres per second for the other. Remember too that this is the ideal case: gravity losses, drag, staging and leftover propellant are not included and belong in a full trajectory model.
What you can do with it
Homework and textbook checks
Convert a stated mission delta-v and engine exhaust velocity into propellant mass fraction for graded problems and lab notebooks.
Trajectory mass-budget pipelines
Automate ζ and mass ratio from burn delta-v products for stage sizing dashboards and continuous design reviews.
FAQ
What formula does the propellant mass fraction calculator use?
Mass ratio R = exp(Δv / ve) and propellant mass fraction ζ = 1 − 1/R, equivalently ζ = 1 − exp(−Δv / ve), for ideal rocket assumptions.
Does this include gravity losses, drag, or multi-stage effects?
No. It returns the ideal single-burn propellant mass fraction from Δv and ve only. Add losses and staging in your trajectory or vehicle model.
Can I enter speeds in kilometres per second?
Yes, as long as the change in velocity and the exhaust velocity use the same unit. Only their ratio matters, so mixing kilometres per second with metres per second gives a wrong fraction.
How does a more efficient engine change the result?
A higher exhaust velocity at the same change in velocity lowers the propellant fraction and leaves more of the budget for structure and cargo. A larger velocity change with the same engine raises it.
What is the mass ratio shown next to the fraction?
It is the starting mass divided by the mass left once the propellant is burned. The fraction is one minus one over that ratio, so textbooks that quote either form can be checked directly.
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/astro/propellant-mass-fraction \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"delta_v":9400,"exhaust_velocity":3500}'const res = await fetch("https://api.kit.forhosting.com/astro/propellant-mass-fraction", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"delta_v": 9400,
"exhaust_velocity": 3500
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/propellant-mass-fraction",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"delta_v": 9400,
"exhaust_velocity": 3500
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/propellant-mass-fraction", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"delta_v":9400,"exhaust_velocity":3500}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"delta_v":9400,"exhaust_velocity":3500}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/propellant-mass-fraction", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"delta_v": 9400,
"exhaust_velocity": 3500
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.propellant_mass_fraction",
"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
Every rocket design trades how much of the vehicle is propellant against how much is structure, payload, and residual systems.
Rocket equation and propellant mass fraction
The Tsiolkovsky rocket equation relates achievable delta-v to exhaust velocity and the ratio of initial mass to final mass after propellant is expended. Writing that mass ratio as R equals m0 over mf, you obtain R equals exp of Δv over ve when ve is the effective exhaust velocity of the propulsion system. Propellant mass is m0 minus mf, so the propellant mass fraction ζ is mp over m0, which simplifies to one minus one over R, or equivalently one minus exp of negative Δv over ve. A higher mission Δv at fixed ve forces a higher fraction of the vehicle to be propellant; a higher ve at fixed Δv reduces that fraction and leaves more budget for structure and payload. This tool returns both ζ and the intermediate mass ratio so you can cross-check against textbooks that quote either form. It does not model gravity losses, drag, multi-stage staging discontinuities, or residual propellant: those belong in a full trajectory model.
Choosing delta-v, exhaust velocity, and units
Any consistent velocity unit is fine because the ratio Δv over ve is dimensionless; do not mix kilometers per second on one field with meters per second on the other without converting first. Finite numeric values are required for both fields; empty strings, NaN, and Infinity fail fast with a clear field message. Pass delta_v as the velocity change you want the stage or single-stage vehicle to impart under ideal rocket assumptions—typical LEO-from-Earth rough budgets sit near nine to ten kilometers per second before losses, while a deep-space burn or upper stage may use a much smaller figure. Pass exhaust_velocity as the effective exhaust speed of the engine, not merely chamber velocity: many teams convert specific impulse with ve equals Isp times g0 when they work in seconds of Isp, then feed ve in meters per second alongside Δv in meters per second. Aliases such as dv, deltaV, ve, v_e, and vex are accepted so clients and notebooks need not rename columns. Exhaust velocity must be strictly positive: zero or negative ve is physically invalid for a chemical or electric thruster model and is rejected with invalid_input so the task is never charged.
Where this fits in education, design trades, and automation
Aerospace and astronautics courses use a propellant mass fraction calculator to turn homework pairs of Δv and ve into the fraction that must be propellant before students open a full vehicle spreadsheet. Preliminary design teams screen candidate engines by fixing a mission Δv and sweeping ve class—storable bipropellant, LOX/RP, LOX/LH2, or electric—to see how much mass budget remains for dry mass and payload. Because the implementation is pure analytic JavaScript with no AI and no external services, browser preview and paid API results match after stable rounding. Successful API calls bill at $0.002 per request; validation failures on missing fields or non-positive exhaust velocity do not consume balance. Pair the fraction with your own structural mass fraction and payload fraction when you close a full mass stack-up; this capability stays focused on the rocket-equation step so it stays fast, auditable, and free of hidden assumptions.
Integration use cases
Engine class trade studies
Fix Δv and compare ζ across LOX/RP, LOX/LH2, and electric ve values to see how much mass remains for dry hardware and payload.
Technical questions
What happens if exhaust velocity is zero or negative?
The request fails with invalid_input stating that exhaust_velocity must be positive. Failed validation is not charged.
Can I enter specific impulse instead of exhaust velocity?
Convert first: ve = Isp × g0 (typically g0 ≈ 9.80665 m/s²) so Δv and ve share the same velocity unit, then pass ve as exhaust_velocity.
How much does the API cost?
$0.002 per successful request. The on-page tool runs free in your browser with the same analytic core.