Euro Orakel

 

Beni Buess

@benibu

Team

David Bauer: concept and data

Anja Lemcke: illustrations

Simon Wimmer: UI design

Beni Buess: oracle model and backend

Webkid.io: frontend code

Basics

 

  • 5 parameters per team
  • reader weights the parameters
  • oracle calculates every game
  • readers result is stored and gets a URL
  • dynamic lead text based on statistics

Demo

oracle model 1

// model after calculating points for every team

//   points team a (20)                  points team b (40)
// |--------------------/----------+------------------------------|
// ^ 0                  ^ threshold (20)                          ^ total team a + team b (60)


let spread = pointsTeamB - pointsTeamA
let underdogThresholdShift = spread / 2 / 5 * flags.underdogBonus

// for underdogBonus === 2 this will get us a new threshold of 24
//
//      team a                                 team b
// |------------------------/------+------------------------------|
//                          ^ threshold (24)


// shift if maxWeight - minWeight < 2
// shift more if parameters are weighted low (small totalPoints)
let maxPoints = 25
let weightThresholdShift = (spread / 2 / maxPoints) * (maxPoints - totalPoints);


// if in ko round, shift threshold against the underdog (more pressure on higher rated team)
// the shift is 2/10 of the initial spread (thus reversing an underdog bonus of 2)

oracle model 2

  1. Pick the number of goals in the game
    • by number of goals distribution from world championship '14 and euro '12
  2. random value per goal, if below threshold, a scores, if above b scores
  3. If ko round, calculate one more goal if draw
     team a                        team b
|------------------------/------+------------------------------|
                         ^ threshold (24)

result storage

  • result stored in CouchDB at Cloudant.
  • rate limiting proxy in front of CouchDB
  • statistics are calculated with CouchDB views

conclusions

  • 10'000 plays within 24 hours by users coming only from social media
  • english version helped with aggregating traffic and plays
    • sport news show from Belgium featured it on facebook
    • Gary Lineker retweeted
    • poeple shared it a lot
  • 80'000 plays by 10.6
  • Financial Times and others used our model to implement their own

Questions?

Thanks

 

NZZ Storytelling is hiring

http://jobs.nzz.ch/vacancy/100556/

Euro Orakel

By benib

Euro Orakel

  • 1,059