Skip to content

Contest Scoring ​

Your contest score is the sum of your individual challenge scores. Each challenge is scored based on how quickly you solve it, its difficulty, and any penalties you accumulate.

Per-Challenge Score ​

baseScore = ((timeLimit - timeTaken) / timeLimit) * difficultyWeight + difficultyWeight
aiPenalty = max(0, 1 - penaltyPerPrompt * aiPrompts)  // penalty scales with difficulty
submitPenalty = max(0, 1 - 0.05 * failedAttempts)      // -5% per failed submit

challengeScore = baseScore * aiPenalty * submitPenalty
  • If timeTaken <= 0 or timeTaken > timeLimit, the score is 0 (challenge not completed).
  • The baseScore ranges from difficultyWeight (used the entire time limit) to 2 * difficultyWeight (instant solve).
  • Each failed submission reduces your score by 5%.

Each AI prompt reduces your score by an amount that scales with the challenge difficulty — easy challenges are penalized more, since you're expected to solve them on your own:

DifficultyPenalty per AI prompt
Beginner10%
Intermediate5%
Expert3%

Challenges without a voted difficulty use their default difficulty to pick the penalty.

Per-User Score ​

Your total contest score is simply the sum of all your challenge scores:

userScore = sum(challengeScore for each challenge)

Rating Update (Elo) ​

After the contest ends, your rating is updated using an Elo-based system:

  1. Scores are normalized to [0, 1] across all participants.
  2. An expected score is calculated per the Elo formula:
    expectedScore = 1 / (1 + 10^((otherRating - myRating) / 400))
  3. Your new rating is:
    newRating = round(currentRating + 32 * (actualScore - expectedScore))
  4. The minimum rating is clamped to 100. The default starting rating is 1500.