How scoring works
Your score is an amount of time in seconds, and lower is better. The leaderboard header spells it out: Score = seconds used + cost penalty + 300 s per wrong submission. Lower wins. In full:
score = round(seconds used + dollars spent × seconds per dollar + 300 × wrong submissions)
Three things go in, all measured by the server.
Seconds used
The time from pressing Start to your accepted submission arriving at the server, rounded to whole seconds. It stops the moment you submit — waiting for the judge or sitting on the results screen uses none of it.
Dollars spent
The judge's bill for your build: what circuit.py would cost to buy in the shop. The Raspberry Pi board is provided free of charge, and kits are charged at their kit price rather than the sum of their parts. The cost shown in the workspace after each Run is the same calculation; the judge's bill is the one that counts. The shop runs from a $0.25 resistor to a $25 camera, and each objective caps the total with its budget — see parts and the shop.
Seconds per dollar
Each objective has a rate that converts money into score. Current objectives all use 60 seconds per dollar, shown in the Task tab as "$1 = 60 s". Spending one extra dollar adds one minute to your score, so a build that is a little slower but much cheaper can win.
Worked example 1: two clean runs
Maya finishes in 38 min 20 s with a build costing $7.20, no wrong submissions. That is 2300 seconds:
2300 + 7.20 × 60 + 300 × 0 = 2300 + 432 = 2732
Noor is slower — 41 min, or 2460 seconds — but her build costs $2.80:
2460 + 2.80 × 60 + 300 × 0 = 2460 + 168 = 2628
Noor scores 2628 against Maya's 2732: she wins even though she finished 160 seconds later. Her build is $4.40 cheaper, worth 264 score-seconds at the 60 s/dollar rate — more than the 160 seconds she gave up.
Worked example 2: two wrong submissions
Theo finishes in 36 min (2160 seconds) with a $6.00 build, but two earlier submissions were rejected. Each rejection adds 300 seconds:
2160 + 6.00 × 60 + 300 × 2 = 2160 + 360 + 600 = 3120
The two mistakes cost Theo 600 score-seconds — ten minutes. Without them he would have scored 2520 and beaten Maya; with them he scores 3120.
Par
Every problem has a par: the parts cost of our own reference build, plus a target time of 15 minutes for easy problems, 30 for medium and 45 for hard. Together they make a par score, worked out the same way as yours with no wrong submissions. Par shows on the challenge, in the workspace's Task tab, and as a ⛳ row on the leaderboard (it never takes a rank).
When you're accepted, you see how far under or over par you finished, as time: "2:08 under par" means your score is 128 lower than par's. Practice problems show the par cost too: after the tests pass, the Results tab compares your build's cost with it.
Sharing your result
Once a day's submission is accepted, Share result (on Today and in the workspace) gives you a picture of your result and a short text to paste: the day number, the problem, your time, parts cost and wrong submissions, and how you did against par. The link opens a public page with the same card, and that card is the link's preview on social sites and in chats. It never includes your code.
Ties
If two makers have the same score, the one who finished earlier ranks ahead. See leaderboards and ties.
Going deeper
- The score is rounded to the nearest second at the end; the seconds used are counted as
round((accepted submission time − start time) / 1000). - Cost is held in cents and divided by 100 before the rate is applied, so there is no rounding until the final score.
- Penalties only pile up before you are accepted. Once a submission is accepted the attempt is over and no later submission is possible, so no later penalty can count.
- A judge error — "The judge could not finish" — is not one of the three wrong verdicts and adds nothing to your score.