7 notion formulas to ge the best out of your notion databases

Formulas are one of my favorite Notion features—they’re like little spells that make your databases smarter, more dynamic, and infinitely more helpful. So, here’s a curated list of my go-to formulas that have made a real difference. I hope they do the same for you!

What are Notion formulas?

Think of Notion formulas as the brain behind your database, a powerhouse that turns raw data into meaningful insights. They’re like having a virtual assistant inside your workspace—ready to calculate, organize, and transform your data in ways that make your setup smarter and more efficient.

Formulas can display dynamic information, and even combine properties in creative ways. From calculating project deadlines to creating personalized progress bars, these little snippets of code unlock endless possibilities.

As a Certified Notion Consultant, I’ve created dozens of formulas for myself and my clients. Some were experimental, others game-changing. Over time, I’ve refined a collection of go-to formulas that I find indispensable.

image

When it comes to mastering Notion formulas, Ben Smith is my go-to person. His website is an absolute treasure trove for anyone looking to level up their Notion formula game. Ben documents everything, from the basics to advanced use cases.

7 Notion formula examples

1. A progress bar that actually feels like progress

This was one of the very first formulas I created when I started using Notion in 2020. Back then, Notion didn’t have the built-in progress bar feature we see today. So, when I was building my first template, I decided to create my own using a formula. If I compare the build it progress bar with the formula one, the formula wins by a land fal because it offers way more flexibility.

With formulas, you’re not just limited to tracking percentages—you can also add extra details, like the number of pages left to read in a book. In this case, I use the formula to track my reading progress by showing how much I’ve read, how much is left, and displaying it all visually using Unicode characters.

image

Here’s the formula in action:

if(empty(prop("Current Page")), "", if(((prop("Current Page") / prop("Pages")) >= 1), "✅ Book complete", format(substring("▓▓▓▓▓▓▓▓▓▓", 0, floor((prop("Current Page") / prop("Pages")) * 10)) + format(((substring("░░░░░░░░░░", 0, ceil(10 - ((prop("Current Page") / prop("Pages")) * 10))) + " ") + format(round((prop("Current Page") / prop("Pages")) * 100))) + (if(empty(prop("Current Page")), "0%", "% 📄 ")+prop("Current Page")+" / "+prop("Pages"))))))

Where else can you use this formula in business?

Progress bars are versatile and can be applied in many areas of business, such as:

  • Project Management: Track how close you are to completing a specific project, with detailed milestones or phases included.
  • Sales Goals: Visualize your progress toward monthly or quarterly targets, like reaching a revenue goal or closing a set number of deals.
  • Content Creation: Show the progress of tasks like drafting, editing, and publishing content, giving you a clear snapshot of where your team is at.
  • Employee Training: Monitor how far a team member has gone through onboarding tasks or learning modules.
  • Event Planning: Track tasks like securing a venue, sending invites, or finalizing logistics to keep everything on schedule.

2. Display an overview of missing data with emojis

One of my favorite Notion formulas uses 🔴 and 🟢 emojis to indicate whether a checkbox is checked. I use this formula to create a list of action items for my clients when I audit their SEO content.

image

Each aspect of the content audit has a separate line in the formula. The messages that the formula displays will change depending on whether each property's checkbox is checked or unchecked. For example, if the KW in URL? checkbox is checked, the formula will return "Keyword in URL" with a 🟢 emoji. If the KW in URL? checkbox is not checked, the formula will return "Keyword not in URL" with a 🔴 emoji.

The emoji overviews use the following formula:

if(KW in URL? == true, "Keyword in URL 🟢","Keyword not in URL 🔴")+"\n"+if(Meta Description KW? == true, "Keyword in meta description 🟢","Keyword not in meta description 🔴")+"\n"+if(Full Title in SERPs? == true, "Full title visible in SERPs 🟢","Full title not visible in SERPs 🔴")+"\n"+if(Internal links up-to-date? == true, "All internal links up-to-date 🟢","Not all internal links up-to-date 🔴")

You can edit the names of the properties in this formula and the statements that accompany each emoji to customize the formula so it references the data in your database.

  • To add emojis to your formula on a Mac, use the shortcut fn + E to access the character viewer, then go to the Symbols menu within the Emoji menu, and double-click on the 🔴 or 🟢 emoji.
  • To add emojis to your formula on a PC, use the shortcut Windows key + period to access the emoji keyboard, then go to the Symbols menu within the Emoji menu, and click on the 🔴 or 🟢 emoji.

