How scoring works

Methodology

Every number is computed from official Devpost platform data. Deterministic formulas, shown work.

Fair-share per entrant — the core metric

fair_share = prize_pool_usd / current_registrant_count

The naive equal split. Not a prediction of winnings — a proxy for how much prize money chases each competitor. A $100K event with 300 entrants ($333/share) is a very different animal from $100K with 20,000 ($5/share).

Opportunity score (0-100)

opportunity_score =
    value_score   x 0.40   (log-scaled prize pool, $1M ceiling)
  + odds_score    x 0.35   (fair-share tiers: ≥$50=100 ... <$0.50=10)
  + urgency       x 12     (≤7 days = full marks, >60 days = partial)
  + access        x 13     (online = full, IRL = discounted)

The decision engine (v0.2)

We compute two different numbers, because they answer different questions:

Opportunity score — how attractive is this with plenty of time? Deadline plays almost no role.

Action state — given today's date and everything else you could build, what should you do right now?

States: ENTER NOW / SPRINT / PREP / WATCH / SKIP

Finish-feasibility prior (planning-fallacy adjusted):
  <1d 10% · 1-2d 25% · 2-3d 45% · 3-5d 65% · 5-7d 80%
  7-10d 90% · 10-14d 97% · 14d+ 100%

Latest safe start = deadline - P80 build time (40h @ 4h/day) - 2d buffer

Payout model

p(any payout) = sigmoid( logit( paying_slots / serious_field ) )

paying slots: 3-12 assumed until prize ladders are verified on official pages
serious field: P50 of the distribution below

Heuristic cash EV = normalized prize x p(any payout). Prize-ladder data upgrades this to a ranked EV sum later.

🔥 Mega-opportunity detector

A flag requires stated facts crossing thresholds — never a vibe:

  • Fair-share ≥ $20/entrant (strong flag, +35)
  • Prize ≥ $100K AND below-median competition (+30)
  • Closing within 14 days with odds-score ≥ 55 (+15)
  • Total score must reach 30 to display

What we don't do

  • We don't rank by sponsorship or affiliate relationships
  • We don't predict winners — we normalize competition
  • We don't hide declining events; ended events show as closed
  • Data comes from the official Devpost API only — no scraping, no guesses