Get AI summaries of any video or article — Sign up free
How To Use Notion Formulas | Ep. 1: Project Management (Days Remaining To Deadline) thumbnail

How To Use Notion Formulas | Ep. 1: Project Management (Days Remaining To Deadline)

Red Gregory·
5 min read

Based on Red Gregory's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Create a Tasks database with checkbox properties and convert checked/unchecked values into numbers using unary plus for summing.

Briefing

A Notion project-management dashboard can be built entirely with formulas by converting task checkboxes into a clean project completion percentage, then using date math to label each project as “today,” “passed,” or “future” and assign an “action” priority like urgent, priority, or archive. The practical payoff is a template-ready system: tasks roll up into projects, deadlines drive status text, and filters automatically separate active work from archived projects.

The build starts with two linked databases. A Tasks database uses four checkbox properties representing process steps (discussion, procedures, review, finalize) and a formula that returns a completion percentage. The key move is turning boolean checkboxes into numbers with unary plus (so checked becomes 1 and unchecked becomes 0), summing them, and dividing by the total number of checkbox properties. When rounding is needed, the workflow uses round/ceil/floor to control decimal behavior—then scales by 100 and divides back to keep percentages stable and readable.

Next comes a Projects database with a deadline date and a relation to tasks. Each project links to multiple tasks through a relation property, enabling rollups. A rollup named complete averages the task-level completion percentages, producing a project-level completion metric (e.g., 100% when all tasks are complete, lower values when tasks are partially done). This rollup becomes the backbone for later logic.

Deadline handling is where the formulas get more nuanced. A date-between calculation measures time from now to the deadline, but ordering matters: using now as the first argument and the deadline as the second can flip signs. To avoid confusing “negative days” for future deadlines, the formula converts the date difference into hours, divides by 24 to get days, and then uses ceil (seal) so “tomorrow” counts as 1 day remaining even late in the day. A sine-based sign check is also demonstrated as an alternative way to categorize past vs future vs today.

To produce user-friendly status text, the dashboard uses nested if statements with a three-way hierarchy: today when the computed day difference equals zero, past when the deadline is less than now, and future when the deadline is greater than now. The absolute value (abs) removes negative signs, and format converts numeric results to text so the status string can concatenate cleanly (e.g., “8 days remaining”).

Finally, an action formula assigns labels based on deadline status and completion. If the deadline is today and the project isn’t fully complete, it returns urgent. If the deadline is within eight days and completion is below a threshold, it returns priority. If completion equals 1, it returns archive. Filters then route archived projects into a separate view automatically by checking whether action contains “ARCHIVE,” while another filter keeps the default view focused on active projects. The result is a dashboard that stays current as tasks are checked off and deadlines approach—without manual updates.

Cornell Notes

The dashboard turns task checkboxes into a reliable project completion percentage, then uses deadline date math to generate human-readable status (“today,” “days remaining,” “passed”). Tasks connect to projects through a relation, and a rollup averages task completion to produce a project-level complete value. Deadline logic uses dateBetween with now and the deadline (ordering matters), converts to hours, divides by 24, and applies ceil so “tomorrow” counts as 1 day remaining. Nested if statements classify past/present/future, while abs and format make the output text-friendly for concatenation. An action formula then labels projects as urgent, priority, or archive based on deadline proximity and completion thresholds, enabling filters to separate active vs archived work.

How does unary plus make checkbox formulas work for percentages in Notion?

Unary plus converts boolean checkbox values into numbers: a checked box becomes 1 and an unchecked box becomes 0. That lets the formula sum checkbox properties directly. For example, adding unary plus to each checkbox property and then dividing by the total number of checkbox properties yields a percentage-complete value. The transcript also notes unary minus flips the sign (e.g., -42), and unary plus applied to true/false maps to 1/0.

Why does the dateBetween formula need careful argument ordering, and how is it corrected?

Using dateBetween with now and deadline in the wrong order can invert the sign, producing negative “days remaining” for deadlines that are actually in the future. The fix is to compute deadline minus now (so the sign aligns with past vs future). The transcript demonstrates that swapping the order changes results like “-7 days remaining” into “7 days remaining” for a future deadline.

What’s the purpose of switching from days to hours and using ceil?

The transcript uses hours to handle time-of-day more accurately. It calculates dateBetween in hours, divides by 24 to convert to days, and applies ceil so partial days count as the next whole day remaining. This makes “tomorrow” show 1 day remaining even when the current time is late in the day, and it prevents confusing behavior where future deadlines might otherwise appear as 0.

How does the dashboard generate “today / passed / future” text without time-of-day breaking equality checks?

Directly comparing a date property to now fails because now includes time (e.g., 6:30 p.m. won’t equal a date defaulting to 12 a.m.). Instead, it checks whether the computed day-difference (after ceil and dividing by 24) equals zero for today. Then it uses if conditions for past (deadline < now) and future (deadline > now), arranged in a hierarchy so only one label appears.

Why use abs, format, and concatenation in the status cell?

The computed day difference can be negative for past deadlines, so abs removes the sign. But once abs/rounding produces a number, concatenating it into a text string like “days remaining” requires converting the number to text. The transcript uses format to ensure the numeric value can be combined with strings, then builds output like “8 days remaining” or “21 days have passed” using plus signs and spacing.

How does the action formula decide between urgent, priority, and archive?

The action formula uses nested if logic with deadline status and completion thresholds. It returns urgent when the deadline status indicates today and the project completion rollup is below 1. It returns priority when the deadline is within eight days (using twoNumber to extract numeric values from the status text) and completion is below a chosen threshold (e.g., less than 0.5 in the transcript). It returns archive when completion equals 1, and filters then route projects based on whether action contains “ARCHIVE”.

Review Questions

  1. In what order should dateBetween arguments be arranged to avoid negative “days remaining” for future deadlines, and what symptom indicates the order is wrong?
  2. How do ceil and dividing by 24 work together to make “tomorrow” count as 1 day remaining in Notion?
  3. What combination of abs, format, and concatenation is needed to produce a status string like “8 days remaining” rather than a raw number?

Key Points

  1. 1

    Create a Tasks database with checkbox properties and convert checked/unchecked values into numbers using unary plus for summing.

  2. 2

    Compute project completion by summing checkbox-derived numbers, dividing by the number of checkbox properties, and using round/ceil/floor when you need cleaner percentages.

  3. 3

    Link Tasks to Projects with a relation and use a rollup (average) to turn task completion into a project-level completion metric.

  4. 4

    Use dateBetween with correct argument ordering, convert to hours, divide by 24, and apply ceil so day counts behave sensibly as deadlines approach.

  5. 5

    Generate “today/past/future” labels with nested if statements that avoid direct equality to now (because now includes time).

  6. 6

    Use abs to remove negative signs for past deadlines and format to convert numbers to text before concatenating with strings like “days remaining.”

  7. 7

    Assign an action tag (urgent/priority/archive) using completion thresholds and deadline proximity, then drive separate filtered views from whether action contains “ARCHIVE.”

Highlights

Unary plus turns checkbox booleans into 1/0, making percentage completion formulas straightforward.
Ceil(dateBetween(... in hours) / 24) is the trick that makes “tomorrow” count as 1 day remaining even late in the day.
Nested if statements with a day-difference equals zero check solve the “now includes time” problem for today detection.
A rollup averaging task completion percentages provides a clean project-level completion value for later urgency logic.
Filters can automatically separate archived projects by checking whether the action formula contains “ARCHIVE.”

Topics

Mentioned