3. Count the number of days between the current date and a goal date

When I start a new project for a client, I like to use a formula to calculate the number of days between the day that I'm assigned the project and the project's deadline. Calculating the durations of my projects helps me break each project down into smaller, manageable tasks that I can complete each day. I don't track these smaller tasks in Notion. Instead, I create to-do lists of the tasks in Google Keep.

image

I use the following formula to calculate the number of days between a project's start date and its deadline:

dateBetween(prop("Project Due Date"),prop("Project Start Date"),"days")+" days"

4. Assign a priority level to a task based on its due date

When I'm working on multiple projects at once, I tend to have trouble prioritizing my tasks. I often find myself starting the most enjoyable tasks first, even when my other tasks have more urgent deadlines. I've tried to organize my tasks on a calendar based on their deadlines, but seeing all the tasks together on a cluttered calendar was overwhelming. It didn't help me overcome the urge to put off difficult tasks in favor of enjoyable ones, and it made my task paralysis worse.

It didn't take me long to realize that I needed a dynamic system that could keep track of my deadlines and organize my daily tasks based on how soon the tasks were due.

In Notion, I created a task management database with a formula that uses the now()dateBetween(), and style() functions to assign a colored priority level label to each task.

  • Tasks that are due within 7 days of the current date are given a red High Priority label.
  • Tasks that are due more than 7 days after the current date but less than 14 days after the current date are given a yellow Medium Priority label.
  • Tasks that are due more than 14 days after the current date are given a green Low Priority label.
image

Unlike my laptop's calendar app, my Notion database automatically updates each task's priority label based on the current date and the day that the task is due.

I use the following formula to assign colored priority labels to my tasks:

if(dateBetween(prop("Due Date"), now(), "days") <= 7, style("High Priority", "b","red","red_background"), if(and(dateBetween(prop("Due Date"), now(), "days") > 7,dateBetween(prop("Due Date"), now(), "days") < 14), style("Medium Priority", "b","yellow","yellow_background"), if(dateBetween(prop("Due Date"), now(), "days") > 14, style("Low Priority", "b","green","green_background"),"")))

5. Extract a domain from an email address and turn it into a clickable URL

Finding business owners who can benefit from my services and reaching out to introduce myself to them can be difficult, especially if I don't take careful notes while prospecting. I use Notion to keep track of information about my prospects and their businesses.

One way I save time while prospecting is by using a Notion formula to automatically turn my potential clients' email addresses into their businesses' URLs so I can quickly access them to learn about what each business offers and how my services may be able to help them.

The URL formula in my prospecting database uses a regular expression (Regex) to extract the domain from the point of contact's email address and affix "https://www." to the beginning of the result to create a live hyperlink. For example, the formula would turn the email address jdoe@example.com into the URL https://www.example.com.

image

To extract clickable URLs from my prospects' email addresses, I use the following formula with regular expressions:

"https://www."+match(prop("Email"),"(?<=@)(.*\w)")

9. Subscription tracker

I use dozens of subscription-based apps in my freelance business and my personal life, and every month, I get surprised by emails from streaming services, tax software, my website provider, and business management tools thanking me for paying subscription fees that I'd completely forgotten about.

In an attempt to save my sanity and my wallet from forgotten subscription costs, I've added my subscriptions to a Notion database that tracks their upcoming renewal dates and costs.

image

When I add a new subscription to the database, I list the name of the service, the subscription cost, and the date of the last subscription payment. I also select whether the subscription renews monthly or annually.

I use the following formula in the subscription database to calculate the next renewal date of each subscription based on its renewal frequency:

if(prop("Frequency") == "Monthly", dateAdd(prop("Last Renewed On"), 1, "months"), if(prop("Frequency") == "Annually",dateAdd(prop("Last Renewed On"), 1, "years"),""))

If a subscription's renewal frequency is set to monthly, the formula displays the date that's one month after the last renewal date. If a subscription's renewal frequency is set to annually, the formula displays the date that's one year after the last renewal date.

Did you like this blog post?

Subscribe to my email newsletter to know when the next one is coming out.