CTF dynamic scoring calculator: see how points decay as teams solve
Set an initial value, a minimum and a decay, then see what a challenge is worth after any number of solves. Compare the parabolic, logarithmic and linear formulas on one chart before you publish your scoreboard rules.
Calculate dynamic CTF points
Enter your scoring parameters. The result, chart and table update as you type.
| Solves | Points | % of initial |
|---|
Static vs dynamic scoring
In a Jeopardy-style CTF, every challenge has a point value. With static scoring that value never changes: a 300-point challenge is worth 300 whether one team or two hundred teams solve it. It is simple and predictable, but the organizers must guess difficulty in advance, and a challenge that turns out easier than expected hands out cheap points.
With dynamic scoring the value starts at an initial number and falls toward a minimum as more teams solve it. Teams that solve early keep more points than teams that solve late, and the scoreboard adjusts for difficulty without anyone editing values by hand. Many platforms recalculate every earlier solve too, so all solvers of a challenge end up with the same final value.
The three formulas
- Parabolic:
value = initial + ((min - initial) / decay^2) * solves^2, clamped to the range min to initial. Points fall slowly at first and faster as solves approach the decay, then stay at the minimum. This is the formula in CTFd's dynamic challenges plugin, where it is named "logarithmic" despite the parabolic shape and is the default decay function; CTFd also subtracts one from the solve count so the first solver gets the full value (checked against CTFd'sdecay.pyin October 2026). - Logarithmic:
value = max(min, floor(initial - (initial - min) * log2(1 + solves) / log2(1 + decay))). The first few solves cost the most points, then the curve flattens, so the early teams feel a sharp drop and late solves matter little. - Linear:
value = max(min, initial - (initial - min) * solves / decay). Every solve removes the same number of points until the minimum is reached.
Platforms differ in rounding and in whether the first solve counts as solve zero or solve one, so check how your platform defines it. This calculator treats "solves so far" as the number of teams that have already solved the challenge.
How to pick initial, minimum and decay
Initial value sets the ceiling for a brand-new challenge. Use the same initial value, for example 500, for every decaying challenge and let the solve count sort out difficulty. If you also set a lower ceiling for challenges you think are easy, you are guessing difficulty in advance, which is the problem dynamic scoring exists to remove. Static challenges such as a sanity-check flag can sit outside the curve. Minimum value is the floor: keep it above zero so that a solved challenge always counts for something, often 20 to 30 percent of the initial value. Decay is the number of solves at which a challenge reaches its minimum, and it should be tied to the number of teams you expect.
A practical rule of thumb: set decay to roughly 10 to 25 percent of the expected number of teams. With 200 teams, a decay of 30 to 50 means the challenge hits its floor after a fifth of the field has solved it. A decay larger than the team count means most challenges never reach the minimum; a very small decay makes points collapse after a handful of solves and punishes everyone who is only slightly slower. Use the expected teams field above to check where your decay sits.
First-blood bonuses
Some organizers add a small fixed bonus for the first team (or first few teams) to solve a challenge, on top of the dynamic value. It rewards speed without changing the decay curve, and it is a separate concept from the formulas above. If you use one, keep it small relative to the initial value so it does not decide the scoreboard.
Related CTF7 pages
Planning a full event? Try the CTF cost calculator, browse the other free tools, or look up terms in the glossary. To see Jeopardy scoring from the player side, try our practice event, Ouroboros CTF.
When to use this, and when to check your platform's source
Use this page to compare curves and pick numbers before you configure an event. It cannot tell you exactly what your scoreboard will show, because platforms round differently and count solves from zero or one. If an exact value matters, for example in a dispute about final standings, read the scoring code of the platform you run (CTFd's is in its dynamic_challenges plugin) or run a test challenge with a few dummy accounts. For the reasoning behind decay values, see our guide to how CTF scoring works.
Hosting your own CTF
Once you have chosen a scoring model, you need a platform that applies it and a scoreboard your teams trust. See how to host your event on CTF7 or check pricing.