Last updated 2026-11-12 · Questions: billing@reloadingcalc.com
Scope. This is the consumer agreement for the reloadingcalc.com web
calculator and the PRO subscription; the /v1 API and /mcp surfaces are
governed by a separate developer agreement.
| What you get | IBC PRO: the moment-by-moment analysis of a load you specify — pressure and velocity curves through the whole barrel, the engraving milestones, the complete work-up ladder (7 rungs) and its per-charge sensitivity analysis. Deliberately not in that list: the engine's warning list and the printable work-up checklist, which the free tier shows and prints as well (§2). |
| Never behind the paywall | The engine's warning list, the printable work-up checklist, and the whole component library — on every tier, free included. What the free tier's ladder leaves off the page is rung count and sensitivity: you get the lowest 3 rungs of the same ladder PRO returns, printed on the sheet as a labelled preview (§2, §6). |
| Price | $17.99 per month, billed monthly. ANNUAL PRO: $59.99 per year, billed yearly — the same PRO access; you choose the plan at checkout. (Billed monthly for a year the price would be $215.88.) |
| Trial | 14 days free. Your card is collected at checkout; nothing is charged during the trial. |
| What happens on day 15 | The subscription renews automatically and your card is charged the price of the plan you chose at checkout ($17.99 monthly or $59.99 yearly) unless you cancel before the trial ends. It then renews at the same price on the same cadence until you cancel. |
| How to cancel | Any time, in the Stripe-hosted billing portal. Today the working door to that portal is the account panel on the calculator page: enter the email you subscribed with, and press Manage subscription (it needs your live session, not just the address). No phone call, no retention script, no cancellation fee. Cancelling stops all future charges. |
| Reminder | We send an email a few days before the trial converts to a paid charge, naming the charge date and the amount. |
| Refunds | Your first paid month is refundable in full for 30 days after the charge (§5.2). |
| What this tool is not | It is not a load table and not published loading data. It is a physics model you compare against published data. Reloading ammunition can injure or kill you. §6–§9 are the part of this document that matters most. |
reloadingcalc.com ("IBC", "the Service", "we") is an interior-ballistics calculator for people who reload their own ammunition. You supply a cartridge specification — caliber, bullet, powder, charge weight, barrel length, and firearm characteristics — and the Service runs a physics solver and returns modeled velocity, energy, and pressure behavior, with a load-development work-up ladder.
We currently ship three names for one product, and you will meet all of them if you use the Service long enough:
| Where | Name it prints |
|---|---|
| Browser tab / search result | "IBC — Internal Ballistics for Reloaders" |
| Page heading | "IBC — Internal Ballistics Calculator" |
| API description | "Interior Ballistics Calculator web service" |
| The trial-reminder email we will send you | "Your IBC (International Ballistics Calculator) free trial ends…" |
This document uses IBC and one full name, whichever you choose. The Service is in beta. While the beta banner is displayed on the site it states, in the site's own words:
"BETA — this calculator's accuracy is not yet sufficient to base reloading decisions on. Cross-check every load against published data and proof-test."
That banner is part of the product you are buying, and you should read it as such. To be plain, as the banner asks: PRO is a research and comparison tool — not a load table, not published loading data, and not a substitute for a chronograph (§6).
Who you are contracting with. reloadingcalc.com is owned and operated by Withywindle Farms ("we", "us"), which is the contracting party under these Terms and the controller described in the Privacy Policy. If a limited-liability company replaces it at or before launch, the name is updated in this one section: it appears here once per document by design.
Free. No account, no card, no email. You get the compact result for any
load you can name — muzzle velocity, muzzle energy, peak pressure, the pressure
ceiling on file for the cartridge and your percentage of it, and the pressure
verdict, which is one of three engine states: safe, over_saami, or
unknown when no limit could be resolved (the engine fails closed instead of
guessing, and the page puts that on the red side of the badge). Every one of the
590 cartridges in the served catalog has a ceiling on file today, so unknown
is an edge state, not something you should expect to see. You also get the
engine's warning list, displayed on the results page — every warning the
solver emits, on the free tier, with nothing filtered.
And you get a work-up ladder: the lowest three rungs of the same ladder the
paid tier returns. The
calculator page builds a 7-rung ladder — the server's default rung count — so a free sheet carries 3 of those 7 rows,
plus the ladder's floor and ceiling bookend charges. Those rows are printable — the same range checklist PRO prints, with
the same measured-velocity and pressure-sign blanks — and the paper is labelled
PREVIEW: first 3 rungs — the complete ladder and sensitivity analysis are in
PRO. The preview is a prefix, not a resample: rung
i carries the charge and the result the paid ladder computes at position i, so
nothing on a sheet you already printed shifts under you when you upgrade. The
component library is not behind the paywall: 590 cartridges, 5,671 bullets
and 228 propellants are served to anyone (GET /api/meta), and a free
calculation on any of them works. The free tier has no trial, no renewal, and no
charge.
PRO ($17.99/month, or $59.99/year on ANNUAL PRO). Unlocks:
traces key at all;What PRO does not buy, and we would rather say it than have you find it: the engine's warning list, the printable work-up checklist, and access to the component library. Those are on every tier (§6, §10).
What that boundary is actually made of, because we would rather tell you than let you find it. The curves, the extra rungs and the sensitivity block are withheld by our server: without a valid session the full-analysis endpoint answers 403, the ladder answers with 3 rungs instead of the full 7 the paid tier gets, and the sensitivity block is never computed. The engraving milestones are not withheld that way — the free compact response already carries the three-point record, and it is the free page that does not draw them.. Two consequences we are not going to paper over: (a) a customer who opens the browser's network tools can see the engraving record the page hides, so nobody should be sold that panel as exclusive data — it is a paid display, not a paid payload; and (b) the warning list used to be a display gate as well, and on a safety product that was the wrong default.
There is no password. The email address you type is the only identifier we hold, and it is what the billing record, the entitlement record, and the billing notices are keyed to. Consequences you should know:
Status meanings, as the Service enforces them (they are the same four words
you can see at GET /api/billing/status):
| Status | What it means | Do you keep PRO access? |
|---|---|---|
trialing |
inside the 14-day free trial | yes |
active |
paying subscription in the current period | yes |
past_due |
a renewal payment failed; billing is being retried | yes, for now — see §5.3 |
canceled |
the subscription has ended — the period you paid for is over, or we ended it after unpaid invoices | no |
The cutoff is the moment the status becomes canceled, not the moment you
press a button: cancelling in the portal schedules the end, and you keep what
you paid for until then. That is our promise, not just a description of a setting. If the portal is ever switched to immediate cancellation, this paragraph and the cancellation notices change with it — stated here rather than discovered in a dispute.
One mechanical detail, because it is a fact about your session and not a legal flourish: the signed session cookie described in §3 is valid for one hour and our server authenticates it by signature, not by re-reading your live status on every click. So after a cancellation takes effect, a browser that already holds a minted cookie can still see paid results for up to that remaining hour, and no longer.
No charge is created. Nothing to refund. Your PRO access runs to the end of the 14-day trial and then stops — cancelling does not cut the trial short.
If you are charged for your first paid month and ask us within 30 days of that charge for a refund, we refund it in full, no questions and no form. Refunds after the first paid month are considered case by case: we refund where the Service failed you (a billing error, a duplicate charge, a defect on our side, or a renewal you were not able to reach the cancellation page for). We do not refund partial months after the first, and we do not prorate — but cancelling always stops the next charge, and we will never bill you for a period you canceled before. Duplicate charges and charges made in error are always refunded on request.
If a renewal payment fails, your status becomes past_due, your access
continues for now, and we email you a card-update link. If payment still
cannot be collected, the subscription may be canceled at the end of the
billing period. A canceled subscription is not reinstated with back pay:
resubscribing restores access immediately and bills you normally.
Card charges and the invoices for them are handled by Stripe, our payment provider; we never see or store your card number, expiry date or CVC. Whether Stripe's automatic receipt emails are switched on for this product is not confirmed, so treat the charge entry on your card statement as the record of what you paid, and ask us and we will confirm the amount and date from our subscription record.
You can always use your card issuer's dispute process; that is your right and nothing here limits it. A dispute filed instead of writing to us usually produces the same outcome slower, plus a chargeback fee, plus a reason to close the account.
IBC is a comparison tool. It is not a load table.
The safety framing above is printed on the Service itself, not only here: every result page — free and paid alike — shows the pressure verdict, the percentage-of-SAAMI band and the engine's warning list, and the printable work-up checklist carries the footer "Start low and work up. Record measured velocities at each rung. Stop at the first pressure sign (flattened primer, stiff bolt, ejector mark, case head growth).". Those disclosures are part of the Service, not decoration; if you strip or suppress them in anything you build from our output, you are in breach (§10).
A preview sheet is not a complete work-up record. A free session prints the
first 3 rungs of a ladder that continues past them, so the highest charge on
your paper is not the top of the safe envelope for your firearm — it is only
the last rung the preview happens to print, and the ladder continues upward
from there to the bookend ceiling shown beside the table. The sheet says so
in its own header line (PREVIEW: first 3 rungs — the complete ladder and
sensitivity analysis are in PRO), and the on-page
nudge names the cut (web/app.js:979-991): with 3 of n rows printed, "next
test" can only ever point at a charge at or below what the full ladder
would recommend, never above it. Read the printed rung list as the start of a
work-up, never as its limit.
We publish our error, both where it flatters us and where it does not. Two different validation lanes are quoted on this site and they measure different things, so read the label on each figure.
Against 216 published handload load rows, comparing simulated muzzle
velocity at the maximum charge to the published velocity
(https://reloadingcalc.com/accuracy.json, regenerated on each deploy):
Decomposed, same 216 loads, no exclusions and no reweighting
(/methodology.html): sealed actions (rifles, single-shots, semi-auto
pistols; 198 loads) MAE 3.70%, 93.4% within ±10%; revolver rows with the
cylinder gap modeled (11 loads) MAE 5.53%, 72.7% within ±10%; revolver rows
that arrive with no gun-type data so the gap stays unmodeled (6 loads) MAE
9.52%, 50.0% within ±10%; one subsonic load with a filler (1 row) 17.91%.
The population lane grades the engine against every published corpus row we simulate, run exactly as printed by the deployed serving binary. The measured figures for this lane live in two published artifacts, and this clause points at them rather than pinning them (§9: the artifact, not this clause, is the source of truth — when a new battery runs, the artifacts move and this clause does not):
/freeze-record.json — the frozen launch record: every lane graded in one
combined pass of the deployed binary, rows outside ±60% excluded as
corpus-suspect and counted, provenance hashes published. Frozen
2026-11-11; the methodology page leads with its headline./accuracy-paper.html — the standing accuracy paper: the per-lane
breakdowns, the full population-lane distribution, and the floor quoted
below.Two things hold no matter how those artifacts move, and we will not soften them in our own documentation or here:
Velocity is what this engine is good at. There is no pressure-accuracy validation corpus, and we say so in two places, in two voices, so nobody can claim they only saw the polite version.
What the methodology page tells a human (/methodology.html, "Safety
verdicts"): predicted peak pressure is compared against the cartridge's SAAMI
(or CIP) proof limit and served as a percentage of that ceiling, and the app's
reduced-charge flags check their margins against the same ceilings — safety
verdicts about position relative to a ceiling, not accuracy against
instrumented traces. Books publish no start-charge pressures, so published
start-charge figures are velocity-only. That page describes pressure the same
way every time it mentions it; this clause points rather than quotes verbatim,
so when the page's wording is tightened the contract does not go stale with
it.
What every machine response carries as a standing field :
"Pressure fields (p_max_bar, p_max_psi, pressure_percent_saami, saami_max_bar) are modeled compliance-vs-SAAMI-ceiling indicators, not measured proof pressures and not accuracy-validated numbers: the validation corpus is velocity-only. Treat them as position relative to the ceiling, with real-world spread unknown."
Note which of the two a subscriber actually sees: the website does not render the second paragraph anywhere. It is a true statement about the Service, and today it is published on the methodology page in plainer words rather than as a field.
The measured comparison against printed pressure figures lives in the same two
artifacts as §7.2, shown after the calibrated scale correction the calculator
applies to displayed pressure percentages (/population-accuracy.json — the
CUP and PSI summaries, with the correction's derivation disclosed in its
provenance block — and /accuracy-paper.html — the per-standard breakdowns).
Those figures move when the battery runs; this clause pins none of them (§9:
the artifact, not this clause, is the source of truth). Our published claim
for pressure is the one in the same artifact's claims block, and we will not
soften it in our own documentation or here: use simulated pressure for
ceiling context, never as a load limit.
Separately, the ceiling standard itself is contested for some published Hodgdon-family data (the CUP-vs-PSI convention question the site calls W16). Until it resolves, pressure percentages carry an unresolved-convention notice, and the Service flags affected rows rather than pretending the number is clean.
Practical meaning: a green pressure verdict on this site is not proof that a load is safe, and a red one is not proof that it is unsafe. A percentage of SAAMI ceiling is context. The chronograph, the primer, and the case head are the evidence.
/population-accuracy.json, /freeze-record.json), and the
calibration subset is regenerated on its own schedule. Read the stamps where
they live; treat every lane figure as measured, labelled, and dated, not as
a current-engine certificate. This document shows both lanes side by side,
labelled, on purpose: leading a paid document with the flattering lane alone
would misstate the model.Using the Service means agreeing to the following, because they are the only way this kind of tool is used responsibly:
We are not a proof house, a laboratory, a manufacturer, or a gunsmith, and we do not provide professional advice, testing, or certification. Nothing from the Service establishes that any load is safe in any firearm. You use the Service at your own risk, and the relationship is publisher-of-a-tool / user, not advisor / client.
The accuracy figures above are restated from the published artifacts, which also
carry their provenance (generated_unix, source_sha, engine_version,
engine_sha, harness_sha, and a reproducibility note). The artifact, not
this clause, is the source of truth — if a model change moves the numbers, we
update the artifacts and the methodology page follows, and this document points
at them rather than freezing them.
Three limitations on those figures, stated here so nobody has to find them in a footnote:
You may not:
We may suspend or terminate access without refund for abuse of this section — kept pointed at abuse only, never at an ordinary cancellation (§5).
The Service is experimental and flag-gated. Endpoints, tiers, quotas,
component libraries, calibration data, and the model itself change; accuracy
figures are regenerated as the engine changes, so the numbers in §7 will not
match forever, and the current ones live at /methodology.html,
/accuracy.json, /population-accuracy.json, and /corpus-accuracy.json.
No uptime or availability is promised — no SLA, no credits. The free tier's
boundary and the PRO feature list can change; if we take away something you are paying for, tell us and the refund stance in §5.2 applies.
A boundary that is a binding term, not a revisable description: the engine's warning list, the printable work-up checklist and the component library are not, and will not be, paid features. We would rather this sentence be something you can hold us to than a description of today's build that this section lets us revise.
We may update these Terms. When we do, we will change the "Last updated" date and, for material changes, also notify the email address we hold for you and/or put a notice on the site. Continued use after a change takes effect is acceptance of it. No change here can retroactively rewrite a refund or a dispute that already happened under the earlier text.
Last updated: 2026-11-12.
Questions about these Terms, your subscription, or a refund: email billing@reloadingcalc.com. Contact is email only — no postal address is published, and notices under these Terms are delivered electronically to the email address on your subscription.
THE SERVICE AND ALL OUTPUT ARE PROVIDED "AS IS" AND "AS AVAILABLE", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND — LOAD THIS PLAINLY — NO WARRANTY THAT ANY OUTPUT IS ACCURATE, SAFE TO LOAD, OR SAFE TO FIRE. WE DO NOT WARRANT THAT THE SERVICE IS ERROR-FREE OR UNINTERRUPTED.
TO THE MAXIMUM EXTENT PERMITTED BY LAW, WE ARE NOT LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, OR FOR LOSS OF PROFITS, DATA, OR PROPERTY, ARISING FROM YOUR USE OF THE SERVICE OR YOUR RELIANCE ON ITS OUTPUT, EVEN IF WE HAVE BEEN TOLD THEY MIGHT HAPPEN. WHERE THE LAW ALLOWS A CAP, OUR TOTAL AGGREGATE LIABILITY FOR ALL CLAIMS ARISING FROM THE SERVICE IS LIMITED TO THE FEES YOU PAID US IN THE TWELVE MONTHS BEFORE THE CLAIM.
Nothing in this document excludes or limits liability that applicable law says cannot be excluded or limited, including for anyone's death or personal injury caused by our negligence. You agree to use the Service only on the terms of §6–§10; that is the deal, and the safety framing is not a legal hedge — it is what the tool actually is.
docs/privacy-policy.md (published as /privacy), which is incorporated.