Database

How I Built A Double Elimination Bracket With Notion

Screen Shot 2021-02-18 at 9.32.40 AM.png

⛹️‍♂️ Double Elimination

Configure games and cascading rounds through a double elimination tournament format with Notion’s boardview. I wanted to tackle a fun project in Notion that displays “rounds” in a tournament and the funnel of winning teams into succeeding rounds. I was able to achieve this with a couple relations to a Team database and a simple formula.

What Is Double Elimination?

In a series of two-team games, it represents the progression of the winning team to advance forward until a final winner is found.

In my example, when a team loses, that team is eliminated from the tournament.

Screen Shot 2021-02-18 at 11.18.39 AM.png

How I Made The Bracket In Notion

  • There are 8 teams.

  • All the teams are split into 4 games in the 1st round.

  • 4 winners from the 1st round split into 2 games in the 2nd round.

  • 2 winners from the 2nd round play to determine a final winner.

A Database For Teams Is Made In Gallery View

Screen+Shot+2021-02-18+at+12.29.24+PM.jpg

A Database For The Bracket Is Made In Boardview

The boardview is grouped by each round. I make sure that these rounds are labeled “# round” rather than “round #” because my formula will not function with the latter.

Screen%2BShot%2B2021-02-18%2Bat%2B12.33.06%2BPM.jpg

The Bracket Properties

  • Round: Round number

  • Date: Game’s date

  • Winning Team: relation to teams database

  • Losing Team: relation to teams database

  • Winning Score: score number

  • Losing Score: score number

  • Result: formula that shows the result of the game and what round the winning team is progressing to

Screen%252BShot%252B2021-02-18%252Bat%252B12.31.24%252BPM.jpg

The Result Formula And Breakdown

if(contains(prop("Round"), "3"), prop("Win") + " is the grand winner!", if(not empty(prop("Win")), prop("Win") + " moves to Round " + format(toNumber(prop("Round")) + 1), ""))

  • First, if the Round select property contains the number 3, return the name of the winning team. After the team name print " is the grand winner!"

    • if(contains(prop("Round"), "3"), prop("Win") + " is the grand winner!"

  • Second, if there is a winning team, return the name of the team. After the team name print " moves to Round ." To find the next round number extract the number from the current round with toNumber and add 1.

    • if(not empty(prop("Win")), prop("Win") + " moves to Round " + format(toNumber(prop("Round")) + 1)

  • Otherwise, leave result empty

    • , ""))

Untitled_Artwork 40.png

If you’re an advanced Notion user you can probably take this simple example and run with it. For NBA fans, a March Madness bracket could be an especially fun project to tackle.

 

Further Reading