Database

Notion for Finance: Savings Calculator Template

🏦 Finance Tracker

Notion can be used for simple and complex financial planning and tracking. For instance, using some important formula tricks, you can manipulate date and number properties to project the approximate end to a savings goal. The following use-case is a great addition to any personal finance Notion dashboard. Here’s how it works.

The Savings Calculator

The savings calculator determines how many months into the future it will take to save for a particular item. If there is no Start date applied, the End formula will calculate from today's date until Start is filled.

Properties

  • Start: date property

  • Save per Month: number property

  • Cost: number property

End: formula property

if(empty(prop("Start")), dateSubtract(dateSubtract(dateAdd(now(), ceil(prop("Cost") / prop("Save per Month")), "months"), hour(now()), "hours"), minute(now()), "minutes"), dateAdd(prop("Start"), ceil(prop("Cost") / prop("Save per Month")), "months"))

Formula breakdown

Statement 1: Make prediction for approximate end date from today if Start property is empty. Also ensure that the resulting date has time “12:00am.”

  1. if(empty(prop("Start")),

    • If the Start property is empty …

  2. dateSubtract(dateSubtract(dateAdd(now(), ceil(prop("Cost") / prop("Save per Month")), "months"), hour(now()), "hours"), minute(now()), "minutes")

    • Divide Save per Month and Cost …

  3. dateSubtract(dateSubtract(dateAdd(now(), ceil(prop("Cost") / prop("Save per Month")), "months"), hour(now()), "hours"), minute(now()), "minutes")

    • Then, add the result of 2. to today’s date in the value of months …

  4. dateSubtract(dateSubtract(dateAdd(now(), ceil(prop("Cost") / prop("Save per Month")), "months"), hour(now()), "hours"), minute(now()), "minutes")

    • Then, subtract the hour of now from the date resulting in 3.

  5. dateSubtract(dateSubtract(dateAdd(now(), ceil(prop("Cost") / prop("Save per Month")), "months"), hour(now()), "hours"), minute(now()), "minutes")

    • Then, subtract the minute of now from the date resulting in 3.

Statement 2: Make prediction for end date from Start property. This is the false condition, or when the above statement does not apply.

  1. dateAdd(prop("Start"), ceil(prop("Cost") / prop("Save per Month")), "months"))

    • Divide Save per Month and Cost, and add the result to Start date in the value of months.

 

Why Convert Date To 12:00AM?

It is good practice to convert date calculations from now(), or today, into dates with a 12:00am time. The now() function includes today’s time, so any addition or subtraction to now() will have a time. 12:00am can indicate that the date spans the entire 24 hour day.

You can also format a date to only show the date without the time.

  • ex. formatDate(prop(“Date”), “MM/DD/YYYY”)

However, this will result in a text property and NOT a date that can be viewable in a calendar.

 

Savings Tracker Database

The Track Savings database allows the user to add new cards for every input amount into a savings item. Upon clicking a new card, the monthly amount assigned to the item will automatically be added.

  • Added property: Amount Saved: rollup property

If there is a custom amount to add, there is an option to do so in the card.

 

Adjusted End Date Formula

Determine what the adjusted end date is from the amount of money saved. This is a separate formula in the Savings Calculator using the above rollup property.

Adjusted End Formula

dateSubtract(dateSubtract(dateAdd(now(), ceil((prop("Cost") - prop("Amount Saved")) / prop("Save per Month")), "months"), hour(now()), "hours"), minute(now()), "minutes")

 

Further Reading