Here’s a fun, new way to visualize the status of tasks for a project! We use formulas to calculate how many tasks are “incomplete” and how many tasks are “complete”, then display those in separate rows with symbols.
The formula to do this is simple. It assumes that we have a “Tasks” table related to a “Projects” table. The Tasks table contains all of our tasks, with a checkbox property for “Status”. Tasks are checked off when they are completed.
In the Tasks table, create two new formula properties:
- prop(“Incomplete”)
- prop(“Complete”)
In these, we place a formula that says essentially “If the Status checkbox is checked, display a value of 1, if the Status Checkbox is not checked, display a value of 0”:
Incomplete:
if(empty(prop("Status")), 1, 0)
Complete:
if(prop("Status"), 1, 0)
In your Projects table, create rollups for each of these two properties, calculating the “Sum” of all complete or incomplete tasks that are linked to the project.

Create two new formula properties on the projects table:
- prop(“Incomplete Status”)
- prop(“Complete Status”)
In each of these properties we are going to place a handy slice() function using the “Complete” and “Incomplete” properties to tell us how many visual icons to display (1 for each task):
slice("◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻", 0, prop("Incomplete"))
slice("◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼", 0, prop("Complete"))
Our string includes 100 symbols, which means that we can have up to 100 tasks linked to our project that will correctly display. If you may have more than 100 tasks, add more symbols to the string (you can also replace these with the symbols of your choosing).
Slice chops this string apart after the number that we give it, in this case it is the sum value of our incomplete or complete tasks.
To finish it off, let’s display the actual number of incomplete or complete tasks at the end in a parentheses:
+ " (" + format(prop("Incomplete")) + ")"
+ " (" + format(prop("Complete")) + ")"
Here is all of it put together:
slice("◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻", 0, prop("Incomplete")) + " (" + format(prop("Incomplete")) + ")"
slice("◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼", 0, prop("Complete")) + " (" + format(prop("Complete")) + ")"
Make sure you are displaying your project cards in “Gallery View” to get this nice, clean display.
