Projects

The Projects database stores all of your projects. (Here’s how to find it in your template)

Projects are useful ways to group tasks and notes that are all related to a common outcome, which should ideally be well-defined, measurable, and achievable.

Below you’ll find a reference guide for all database templates and properties in the Projects database. Properties are in alphabetical order.

This template establishes a Project’s page as the “home base” for everything involved in that project. It displays note and tesks related to the project.

Research projects are identical to normal projects, but they also leveral the concept of Pulls. These are Notes and Tags that you “pull into” a project, without directly relating them to the project.

This concept is typically only used by a small subset of users, so don’t feel any pressure to use it. That said, some users enjoy the ability to bring materials they’ve captured in other contexts into a Project. To do this, you can leverage two properties in the Projects database:

  • Pulled Notes
  • Pulled Tags

Pulled Notes lets you pull individual notes into the Pulled database view within the Research Project. Pulled Tags will pull every note from a Tag into the Pulled view, and will also show the Tag itself in the Pulled Tags section.

Type: Checkbox

If checked, this project is Archived. It will be removed from all main views in UB, and show up in the Archived Projects section of the Archive page.

This follows the PARA principle – archived items are removed from the main lists and safely tucked out of sight.

Type: Date

The date the project was actually completed. Compare with your Target Deadline to see how well you were able to predict the project’s timeline.

Type: Created Time

The date and time this project page was created.

Type: Last Edited Time

The date and time this project was last edited.

Type: Relation

A goal this project is a part of. This Relation property connected to the Projects Relation property in the Goals database.

Type: Rollup

If this project is related to a goal, this Rollup property shows the Tag (if any) to which the goal is related.

Type: Formula

Returns the date and time of the latest activity in the project – including the project itself, along with any tasks or notes directly related to it.

Used for allowing projects to be sorted by Latest Activity in certain views.

lets(
	taskActivity,
	prop("Tasks").map(current.prop("Edited")).sort().reverse(),
	noteActivity,
	prop("Notes").map(current.prop("Updated")).sort().reverse(),
	editedList,
	[prop("Edited")],
	concat(taskActivity, noteActivity, editedList).sort().reverse().first()
)
Code language: JavaScript (javascript)

Type: Formula

This property allows you to define translated names for the Project database’s key Status options – Planned, On Hold, Doing, Ongoing, and Done.

These are important for filters in certain views within My Day and Task Manager.

/* If you would like to translate your Status option names, translate them in the Status property AND in this formula as well. Below, you'll see variables for each of the important Status options in Ultimate Brain. For each, you can replace the terms in quotes ("") with translated terms. The final argument (the List defined by the brackets) is the return value of this formula. It is a multi-dimensional List (e.g. array), where the most important element is the 2nd (index 1) of the top List. This sub-List contains all of the Status options that are considered Active.

Since Notion formulas don't let us access the Groups of Status properties (e.g. To Do, In Progress, Complete), this is the best way to get the Group of a translated (or added) Status option.

If you have added extra options that are considered Active, add them as strings between the brackets underneath the additionalActiveStatusOptions variable. This can be helpful if you want to define multiple stages for Active projects.

Example: ["Design", "Development", "QA"] */

lets(
	planned,
	/* Edit the term below this line to translated the Planned status. E.g. "Zaplanowany" */
	"Planned",
	onHold,
	/* Edit the term below this line to translated the On Hold status. "Zastopowany" */
	"On Hold",
	doing,
	/* Edit the term below this line to translated the Doing status. "W trakcie" */
	"Doing",
	ongoing,
	/* Edit the term below this line to translated the Ongoing status. "Otwarty" */
	"Ongoing",
	done,
	/* Edit the term below this line to translated the Done status. "Zakończony" */
	"Done",
	additionalActiveStatusOptions,
	/* If you would like to add additional Active status options, add them as strings between these brackets. See the comment above for an example. */
	[],
	/* Do not edit anything below this line */
	[
		[planned, onHold],
		[doing, ongoing, additionalActiveStatusOptions].flat(),
		[done]
	]
)
Code language: JavaScript (javascript)

