Run your office football prediction league in one app
Everyone picks scores before kickoff, points land automatically when matches finish, and the season table posts straight to Slack.
I want an app my team opens every week to run our office football prediction league, so the whole thing stops living in a spreadsheet. It reads fixtures and results from API-Sports and posts the table to Slack.
In settings I pick the competition and season the league runs on, for example the Premier League for the current season, plus the timezone everyone should see kickoff times in. Settings also holds the scoring rules: 3 points for an exact score and 1 point for the correct result by default, both editable. Store these settings in the app so they persist for the whole team.
The main screen is the current round. Use the API-Sports Get Fixture Rounds operation to find the round for the chosen league and season, then List Fixtures filtered to that league, season and round to load the matches. Always pass the timezone parameter so kickoff times match what the viewer expects. Show each match as a card with both teams, the kickoff time and the match status.
Under every fixture card, the signed-in person types a predicted score for the home team and the away team and saves it. A person's picks for a match lock at that match's kickoff time, so after kickoff the inputs are read-only for that match while matches later in the round stay editable. Before kickoff a prediction is visible only to the person who made it, so nobody can copy. Once a match has kicked off, everyone's prediction for that match becomes visible.
A results view re-reads the round with List Fixtures and scores every prediction. Only score matches whose status is finished, meaning FT, AET or PEN, and skip anything postponed, cancelled or still in progress. Award the exact-score points when both numbers match, otherwise the correct-result points when the predicted winner or draw matches, otherwise zero. Show each person's picks next to the real score with the points earned.
A season leaderboard ranks everyone by total points and includes a column for each of the last three rounds, so streaks and slumps are visible at a glance. Show position, name, the three recent round scores and the season total.
A button posts the current leaderboard to Slack. Use the Slack List Channels operation to let the person choose the destination channel, then Send a Message to post the table along with the biggest movers, meaning who climbed and who fell the most positions since the previous round. Format the message with Slack markup so it reads well in the channel.
Predictions, awarded points and the scoring rules all live in the app's own storage rather than a spreadsheet. Each person can only create and edit their own predictions and cannot touch anyone else's, while everyone can read the leaderboard and the results view.
The API-Sports free plan allows 100 requests a day, so fetch a round's fixtures once and cache them rather than calling per user or per page load. Refresh the cached fixtures when someone opens the results view after matches have finished. League standings from Get Standings are optional colour on the fixture cards, so only add them if the request budget allows.
What does this prompt do?
- Shows the current round's fixtures for your chosen competition so every colleague can type a score prediction for each match.
- Locks each person's picks at that match's kickoff and keeps them hidden from teammates until then, so nobody can copy.
- Scores finished matches automatically, with 3 points for an exact score and 1 point for the right result, both changeable in settings.
- Ranks the team on a season leaderboard with the last three rounds shown side by side, and posts it to a Slack channel with one button.
What do I need to use this?
- An API-Sports account for fixtures and results. The free plan is enough for a weekly league.
- A Slack workspace, plus the channel where you want the leaderboard posted.
- The competition and season you want to play, for example the Premier League for this season.
- Your colleagues signed in to the app, so each person's picks are saved under their own name.
How can I customize it?
- Change the points. 3 for an exact score and 1 for the right result are just the starting values.
- Switch the competition or season in settings to follow a different league.
- Choose which Slack channel gets the table, and post whenever suits your team rather than on a fixed day.
FAQs
Can people see each other's predictions before a match?
What happens if someone forgets to predict before kickoff?
Does this work on the free API-Sports plan?
Which competitions can we run the league on?
Can we change the scoring rules partway through the season?
Related templates
Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.
Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.
See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.
Review Introw partner payouts line by line, approve them from one board, raise the matching bill in Xero, and post every approval to Slack.
See every access, purchase and leave request waiting on your decision in one screen, approve or decline in place, and send the reason back to the requester.
Search creators for free, shortlist the best with your team, and spend an audit credit only when you decide someone is worth a closer look.
Get your office prediction league out of the spreadsheet.
Set it up once, and every round runs itself from fixtures through to the final table.