Opens in a new tab

How to Create a Progress Bar in Notion

Notion - Progress bar

Table of contents

Visual progress bars offer a quick snapshot of a process’s status, improve aesthetics, and provide a subtle source of motivation. They’re not really a native Notion feature, but we can achieve them by combining special characters with a few Notion functions—and the result looks great.

https://vimeo.com/441429597
Click the PLAY button to watch the video

Required functions

To create progress bars, we’ll use these three functions.

slice(text, number, number)

The slice() function returns a segment (or part) of the text we provide. This function needs at least two parameters, though we can optionally use three:

  1. Original text we’re going to extract a part from.
  2. Starting point, where the first character is 0.
  3. End point (optional)

Example 1: slice("La Colmena Tecnológica.", 3, 10) → “Colmena”

Example 2: slice("La Colmena Tecnológica.", 11, 22) → “Tecnológica”

Whitespace also counts as a character. Unlike the start point, the end-point parameter does not include the character, so to include the final character you must set the position to the one right after it.

round(number)

The round() function rounds a given decimal number to the nearest integer.

Example 1: round( 3.2 ) → 3

Example 2: round( 3.5 ) → 4

format(value)

The format() function converts a given number or date into a text string.

Example: format( 20 ) → "20"

Percentage property

To visualize your progress, you first need to calculate it as a percentage in a separate property.

For each project in your database, you may have one property for the total units required to complete it, then another property for the units currently completed.

In a Progress % property, we divide the completed units by the total units:

Notion - Redondeo
Table with a property formatted as a percentage

prop("Unidades completadas") / prop("Unidades totales")

Here you can see how to remove unsightly decimals in a formula that returns a percentage.

Notion - remove decimals from a percentage formula
With percentage rounding

round(100 * prop("Unidades completadas") / prop("Unidades totales")) / 100

Special characters to create our progress bar

The progress bar will include special characters to represent completed and incomplete segments. While you can choose whatever you like, here are a few suggestions:

  • Shaded blocks → ▓░
  • Stars → ★☆
  • Circles → ●○
Notion - Progress bar
Table with a progress bar property

With the Progress % property created and the special characters chosen, we can now create the progress bar. Create a new Formula property, name it Progress, and then add this formula:

Code with shaded characters

slice("▓▓▓▓▓▓▓▓▓▓", 0, round(prop("Progreso %") * 10)) + slice("░░░░░░░░░░", 0, 10 - round(prop("Progreso %") * 10)) + " " + format(round(prop("Progreso %") * 100)) + "%"

Code with star characters

slice("★★★★★★★★★★", 0, round(prop("Progreso %") * 10)) + slice("☆☆☆☆☆☆☆☆☆☆", 0, 10 - round(prop("Progreso %") * 10)) + " " + format(round(prop("Progreso %") * 100)) + "%"

Code with circle characters

slice("●●●●●●●●●●", 0, round(prop("Progreso %") * 10)) + slice("○○○○○○○○○○", 0, 10 - round(prop("Progreso %") * 10)) + " " + format(round(prop("Progreso %") * 100)) + "%"

You just need to replace the symbols in the formula with the ones you like best.

Found this useful? Share it.

Useful ideas to get more from WordPress

Practical tips on the topics you choose. Free, at most once a month.
Subscribe to the newsletter