Download

Project Cost Tracker

One row per piece of work. The summary at the top updates as you add rows, and shows the two margins side by side.

Download the CSV

CSV, 2 KB. Opens in Excel, Numbers, Google Sheets or LibreOffice. No sign-up, no email address.

Before you start

The summary block sits above the table on purpose, so it is never inside the ranges it sums. Add rows below the sample data and the totals pick them up.

What is in it

Column What it holds
Client Who the work is for.
Engagement The project or retainer it belongs to. Cost rolls up here.
Work item One piece of work, small enough that one person does it.
Scope Planned or Additional. Set it when you create the row, not later.
Person Who is doing it.
Compensation model Per unit, per hour, per task, or a period rate. Whatever is true for that person.
Quantity and Rate Whatever the model measures. Cost multiplies them.
Cost Calculated. Leave the formula alone.
Status Open, Approved or Paid. This is what splits the three cost figures.
Date approved When somebody accepted the work. Useful later for arguing about timelines.

The arithmetic

Already in the file. Here so you can check it rather than take it on trust.

Pending cost exposure

SUMIF(Status, "Open", Cost)

Approved cost

SUMIF(Status, "Approved", Cost)

Confirmed margin

Agreed client value - Approved cost

Exposure margin

Agreed client value - Approved cost - Pending cost exposure

How to use it

Three habits make the difference between a tracker that works and one that gets abandoned in week three.

Log work when it happens, not at the end

A row you have to reconstruct from memory gets left out, and the ones that get left out are disproportionately the small unplanned ones. Those are the rows that explain where the margin went.

Set the scope flag at creation

Planned or Additional, decided by whoever creates the row, at the moment they create it. Deciding retrospectively turns into a negotiation with yourself, and the answer drifts towards Planned.

Move Status forward deliberately

Open means the work exists but nobody has accepted it. Approved means somebody with authority said it was good. Paid means money left. Those are three separate events and the sheet is only useful if they stay separate.

Look at exposure margin rather than confirmed margin while a project is live. Confirmed margin describes where you have been; exposure margin describes where you are going, and it moves first.

Where a spreadsheet stops

Being straight about this is more useful than pretending otherwise. A tracker like this holds up well until one of these becomes true:

  • More than one person maintains it. Two people editing the same sheet produces two versions of the truth within a week.
  • The people doing the work are not the people updating it. Every hop between doing and recording is a place where things get missed.
  • You need to know who approved something. A status column records that it happened, not who decided or when they decided it.
  • Rates change. Editing a rate in a sheet silently re-prices historical work, so last quarter's numbers change under you.
  • You have more than a handful of engagements. Cost per engagement is easy; cost per client across eight engagements in three currencies is not.

None of these means the spreadsheet was wrong. They mean the operation grew past what a spreadsheet is for.

How Bikabo does this

When the spreadsheet starts costing more than it saves.

This works, and plenty of businesses run on exactly this for years. What it cannot do is update itself: every row is somebody typing what happened after it happened, which means it is accurate in the first month and behind by the third.

Bikabo produces these same three figures from the work itself. Work is assigned, done, reviewed and approved as part of running the business, and pending, approved and paid cost fall out of that. Nobody maintains a tracker, because there is nothing to maintain.