How to make Progress Bars in Notion

Notion Jul 30, 2021

Demo:

How your progress bar will change with your data

Formula Example:

Formula Example

Building the formula step by step

% calculation:

prop("Hours completed") / prop("Hours allocated") * 100

Round the % to the nearest whole number

round(prop("Hours completed") / prop("Hours allocated") * 100)

Convert to text:

format(round(prop("Hours completed") / prop("Hours allocated") * 100))

Add % symbol:

format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%"

Add if statement & output if "Hours completed" is empty or zero:

if(prop("Hours completed") / prop("Hours allocated") == 0, "❌" ,"")

Add β–  progress marker:

Notes:

The easiest way to insert the squares on a Mac is from the character picker.

We found that Notion inverts the colour of this symbol in dark mode so you will have to use White Square, rather than Black Square.

But it's possible that most people reading this aren't using dark mode, I've used Black Square in this guide.

"β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%"

Add β–  number & % as output if "Hours completed" is greater than 0 and less than or equal to 0.1:

if(prop("Hours completed") / prop("Hours allocated") == 0, "❌", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.1), "β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%",""))

Add outputs for each tier that needs another β–  to indicate progress:

note

Although you can't see all of the spaces, either on this page or in the formula editor, we've added 31 spaces before the ❌ Β and βœ… Β emoji, plus enough spaces after each of the progress blocks to align the emoji and text in the progress column.

if(prop("Hours completed") / prop("Hours allocated") == 0, " ❌", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.1), "β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.2), "β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.3), "β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.4), "β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.5), "β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.6), "β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.7), "β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.8), "β– β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.9), "β– β– β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.99), "β– β– β– β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", "")))))))))))

πŸŽ‰ Finished formula

Add βœ… Β if task is 100% complete:

if(prop("Hours completed") / prop("Hours allocated") == 0, " ❌", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.1), "β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.2), "β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.3), "β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.4), "β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.5), "β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.6), "β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.7), "β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.8), "β– β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.9), "β– β– β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(smallerEq(prop("Hours completed") / prop("Hours allocated"), 0.99), "β– β– β– β– β– β– β– β– β– β–  " + format(round(prop("Hours completed") / prop("Hours allocated") * 100)) + "%", if(prop("Hours completed") / prop("Hours allocated") == 1, " βœ…", ""))))))))))))

The easiest way to move this into your own table is to rename the columns in your table as "Hours allocated" and "Hours completed", add the formula property and then rename the columns. The formula will automatically update to use the new column names.


Trying to wrap your head around ?

If you're still learning to use Notion and don't want to wrap your head around all of these formulas, make sure to check out our template that make use of all of these formulas for free here -

Prototion Templates

See you around, Notioner ;)

Tags

Priya Srivastava

Photoshop Artist πŸ§™β€β™‚οΈ | Coding = The butter to my bread 🍞 | Fitness junkie πŸ§—β€β™‚οΈβ›ΉοΈβ€β™€οΈ | Gamer πŸš€ | writer ✏| A proud memer πŸ’Ÿ| Notion-er πŸ’Œ

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.