Progress Bar

Progress Bar

Formulas

Simple Bar

(prop("Completed") / prop("Goal") >= 1) ? "✅" : (and(empty(prop("Completed")), not empty(prop("Goal"))) ? "0%" : format(slice("■■■■■■■■■■", 0, floor(prop("Completed") / prop("Goal") * 10)) + " " + format(round(prop("Completed") / prop("Goal") * 100)) + (empty(prop("Completed")) ? "0%" : "%")))
⚠️ Rounding Notes
Bars will be added at different progress points depending on whether floor, round, or ceil is used in the slice part. floor → 0–9% = No bar, 10–19% = 1 bar, etc. round → 0–4% = No bar, 5–9% = 1 bar, etc. ceil → 0% = No bar, 1–10% - 1 bar, etc.
☑️ Formula Breakdown
(prop("Completed") / prop("Goal") >= 1) ? "✅"
  • If Completed divided by Goal is greater than or equal to 1, display ✅
: (and(empty(prop("Completed")), not empty(prop("Goal"))) ? "0%"
  • Otherwise if Completed returns nothing but Goal returns something, display 0%
: format(slice("■■■■■■■■■■", 0, round(prop("Completed") / prop("Goal") * 10))
  • Otherwise divide Completed by Goal, round the results to a full number, then remove that number of squares from ■■■■■■■■■■
+ " " + format(round(prop("Completed") / prop("Goal") * 100))
  • Add the rounded percentage after the squares.
+ empty(prop("Completed")) ? "0%" : "%")))
  • And add 0% if Completed is empty, or just % if it isn't.

Full Bar

(prop("Completed") / prop("Goal") >= 1) ? "✅" : format(slice("■■■■■■■■■■", 0, floor(prop("Completed") / prop("Goal") * 10)) + format(slice("□□□□□□□□□□", 0, ceil(10 - prop("Completed") / prop("Goal") * 10)) + " " + format(round(prop("Completed") / prop("Goal") * 100)) + (empty(prop("Completed")) ? "0%" : "%")))
⚠️ Rounding Notes
Bars will be added at different progress points depending on whether floor + ceil or ceil + floor is used in the slice parts. floor + ceil → 0–9% = No bar, 10–19% = 1 bar, etc. ceil + floor → 0% = No bar, 1–10% - 1 bar, etc.
☑️ Formula Breakdown
(prop("Completed") / prop("Goal") >= 1) ? "✅"
  • If Completed divided by Goal is greater than or equal to 1, display ✅
: format(slice("▓▓▓▓▓▓▓▓▓▓", 0, floor(prop("Completed") / prop("Goal") * 10))
  • Otherwise divide Completed by Goal, round the results down to a full number, then remove that number of squares from ▓▓▓▓▓▓▓▓▓▓
+ format(slice("░░░░░░░░░░", 0, ceil(10 - prop("Completed") / prop("Goal") * 10))
  • Then divide Completed by Goal, subtract that from 10, then round the results up to a full number, then remove that number of squares from ░░░░░░░░░░
+ " " + format(round(prop("Completed") / prop("Goal") * 100))
  • Add the rounded percentage after the squares.
+ (empty(prop("Completed")) ? "0%" : "%")))
  • And add 0% if Completed is empty, or just % if it isn't.

Small Bar

(prop("Completed") / prop("Goal") >= 1) ? "✓" : format(slice("••••••••••", 0, floor(prop("Completed") / prop("Goal") * 10)) + format(slice("◦◦◦◦◦◦◦◦◦◦", 0, ceil(10 - prop("Completed") / prop("Goal") * 10))))
⚠️ Rounding Notes
Bars will be added at different progress points depending on whether floor + ceil or ceil + floor is used in the slice part. floor + ceil → 0–9% = No bar, 10–19% = 1 bar, etc. ciel + floor → 0% = No bar, 1–10% - 1 bar, etc.
☑️ Formula Breakdown
(prop("Completed") / prop("Goal") >= 1) ? "✓"
  • If Completed divided by Goal is greater than or equal to 1, display
: format(slice("••••••••••", 0, floor(prop("Completed") / prop("Goal") * 10))
  • Otherwise divide Completed by Goal, round the results down to a full number, then remove that number of squares from ••••••••••
+ format(slice("░░░░░░░░░░", 0, ceil(10 - prop("Completed") / prop("Goal") * 10))
  • Then divide Completed by Goal, subtract that from 10, then round the results up to a full number, then remove that number of squares from ◦◦◦◦◦◦◦◦◦◦
 

Styles

Character Entity Chart → Good reference for the symbols that can be used for the bars. Emojis won't work as they register as more than one "character" so the slice function fails.
Progress Bar Styles
Name
Simple
Full
Em Dash
Baby Dots
Crosses
Zigzags
Vertical Bar
Small Circle
Plus/Minus
Large Circle
Dotted Circle
Filled Squares
Crossed Box
Star
Star 2

Rounding Variations & Comparisons

Progress Bar Variations & Comparisons
Name
Completed
Goal
Simple Bar (floor)
Simple Bar (round)
Simple Bar (ceil)
Full Bar (floor)
Full Bar (ceil)
1
100
2
100
3
100
4
100
5
100
6
100
7
100
8
100
9
100
10
100
11
100
12
100
13
100
14
100
15
100
16
100
17
100
18
100
19
100
20
100
21
100
22
100
23
100
24
100
25
100
26
100
27
100
28
100
29
100
30
100
31
100
32
100
33
100
34
100
35
100
36
100
37
100
38
100
39
100
40
100
41
100
42
100
43
100
44
100
45
100
46
100
47
100
48
100
49
100
50
100
51
100
52
100
53
100
54
100
55
100
56
100
57
100
58
100
59
100
60
100
61
100
62
100
63
100
64
100
65
100
66
100
67
100
68
100
69
100
70
100
71
100
72
100
73
100
74
100
75
100
76
100
77
100
78
100
79
100
80
100
81
100
82
100
83
100
84
100
85
100
86
100
87
100
88
100
89
100
90
100
91
100
92
100
93
100
94
100
95
100
96
100
97
100
98
100
99
100
100
100