# Projects

Creating projects, assigning members and services, and configuring rates.

# Overview

Projects are the backbone of time tracking and billing in Invup. Every time entry belongs to a project, and every project can be linked to a client — so when it's time to invoice, you have a clear record of what work was done, for whom, and at what rate.

Whether you run an architecture firm tracking hours across multiple building engagements, a law firm billing per client matter, or a marketing agency managing campaigns, projects give you a structured way to organize and bill your team's work.

---

## What Is a Project?

A project in Invup is a container that groups time entries together. At its simplest, a project has a name, an optional client, and an optional hourly rate. Team members log time against projects, and each entry's rate is resolved based on a configurable [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy).

### Core properties of a project

<table id="bkmrk-property-description"><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td>**Name**</td><td>A descriptive name (e.g., "Acme Corp Annual Audit", "Riverside Condo Design")</td></tr><tr><td>**Description**</td><td>Optional notes about the project scope</td></tr><tr><td>**Client**</td><td>The client this project is for (optional — projects can exist without a client)</td></tr><tr><td>**Hourly Rate**</td><td>A default rate for time logged to this project</td></tr><tr><td>**Start / End Date**</td><td>Optional date range for the project timeline</td></tr><tr><td>**Lock Entries Until**</td><td>A date that prevents team members from creating, editing, or deleting time entries on or before that date</td></tr><tr><td>**Enable Services**</td><td>Whether the project uses services to categorize work</td></tr></tbody></table>

---

## How Projects Connect to Other Features

### Clients

Each project can be linked to a **client**. This connection lets you organize projects by client and provides context when generating invoices. A client can have multiple projects — for example, an accounting firm might have separate projects for a client's tax filing, bookkeeping, and advisory work.

Projects can also exist without a client, which is useful for internal work like "Staff Training" or "Office Administration".

### Services

Projects can optionally use **services** to categorize the types of work being performed. When services are enabled on a project, team members must select a service when logging time (e.g., "Design", "Research", "Consultation"). This enables more granular rate control and better reporting.

When services are disabled, time is logged directly against the project with no service breakdown.