Type: Formula

Displays the number of active (e.g. unfinished) tasks related to the project, as well as the number of overdue tasks.

lets(
	active,
	prop("Tasks")
		.filter(
			current.prop("Status") != "Done" and current.prop("Status") != current.prop("Localization Key").at(2).last()
		)
		.length(),
	overdue,
	prop("Tasks")
		.filter(
			current.prop("Status") != "Done" and current.prop("Status") != current.prop("Localization Key").at(2).last()
			and now().dateBetween(current.prop("Due"), "days") > 0
		)
		.length(),
	ifs(
		prop("Tasks").length() == 0,
		"No Tasks Created".style("blue"),
		active == 0,
		"All Tasks Done".style("green"),
		if(
			overdue == 0,
			(active + " Active").style("blue"),
			(active.style("b") + " Active - ").style("blue") 
			+ (overdue.style("b") + " Overdue").style("red")
		)
	)
)
Code language: JavaScript (javascript)

Type: Title

The name of the project.

Type: Relation

Notes that are directly related to this Project. This Relation property connects to the Project Relation property in the Notes database.

Type: Relation

This property shows any people related to this project (e.g. a client or partner). This relation property connects to the Projects relation property in the People database.

Type: Formula

Shows the progress of the project by calculating the percentage of completed tasks related to it.

if(
	prop("Tasks").empty(),
	"".toNumber(),
	(prop("Tasks")
	.filter(
		current.prop("Status") == "Done" or current.prop("Status") == current.prop("Localization Key").at(2).last()
	)
	.length()
/ prop("Tasks")
	.length()
	* 1000)
.round() 
/ 1000
)
Code language: JavaScript (javascript)

Type: Relation

This Relation property allows you to “pull” existing notes into the Pulled Notes view within this Project’s page body.

Pulled Notes are notes that aren’t directly related to the project (not created as part of the project), but that may provide useful context to the project.

Type: Relation

This Relation property allows you to “pull” ALL of the Notes from a specific Tag page in the Tags database into the Pulled Notes view within this Project’s page body.

See the Pulled Notes property description/reference for more info on this property’s function.

Type: Formula

Returns the quarter of the year for the project’s Target Deadline. Used in the Plan page to filter projects into each quarter of the year.

prop("Target Deadline").formatDate("Q")
Code language: JavaScript (javascript)

Type: Rich Text

Add any quick notes about this project here.

Type: Status

The status of the project. For “projects” that contain ongoing/maintenance items, use the Ongoing status.

NameDescription
Group: To-do
PlannedProjects that you’ve planned to do, but haven’t started yet.
On HoldProjects that have already been started, but are currently paused from active work.
Group: In progress
OngoingProjects that collect and organize tasks meant to maintain an ongoing standard (e.g. maintenance tasks in an Area within the PARA system).
DoingProjects with a defined end goal that you’re currently working on.
Group: Complete
DoneProjects that are complete.

Type: Relation

The Tag with which this Project is associated. This Relation property connects to the Projects Relation property in the Tags database.

It’s typically best to associate Projects with Tags that have a type of Area (and have the Area database template applied).

Type: Date

The date on which you plan to complete this project. Useful for planning backwards – if you have a Target Deadline, you can more easily set due dates for any tasks related to the project.

Type: Relation

Tasks that are part of this Project. This Relation property connects to the Project Relation property in the Tasks database.

Type: Formula

Returns true (checked) if this project’s Target Deadline falls within the current quarter of the year.

if(
	empty(prop("Target Deadline")),
	false,
	prop("Target Deadline").formatDate("QY") == now().formatDate("QY")
)
Code language: JavaScript (javascript)

Type: Formula

Returns true (checked) if this project’s Target Deadline falls within the current year. Used in the Plan page to filter projects into the correct timeframes.

if(
	empty(prop("Target Deadline")),
	false,
	prop("Target Deadline").formatDate("Y") == now().formatDate("Y")
)
Code language: JavaScript (javascript)

🤔 Have an UB Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas

🤔 Have a Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas