Skip to content

Projects (Prosjekter)

The Projects module lets you manage project-based work — track materials, log time, link supplier invoices, and generate customer invoices directly from your project data. Built for tradespeople, consultants, and service companies who need to know what a project costs, what to bill, and what the margin is.

Creating a Project

  1. Click Projects in the sidebar
  2. Click + New Project
  3. Fill in the form:
    • Project name — a descriptive name (e.g., "Bathroom renovation — Olsen")
    • Customer — search and select an existing client from your client register
    • Description — optional project description
    • Billing type — how you'll invoice the customer:
      • Time and materials — bill for actual hours worked + materials used (with markup)
      • Fixed price — a quoted amount agreed with the customer upfront
      • By agreement — custom terms between you and the customer
    • Budget — shown when billing type is "Fixed price"; sets a budget cap so you can track how much you've spent vs. quoted
    • Default markup — percentage added on top of material purchase prices to calculate the customer price (default: 20%)
    • Default hourly rate — what you charge the customer per hour (pre-filled from your company settings)
    • Internal hourly cost — what an hour actually costs your company (salary + employer taxes + overhead). Used to calculate real margin on labor — the customer never sees this number
    • Reference / PO — customer's purchase order number or reference
    • Project address — where the work is being done
    • Notes — internal notes for your team
  4. Click New Project to create

The project starts in Tilbud (Draft) status and gets an auto-generated number like PRJ-0001.

Project Statuses

Projects move through a lifecycle:

StatusMeaning
Tilbud (Draft)Project is quoted/proposed but work hasn't started.
Aktiv (Active)Work is in progress. Materials can be added, time can be logged.
Fakturering (Invoicing)Work is done. You're generating invoices for the customer.
Ferdig (Done)Everything is invoiced and the project is complete.
Kansellert (Cancelled)Project was cancelled. Unpaid invoices are auto-cancelled; paid invoices are kept as history.

Changing Status

Click the status badge on the project detail page to see the available status transitions. A dropdown appears showing which statuses you can move to from the current one.

Allowed transitions

  • Draft → Active, Cancelled
  • Active → Invoicing, Done, Cancelled
  • Invoicing → Active (reopen), Done, Cancelled
  • Done → Active (reopen, with confirmation), Cancelled
  • Cancelled → Draft, Active

What happens when you cancel a project

When you cancel a project:

  • All unpaid linked invoices (Draft, Sent, Viewed, Overdue, Reminded, Collection Warning) are automatically set to Cancelled
  • Paid invoices are kept as-is — money doesn't un-pay itself
  • Credited invoices are also kept untouched
  • Each cancelled invoice gets an entry in its history timeline explaining why it was cancelled

The Project Detail Page

The project detail page is the central hub for managing a project. It shows:

  • Back arrow — returns to the project list
  • Project name and project number (PRJ-XXXX)
  • Customer name — clickable link to the client's detail page
  • Status badge — click to change status
  • Edit button — opens the edit form
  • + Create Invoice button — opens the invoice generator

Finance Summary Cards

Four cards showing the project's financial health at a glance:

CardWhat it shows
CostTotal cost of all purchased materials (all purchased, not just used — this is real cash spent)
RevenueTotal billable amount (used materials × customer price + hours × hourly rate). The card shows a stacked bar split into the cost portion and the margin portion — hover over the bar to see the cost breakdown without leaving the overview.
MarginRevenue minus cost, with percentage. Shows whether the project is profitable. A negative margin means you've spent more than you've billed.
InvoicedAmount already invoiced vs. total billable. Shows how much work is billed and how much remains.

If you set a budget on the project, a fifth card appears showing a progress bar with how much of the budget has been used.

Tabs

The detail page has four tabs:


Materials Tab

Track materials purchased for the project and what you bill the customer.

Adding a Material

Click + Add Material to open the inline form:

FieldDescription
MaterialName of the material (e.g., "Green Paint")
CategoryOptional grouping (e.g., Paint, Lumber, Plumbing, Electrical)
UnitMeasurement unit: pcs, liter, meter, kg, m², pack, box, roll
Quantity purchasedHow many units you bought
Quantity usedHow many you actually used on this project (defaults to 0 — fill in later)
Purchase price per unitWhat you paid per unit, excluding VAT
Markup %Percentage added to the purchase price (pre-filled from the project's default markup)
VAT ratePick from the full Norwegian VAT codes (0%, 12%, 15%, 25%). Most physical materials are 25% (standard) or 15% (food). 0% covers exempt/export. The 12% rate is for transport, broadcasting and similar — rare for materials.

The customer unit price is calculated automatically:

Customer price = Purchase price × (1 + Markup% / 100)

For example: 280 kr purchase price × 1.20 (20% markup) = 336 kr customer price.

Inline Editing

The Purchased and Used columns are click-to-edit. Click the number, type a new value, and press Enter to save. Press Escape to cancel. The finance cards update immediately.

Validation: Quantity used cannot exceed quantity purchased. If you try, an error message appears.

Material Costs and Margin

The table footer shows running totals:

  • Purchase total — total cash spent on all purchased materials (all units, not just used)
  • Customer total — total billable based on what was actually used
  • Margin — customer total minus purchase total

If you bought more than you used, the margin may be negative. The Unused inventory warning (in orange) shows how much of the cost is leftover material sitting on your shelf. If you reuse it on a future project, that cash is recovered.

Editing and Deleting

Each material row has a pencil icon (edit) and a trash icon (delete). Both are only available on uninvoiced materials. Once a material has been invoiced, it's locked.


Time Tab

Log hours worked on the project.

Adding a Time Entry

Click + Log Time to open the inline form:

FieldDescription
DateWhen the work was done
HoursHow many hours (max 24 per entry)
DescriptionWhat work was done (optional but recommended)
Hourly rateWhat the customer pays per hour (pre-filled from the project's default hourly rate)

Understanding Hourly Rates

  • Default hourly rate (set on the project) — what the customer pays. Shows on the invoice.
  • Internal hourly cost (set on the project) — what the hour costs your company. Used to calculate real margin. The customer never sees this.

Example: You charge the customer 400 kr/hour, but your employee costs you 360 kr/hour (salary + employer taxes + overhead). Your real margin is 40 kr/hour.


Invoices Tab

Shows all invoices generated from this project.

ColumnDescription
NumberInvoice number (e.g., INV-0023)
TypePartial or Final
DateWhen the invoice was created
AmountTotal invoice amount
StatusDraft, Sent, Paid, etc.

Click a row to open the invoice in the standard invoice detail view.

Click + Create Invoice from Project to open the invoice generator.


Supplier Invoices Tab

Link existing received (incoming) supplier invoices to the project. This helps you track project costs and know which supplier invoices relate to which project.

Linking a Supplier Invoice

  1. Click + Link Supplier Invoice
  2. A modal opens with a searchable list of all your received invoices
  3. Click one to link it
  4. Optionally add a note (e.g., "Paint order from Fargerike")

Unlinking

Click the × button on a linked supplier invoice to remove the link. This does not delete the supplier invoice itself — it just removes the association with this project.


Generating Invoices from a Project

Click + Create Invoice on the project detail page (or + Create Invoice from Project on the Invoices tab) to open the invoice generator.

How It Works

The generator shows two columns:

Left side — Selection checklist:

  • Materials section: all uninvoiced materials with quantity used > 0, each with a checkbox
  • Time section: all uninvoiced time entries, each with a checkbox
  • Each section has a Select all master checkbox
  • Items that have already been invoiced don't appear here

Right side — Live preview:

  • Shows line items, subtotal, VAT (25%), and total
  • Updates in real-time as you check/uncheck items
  • Material lines show customer-facing info only (name, quantity used, customer price) — purchase price and markup are never shown to the customer

Two Actions

ButtonWhat it does
Create InvoiceCreates a draft invoice with the selected items. Project stays in its current status. Use this for interim/partial billing while work continues.
Close ProjectCreates a draft invoice with the selected items AND transitions the project to "Invoicing" status. Opens a confirmation modal first explaining what will happen. Use this when all work is done and you're sending the final invoice.

After Generation

The draft invoice opens in the standard invoice edit view where you can review, modify, and send it. Once you send the invoice:

  • The linked materials and time entries are marked as Invoiced (green badge)
  • They no longer appear in future invoice generation checklists
  • The finance summary's Invoiced amount updates

Duplicate Protection

If you generate a draft invoice but forget to send it, then come back and generate another one — the system automatically cleans up the old orphaned draft. You'll never end up with duplicate draft invoices for the same items.


Project Settings Defaults

Go to Settings → Payment to configure default values that pre-fill when creating new projects:

SettingDescription
Default project markup %Standard markup applied to material purchase prices. Can be overridden per project.
Default hourly rateStandard customer-facing hourly rate. Can be overridden per project or per time entry.

These save time when creating multiple projects with similar pricing structures.

Project Templates

If you run similar projects repeatedly (e.g. "Standard bathroom renovation", "Annual service contract"), save one as a template to skip the setup the next time.

  • Open an existing project and click Save as Template
  • When creating a new project, pick the template from the dropdown — billing type, markup, hourly rate, and notes pre-fill
  • You can still edit any field before saving the new project

Templates only carry the project shell — they don't copy materials, time entries, or invoices.

Detailed List View

The Projects list has a Detailed view toggle in the top-right that switches each row from a compact summary to a fuller card showing per-project finance numbers (cost, revenue, margin, invoiced) at a glance. Useful when you want to scan financial health across projects without opening each one.


Managing Projects from the List

The project list shows all your projects with financial summaries per row.

3-Dot Menu

Each project row has a menu with:

ActionDescription
ViewOpens the project detail page
EditOpens the project edit form
Cancel ProjectCancels the project and auto-cancels unpaid linked invoices. Paid invoices are preserved. Shows a confirmation dialog.
DeletePermanently deletes the project. Only available if no materials/time entries have been invoiced and no invoices have been sent. The safer option is usually to cancel instead.

Filters

Use the status filter buttons at the top to show only projects in a specific status (All / Draft / Active / Invoicing / Done / Cancelled).

Use the search field to filter by project name, number, or reference.

Summary Cards

Three summary cards above the list show:

  • Active Projects — count of projects with Active status
  • Total Uninvoiced — sum of remaining unbilled amounts across all non-complete projects
  • Average Margin — average margin percentage across active/invoicing projects

Built for Norwegian businesses