Darts 501 score remaining calculator
Score 60 from 501 and 441 is left: enter the score you still need and the points from the visit to get the new total, with a clear signal when the visit busts or finishes the leg. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Remaining
- 501
- Visit
- 60
- Remaining before
- 501
- Remaining
- 441
- Subtracted
- 60
A 501 darts leg starts every player on five hundred and one points and ends only when someone reduces that total to exactly zero under the scoring rules of the match. Between those moments every visit of up to three darts changes the board state by a single integer: the sum of the darts that stick. Players, scorers, and league apps need that subtraction to be instant, consistent, and free of off-by-one mistakes when a high finish or a bust is on the table. This darts 501 score remaining calculator accepts the score still needed before the visit and the total scored on that visit, then returns the new remaining total, whether the visit busted, and whether the player just checked out.
How 501 remaining works after one visit
In a standard 501 leg each player begins needing five hundred and one points. A visit is the combined face value of up to three darts thrown in turn: singles count their number, doubles twice, trebles three times, with a maximum of one hundred and eighty from three treble twenties. After the darts are counted the scorer subtracts that visit total from the score the player still needed.
If the visit is larger than what was left, the visit is a bust under the usual overshoot rule used by this calculator: the player’s score does not change and the next opponent throws. Reaching exactly zero is a checkout and ends the leg for that player. This capability models that single-visit update only.
It does not enforce double-out or master-out finishing requirements, checkout tables, or multi-player turn order; those are match-format rules you apply around the arithmetic. What it does guarantee is a deterministic remaining total, a clear bust flag when the visit overshoots, a checkout flag when remaining hits zero, and an echoed formula you can show next to the board so everyone agrees on the subtraction that just happened.
When a 501 score counter helps
League night scorers and pub chalkers use a 501 remaining calculator so they never lose track after a busy visit of mixed singles, doubles, and trebles. Practice apps and home oche trackers log each visit against a running remaining total and need the same bust and checkout semantics as the board, not a free-form text box that drifts after a few legs. Failed validation does not consume balance.
Keep requests small, pin remaining and bust flags in tests, and you get reproducible leg math for scoreboards, LMS sports modules, and edge workers without hosting a darts rules engine of your own.
What you can do with it
Pub and league scoring
Update the remaining total after each visit on a chalkboard or tablet, with automatic bust detection when a player overshoots.
Practice and training logs
Record visit totals against a running 501 remaining so solo practice sessions mirror real leg arithmetic and checkouts.
Overlays and tournament tablets
Feed stream overlays or match tablets a deterministic remaining, bust, and checkout flag after every scored visit without a full match server.
FAQ
How do I calculate the remaining score after a 501 visit?
Send remaining (1–501) and visit (0–180). If visit is less than or equal to remaining, the new remaining is remaining minus visit; if visit is greater, the visit is a bust and remaining is unchanged.
What counts as a bust?
The calculator does not apply double-out or master-out finish rules beyond this overshoot check.
When is checkout true?
Checkout is true only when the visit reduces remaining to exactly zero. A bust never checks out. Partial finishes leave a positive remaining and checkout false.
What is the maximum visit I can enter?
One hundred and eighty, the maximum with three treble twenties.
Does the calculator check that I finish on a double?
No. It handles the subtraction for one visit only. Double-out or master-out finishes, checkout tables and the order of players are match rules you apply around the result.
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/hobby/sport-darts-501-remaining \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"remaining":501,"visit":60}'const res = await fetch("https://api.kit.forhosting.com/hobby/sport-darts-501-remaining", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"remaining": 501,
"visit": 60
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/sport-darts-501-remaining",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"remaining": 501,
"visit": 60
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/sport-darts-501-remaining", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"remaining":501,"visit":60}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"remaining":501,"visit":60}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/sport-darts-501-remaining", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"remaining": 501,
"visit": 60
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.sport_darts_501_remaining",
"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
How 501 remaining works after one visit
If the visit is less than or equal to the remaining score, the new remaining is simply remaining_before minus visit.
Input contract, response shape, and validation
Example: remaining five hundred and one with visit sixty yields remaining four hundred and forty-one, bust false, checkout false. remaining forty with visit forty-five yields remaining forty, bust true, checkout false. remaining thirty-two with visit thirty-two yields remaining zero, bust false, checkout true. POST a JSON body with two required integers. remaining is the score still needed before this visit: an integer from one to five hundred and one inclusive, where five hundred and one is a fresh leg start. visit is the total points scored on the visit: an integer from zero to one hundred and eighty inclusive, covering everything from a missed visit to the perfect one-hundred-and-eighty. Field aliases are accepted for remaining (score, score_before, current, before) and for visit (visit_score, scored, points, total). Values may arrive as JSON numbers or as whole decimal strings without leading zeros; missing fields, non-integers, out-of-range values, Infinity, and NaN fail with invalid_input naming the field and are not billed. On success the body returns remaining_before and visit as echoed inputs; remaining as the score still needed after the visit; subtracted as the points actually taken off the board (zero on a bust, equal to visit otherwise); bust as true when visit exceeded remaining_before; checkout as true only when the new remaining is exactly zero; and a short formula string restating the bust-or-subtract rule.
Where a 501 remaining API earns its keep
Tournament tablets and streaming overlays can call a tiny parse endpoint between visits without standing up a full match engine when all they need is one subtraction with validation.
Technical questions
What does the darts 501 remaining calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.