For details on adding services to projects, see [Managing Project Services &amp; Rates](https://docs.invup.me/books/projects/page/managing-project-services-rates).

### Team Members

Team members are assigned to projects so they can log time. How assignment works depends on whether the project uses services:

- **Without services**: Team members are assigned directly to the project. Each can optionally have a custom project-member rate.
- **With services**: Team members are assigned to specific services within the project. Each can have a custom rate per service on that project.

### Time Entries

Every time entry belongs to a project. The project determines which rate hierarchy is used to calculate the entry's hourly rate, and the project's lock date controls whether entries can be modified. See [Time Tracking Overview](https://docs.invup.me/books/time-tracking/page/overview) for more.

### Invoicing

Projects connect to invoicing through **clients**. A project's client determines which invoices the work can be billed to. Time entries logged against a project provide the data — duration, rate, and service — that you reference when building invoice line items.

---

## Key Concepts

### Project Rates

Every project can have a default **hourly rate**. This rate is used as a fallback in the [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy) when no more specific rate is set (e.g., no project-member rate, no service rate). You can also set custom rates at the team member level and the service level within a project.

### Member Assignment

Team members must be assigned to a project before they can log time to it. On non-service projects, members are assigned directly. On service-based projects, members are assigned to individual services within the project — a team member might be assigned to "Design" and "Consultation" but not "Research".

### Lock Dates

The **"Lock entries until"** date prevents non-admin team members from creating, editing, or deleting time entries dated on or before that date. This is useful for closing off billing periods after invoices have been sent. Admins and owners can still modify locked entries.

For details, see [Rate Locking — Project Lock Date](https://docs.invup.me/books/time-tracking/page/rate-locking#bkmrk-project-lock-date).

### Deleting Projects

Projects can be permanently deleted when they're no longer needed. Deleting a project removes it and all its associated time entries. This action cannot be undone, so use it with care — consider whether you may need the historical data before deleting.

You can delete multiple projects at once using the bulk delete action on the project list.

---

## What's in This Book

<table id="bkmrk-page-description-man"><thead><tr><th>Page</th><th>Description</th></tr></thead><tbody><tr><td>[Managing Project Services &amp; Rates](https://docs.invup.me/books/projects/page/managing-project-services-rates)</td><td>How to add services to a project, set project-service rates, and assign team members to services within a project.</td></tr></tbody></table>

# How to Create and Manage a Project

This guide walks through creating, editing, and managing projects in Invup. For an introduction to what projects are and how they fit into the platform, see the [Projects Overview](https://docs.invup.me/books/projects/page/overview).

---

## Creating a Project

1. Navigate to the **Projects** page.
2. Click the **+** button in the top-right corner of the table. The "New Project" form opens.
3. Fill in the fields below.
4. Click **Create Project**.

[![Admin - Project Creation.png](https://docfiles.invup.me/uploads/images/gallery/2026-03/scaled-1680-/admin-project-creation.png)](https://docfiles.invup.me/uploads/images/gallery/2026-03/admin-project-creation.png)

### Form Fields

<table id="bkmrk-field-required-descr"><thead><tr><th>Field</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>**Name**</td><td>Yes</td><td>A descriptive name for the project (e.g., "Acme Corp Annual Audit", "Riverside Condo Design"). Maximum 255 characters.</td></tr><tr><td>**Description**</td><td>No</td><td>Optional notes about the project scope or details.</td></tr><tr><td>**Client**</td><td>No</td><td>The client this project is for. Select from your existing clients, or click **Create a new client** to add one. If you've just created a client and don't see it in the list, click the refresh icon next to the label.</td></tr><tr><td>**Hourly Rate (/hr)**</td><td>No</td><td>A default hourly rate for this project. This rate is used as a fallback in the [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy) when no more specific rate is set. Must be $0.00 or higher.</td></tr><tr><td>**Start Date**</td><td>No</td><td>When the project begins. For reference only — does not restrict time entry logging.</td></tr><tr><td>**End Date**</td><td>No</td><td>When the project ends. For reference only — does not restrict time entry logging.</td></tr><tr><td>**Enable Services**</td><td>No</td><td>Whether this project uses services to categorize work. When enabled, the services section appears where you can add services and assign team members per service. See [Managing Project Services &amp; Rates](https://docs.invup.me/books/projects/page/managing-project-services-rates).</td></tr><tr><td>**Members**</td><td>No</td><td>The team members who can log time to this project. Only visible when services are disabled — when services are enabled, members are assigned through individual services instead.</td></tr></tbody></table>

A success notification confirms the project was created.

---

## Editing a Project

Click any project in the list to open its detail page. From here you can update all the fields from creation, plus additional options:

- Change the name, description, client, hourly rate, or dates
- Add or remove team members (non-service projects)
- Add, remove, or reconfigure services (service-based projects)
- Set or adjust the lock date (see below)

Click **Save Changes** when you're done. The button is disabled until you modify something.

---

## Project Fields Reference

<table id="bkmrk-field-type-editable-"><thead><tr><th>Field</th><th>Type</th><th>Editable</th><th>Notes</th></tr></thead><tbody><tr><td>Name</td><td>Text</td><td>Yes</td><td>Required. Max 255 characters.</td></tr><tr><td>Description</td><td>Text</td><td>Yes</td><td>Optional.</td></tr><tr><td>Client</td><td>Dropdown</td><td>Yes</td><td>Optional. Select from existing clients.</td></tr><tr><td>Hourly Rate</td><td>Currency</td><td>Yes</td><td>Optional. Fallback rate for time entries. Must be $0.00 or higher.</td></tr><tr><td>Start Date</td><td>Date</td><td>Yes</td><td>Optional. For reference only.</td></tr><tr><td>End Date</td><td>Date</td><td>Yes</td><td>Optional. For reference only.</td></tr><tr><td>Enable Services</td><td>Toggle</td><td>Yes</td><td>Cannot be disabled once services have been added — remove all services first.</td></tr><tr><td>Members</td><td>Multi-select</td><td>Yes</td><td>Only shown when services are disabled.</td></tr><tr><td>Lock Entries Until</td><td>Date</td><td>Yes (edit only)</td><td>Locks time entries on or before this date. Not available on the creation form.</td></tr></tbody></table>

---

## Setting a Project Lock Date

The **Lock entries until** field appears on the project edit page. It prevents non-admin team members and contributors from creating, editing, or deleting time entries dated on or before that date.

To set or advance a lock date:

1. Open the project detail page.
2. Enter or change the date in the **Lock entries until** field.
3. Click **Save Changes**.
4. A confirmation dialog appears: *"All time entries on or before {date} will be locked. Members and contributors won't be able to edit or delete them."*
5. Confirm to apply the lock.

### Who can do what with locked entries

<table id="bkmrk-action-team-member-%2F"><thead><tr><th>Action</th><th>Team Member / Contributor</th><th>Admin / Owner</th></tr></thead><tbody><tr><td>View locked entries</td><td>Yes</td><td>Yes</td></tr><tr><td>Edit or delete locked entries</td><td>No</td><td>Yes</td></tr><tr><td>Set or change the lock date</td><td>No</td><td>Yes</td></tr></tbody></table>

Lock dates are useful for closing off billing periods. For example, after sending January invoices to clients, set the lock date to January 31 so no one accidentally modifies entries that have already been billed.

For more on how lock dates interact with rate locking, see [Rate Locking — Project Lock Date](https://docs.invup.me/books/time-tracking/page/rate-locking#bkmrk-project-lock-date).

---

## Assigning Team Members

How team members are assigned depends on whether the project uses services:

**Without services:** Use the **Members** multi-select on the project form to assign team members directly. Each team member can optionally have a custom project-member rate.

**With services:** Team members are assigned to individual services within the project. Use the service cards in the services section to add members per service. See [Managing Project Services &amp; Rates](https://docs.invup.me/books/projects/page/managing-project-services-rates) for details.

---

## Deleting Projects

Projects can be permanently deleted. This removes the project and all its associated time entries — this action cannot be undone.

### Deleting a single project

1. Open the project detail page.
2. Use the delete action (accessible via the actions menu).
3. Confirm the deletion.

### Bulk deleting projects

1. On the project list, select the projects using the row checkboxes.
2. Open the actions menu and click **Delete**.
3. Confirm the deletion.

You can delete up to 100 projects at a time.

---

## Viewing Project Time Entries

From the project list, you can quickly log time for any project by clicking the time entry icon on the project row. This opens the time entry form with the project pre-selected.

From the project detail page, you can also log time directly via the same icon in the header.

---

## Tips

- **Set a default hourly rate.** Even if you plan to override rates at the team member or service level, a project rate provides a sensible fallback. Without any rate configured, time entries will have no billable value.
- **Use lock dates after invoicing.** Once you've sent invoices for a billing period, set the lock date to the end of that period. This prevents accidental edits to entries that have already been billed — especially useful for firms with many team members logging time.
- **Choose the right project mode.** If your team performs different types of work on a project (e.g., an architecture firm doing both "Schematic Design" and "Construction Administration"), enable services. If all work is billed at the same rate, a simpler non-service project keeps things straightforward.
- **Link projects to clients.** Even if you have just one project per client, the client link helps with reporting and invoicing. If you haven't created the client yet, use the "Create a new client" link right from the project form.

# Managing Project Members & Rates

Every team member who needs to log time to a project must first be assigned to it. This page covers how to add and remove team members on a project, and how to set custom rates at the project level — both for non-service projects (project-member rates) and for service-based projects (project-service-member rates).

---

## Two Modes of Member Assignment

How you assign team members depends on whether the project uses services:

<table id="bkmrk-project-mode-how-mem"><thead><tr><th>Project mode</th><th>How members are assigned</th><th>Rate override level</th></tr></thead><tbody><tr><td>**Without services**</td><td>Directly to the project via the **Members** multi-select</td><td>Project-member rate</td></tr><tr><td>**With services**</td><td>To individual services within the project, via each service card</td><td>Project-service-member rate</td></tr></tbody></table>

Both modes are configured on the project form (create or edit). The **Enable Services** toggle determines which mode is active.

---

## Non-Service Projects: Adding Members Directly

When a project does not use services, team members are assigned directly.

1. Open the project (create or edit).
2. In the **Members** multi-select, choose the team members who should have access to this project.
3. Click **Save** (or **Create Project** if creating).

Selected team members can immediately log time to this project. To remove a team member, deselect them from the **Members** multi-select and save.

### Setting project-member rates

When you add team members to a non-service project, a **Member Rate** table appears below the member selector. Each selected team member gets a row with a **Hourly Rate (/hr)** input.

This rate — the **project-member rate** — overrides both the project's default rate and the team member's base rate when they log time to this project. It's the most specific rate available on non-service projects.

If you leave a team member's rate blank, the input shows a placeholder indicating which rate will apply instead:

- **"Project rate: X/hr"** — if the project has a default rate
- **"Base rate: X/hr"** — if the project has no rate, but the team member has a base rate

The description above the table explains: *"Rates here take priority. If empty, the project's hourly rate is used. If the project has no rate, the member's base rate applies."*

### Where project-member rates fit in the rate hierarchy

For non-service projects, the [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy) is:

<table id="bkmrk-priority-rate-level-"><thead><tr><th>Priority</th><th>Rate level</th><th>Source</th></tr></thead><tbody><tr><td>1</td><td>**Project-member rate**</td><td>The rate you set in the Member Rate table</td></tr><tr><td>2</td><td>Project rate</td><td>The project's default Hourly Rate field</td></tr><tr><td>3</td><td>Member base rate</td><td>The team member's organization-level base rate</td></tr></tbody></table>

---

## Service-Based Projects: Adding Members Through Services

When a project uses services, team members are assigned to specific services within the project — not to the project directly. A team member might be assigned to "Tax Advisory" and "Bookkeeping" but not "Audit" on the same project.

Member assignment on service-based projects is managed through the service cards on the project form. For step-by-step instructions, see [Managing Project Services &amp; Rates](https://docs.invup.me/books/projects/page/managing-project-services-rates).

### Setting project-service-member rates

Each service card on the project form shows the team members assigned to that service. Each team member has a **Hourly Rate (/hr)** input where you can set a custom rate for that specific team member on that specific service within this project.

This is the **project-service-member rate** — the most granular rate level in Invup. It overrides every other rate in the chain.

[![Admin - Project Services.png](https://docfiles.invup.me/uploads/images/gallery/2026-03/scaled-1680-/admin-project-services.png)](https://docfiles.invup.me/uploads/images/gallery/2026-03/admin-project-services.png)

### Where project-service-member rates fit in the rate hierarchy

For service-based projects, the [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy) checks these levels:

<table id="bkmrk-priority-rate-level--1"><thead><tr><th>Priority</th><th>Rate level</th><th>Source</th></tr></thead><tbody><tr><td>0</td><td>Non-billable check</td><td>$0.00 if the service is non-billable</td></tr><tr><td>**1**</td><td>**Project-service-member rate**</td><td>**The rate you set per team member on the service card**</td></tr><tr><td>2</td><td>Member-service rate</td><td>Set on the [service detail page](https://docs.invup.me/books/services/page/member-specific-service-rates)</td></tr><tr><td>3</td><td>Project-service rate</td><td>The service card's Service Rate field</td></tr><tr><td>4</td><td>Service base rate</td><td>The service's default rate</td></tr><tr><td>5</td><td>Project rate</td><td>The project's default Hourly Rate</td></tr><tr><td>6</td><td>Member base rate</td><td>The team member's organization-level base rate</td></tr></tbody></table>

---

## Removing Members

### From a non-service project

Deselect the team member from the **Members** multi-select and save. Their project-member rate is removed along with the assignment.

### From a service-based project

Remove the team member from the individual service card. If a team member is assigned to multiple services, you need to remove them from each service separately.

Removing a team member from a project does not delete their existing time entries — those entries remain in the project's history.

---

## When to Use Project-Level Rate Overrides

**Use project-member rates when** a team member should be billed at a different rate on a specific project than their base rate. This is common when different clients have different negotiated rates — for example, a consulting firm might charge a senior consultant at $275/hr for most clients but at $225/hr for a long-standing client's project.

**Use project-service-member rates when** the override needs to be specific to both the team member and the type of work. For example, an architecture firm might charge a principal architect at $300/hr for "Schematic Design" but $250/hr for "Construction Administration" on the same project.

**Rely on defaults when** all team members on a project should be billed at the same rate. Set the project's default hourly rate and skip individual overrides — simpler to manage and less prone to configuration errors.

For a complete explanation of how rates are resolved, see [Understanding the Rate Hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy).

# Managing Project Services & Rates

Projects in Invup can optionally use **services** to categorize the types of work being tracked — for example, "Design", "Development", or "Consulting". When services are enabled on a project, each time entry must specify which service the work falls under. This page covers how to add and remove services on a project, how to set custom rates at the project-service level, and what happens when a project doesn't use services at all.

---

## Enabling Services on a Project

Every project has an **Enable Services** toggle. When you create or edit a project, this toggle controls whether the project uses services.

- **Enabled**: Team members must select a service when logging time. The rate chain includes service-level rates.
- **Disabled**: Time entries are logged directly against the project with no service breakdown. The rate chain uses project and team member rates only.

[![Admin - Project Services.png](https://docfiles.invup.me/uploads/images/gallery/2026-03/scaled-1680-/admin-project-services.png)](https://docfiles.invup.me/uploads/images/gallery/2026-03/admin-project-services.png)

Once services are enabled and you've added at least one service to the project, you cannot disable the toggle. To switch back to a service-free project, you must first remove all services.

---

## Adding Services to a Project

When services are enabled, you can assign services from your organization's service library to the project. Only services that haven't already been added to this project appear in the selection list.

To add a service:

1. Open the project (create or edit).
2. Ensure **Enable Services** is toggled on.
3. Click the button to add a service and select one from the dropdown.
4. Optionally set a custom rate for this service on this project (see below).
5. Assign team members to the service and optionally set per-member rates.
6. Save the project.

You can add multiple services to a single project. Each service appears as a card showing the service name, a billable or non-billable badge, and fields for rate overrides.

---

## Removing Services from a Project

To remove a service from a project, click the remove button on the service card and save the project.

When you remove a service:

- All team member assignments specific to that service on this project are removed.
- Any existing time entries that referenced the removed service will have their service cleared — the entries themselves are not deleted, but they will no longer be tagged with that service.

A confirmation dialog appears if the service has team members assigned, warning you about the impact.

---

## Setting Project-Service Rates

Each service card on the project has a **Service Rate (/hr)** input. This lets you set a custom hourly rate for this specific service on this specific project — overriding the service's base rate.

For example, if your organization's "Development" service has a base rate of $150/hr, you could set it to $175/hr on a particular project to reflect a different client agreement.

If you leave the rate blank, Invup falls back to the service's base rate (or lower levels in the rate chain) when resolving time entry rates.

### Per-Member Rates on a Service

Within each service card, you can also set individual rates for specific team members. This is the most granular level of rate configuration — a rate for a specific team member on a specific service within a specific project.

Each assigned team member shows a rate input. If left blank, the rate cascades through the [rate chain](https://docs.invup.me/books/time-tracking/page/rate-locking#bkmrk-how-rate-resolution-) to find the next available rate.

---

## How Project-Service Rates Fit into the Rate Chain

When a team member logs time on a service-based project, Invup resolves the hourly rate by checking a prioritized chain of rate sources. Project-service rates sit in the middle of this chain:

<table id="bkmrk-priority-source-desc"><thead><tr><th>Priority</th><th>Source</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>Non-billable check</td><td>If the service is marked non-billable, the rate is $0.00</td></tr><tr><td>2</td><td>Project-service-member rate</td><td>Rate set for this team member on this service within this project</td></tr><tr><td>3</td><td>Member-service rate</td><td>Rate set for this team member on this service (organization-wide)</td></tr><tr><td>4</td><td>Project-service rate</td><td>Rate set for this service within this project</td></tr><tr><td>5</td><td>Service base rate</td><td>The service's default hourly rate</td></tr><tr><td>6</td><td>Project rate</td><td>The project's base hourly rate</td></tr><tr><td>7</td><td>Member base rate</td><td>The team member's organization-level base rate</td></tr></tbody></table>

The first non-null rate in the chain wins. A rate of $0.00 is a valid rate and does not fall through to the next level.

For a full explanation of how rate resolution works, see [Rate Locking — How Rate Resolution Works](https://docs.invup.me/books/time-tracking/page/rate-locking#bkmrk-how-rate-resolution-).

---

## Service-Free Projects

When the **Enable Services** toggle is off, the project operates without services. In this mode:

- Time entries are logged directly against the project — there is no service field.
- Team members are assigned directly to the project (not through services).
- The rate chain is simpler, using only project-member, project, and member base rates.

<table id="bkmrk-priority-source-desc-1"><thead><tr><th>Priority</th><th>Source</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>Project-member rate</td><td>Rate set for this team member on this project</td></tr><tr><td>2</td><td>Project rate</td><td>The project's base hourly rate</td></tr><tr><td>3</td><td>Member base rate</td><td>The team member's organization-level base rate</td></tr></tbody></table>

Service-free projects are a good fit when you don't need to break down time by activity type — for example, a fixed-scope project where all work is billed at the same rate.

---

## Summary

<table id="bkmrk-mode-services-requir"><thead><tr><th>Mode</th><th>Services required on time entries</th><th>Rate chain levels</th><th>Team member assignment</th></tr></thead><tbody><tr><td>Services enabled</td><td>Yes — each entry must specify a service</td><td>7 levels (includes service-specific rates)</td><td>Through services — members are assigned to specific services on the project</td></tr><tr><td>Services disabled</td><td>No — entries tracked directly against the project</td><td>3 levels (project and member rates only)</td><td>Direct — members are assigned to the project</td></tr></tbody></table>