Good morning, Daniel
11 tasks assigned, and last week's timesheet is still unsubmitted.
Needs doing
3 openMy tasks
What is assigned to you, on which project, and what it is worth.
Assigned to me
| Task | Project | Due | Estimate | Logged | Status |
|---|---|---|---|---|---|
| Design review | Riverside migration | 02 Sep | 6.0 | 0.0 | Not started |
| Data mapping | Riverside migration | 05 Sep | 12.0 | 8.5 | In progress |
| Client access setup | Northgate rollout | 29 Aug | 2.0 | 1.0 | Blocked |
| Integration testing | Northgate rollout | 12 Sep | 16.0 | 0.0 | Not started |
| Handover documentation | Kelso upgrade | 19 Sep | 8.0 | 0.0 | Not started |
| Post-launch support | Kelso upgrade | 26 Sep | 4.0 | 0.0 | Not started |
Timesheet
Weekly entry, approved by the project manager, locked once billed.
Week 35, current
| Project | Task | Mon | Tue | Wed | Thu | Total |
|---|---|---|---|---|---|---|
| Riverside migration | Data mapping | 4.0 | 4.5 | - | - | 8.5 |
| Northgate rollout | Client access setup | 1.0 | - | - | - | 1.0 |
| Riverside migration | Design review | - | - | 3.0 | 4.0 | 7.0 |
| Internal | Team meeting | 1.0 | - | 1.0 | - | 2.0 |
| Internal | Training | - | 4.0 | - | - | 4.0 |
Plan
Tasks and milestones against a saved baseline, so slip is measured.
Riverside migration
| Phase | Baseline start | Baseline end | Forecast end | Slip | Progress | Status |
|---|---|---|---|---|---|---|
| Discovery | 12 May 2026 | 06 Jun 2026 | 06 Jun 2026 | 0 | 100% | Complete |
| Design | 09 Jun 2026 | 18 Jul 2026 | 25 Jul 2026 | +5 | 100% | Complete |
| Build | 21 Jul 2026 | 12 Sep 2026 | 19 Sep 2026 | +5 | 62% | Behind |
| Migration | 15 Sep 2026 | 03 Oct 2026 | 10 Oct 2026 | +5 | 0% | Not started |
| Handover | 06 Oct 2026 | 17 Oct 2026 | 24 Oct 2026 | +5 | 0% | Not started |
Capacity
Assigned hours against available hours, before the plan is committed.
42 hrs assigned against 37.5 available
33 hrs assigned
17 hrs assigned - available for work
Next 4 weeks
| Person | Available | Assigned | Load | Billable | Status |
|---|---|---|---|---|---|
| Daniel Novak | 150 | 168 | 112% | 84% | Over-allocated |
| Elena Fischer | 150 | 132 | 88% | 79% | Balanced |
| Tom Ellery | 150 | 141 | 94% | 88% | Balanced |
| Marta Kowalski | 150 | 69 | 46% | 42% | Capacity |
| Sara Duarte | 120 | 108 | 90% | 81% | Balanced |
Margin
Billable value against the cost of delivered hours, per project.
Live projects
| Project | Contract | Cost to date | Billed | Margin | Complete | Status |
|---|---|---|---|---|---|---|
| Riverside migration | $186,000 | $96,400 | $104,000 | 38% | 62% | Healthy |
| Northgate rollout | $94,000 | $68,200 | $52,000 | 18% | 74% | Below target |
| Kelso upgrade | $142,000 | $41,800 | $48,000 | 42% | 31% | Healthy |
| Ashby integration | $62,000 | $49,600 | $44,000 | 12% | 88% | Below target |
| Halden support | $48,000 | $22,100 | $24,000 | 41% | 48% | Healthy |
Rate cards
What each grade costs and what it bills at, per client where it differs.
Standard rate card
| Grade | Cost per hour | Standard rate | Margin | People | Status |
|---|---|---|---|---|---|
| Principal | $68 | $145 | 53% | 2 | Active |
| Senior | $52 | $110 | 53% | 6 | Active |
| Consultant | $38 | $85 | 55% | 11 | Active |
| Analyst | $28 | $62 | 55% | 8 | Active |
| Northgate, discounted | - | -15% | - | - | Client-specific |
Why timesheets lock on billing
An editable timesheet is an invoice you cannot defend. Once time has been billed it becomes part of a commercial record, so corrections are adjustments rather than edits.
- Timesheets are submitted weekly and approved by the project manager
- Approved time locks once billing has run
- Corrections after billing are adjustments, with a reason
- Unsubmitted timesheets block billing and are escalated
- Cost of delivered hours comes from the grade, not a guess
- Every rate change is versioned and dated
Audit log
Every approval, rate change and adjustment. Retained for seven years.
Events
| When | Actor | Action | Target | Source |
|---|---|---|---|---|
| 01 Sep 08:00 | System | Escalated unsubmitted timesheet, week 34 | Daniel Novak | scheduler |
| 31 Aug 17:10 | Claire Dubois | Approved timesheets, week 34 | 8 people | web |
| 29 Aug 11:20 | Claire Dubois | Rebaselined phase, +5 days | Riverside migration | web |
| 22 Aug 09:40 | Lena Brandt | Applied client discount to rate card | Northgate rollout | web |
| 18 Aug 15:00 | Claire Dubois | Posted adjustment to billed time | Ashby integration | web |
Ostervall migration
One project, its money, its risks and its decision.
Ostervall data migration
Sixty-two per cent of the budget spent against forty per cent of the scope. The overrun is entirely in a phase that was scoped before anybody saw the source data.
Where the money went
Risks
What has to be decided
New project
What is being delivered, on what terms, and by when.
The engagement
Estimating basis
Recorded because it predicts the overrun better than anything else here. Phases estimated from a specification run over roughly three times as often as phases estimated from the real thing.
What is created with the project
- A phase per deliverable, each separately budgeted
- A risk register, reviewed at every phase end rather than at the start only
- A change request log, empty and visible
- A margin forecast that updates from timesheets, not from opinion
Reconcile customer records
One task, who is on it and what it has cost.
Estimated at 40 hours from the data dictionary. Seventy-four hours in, with about thirty to go, because the source has four spellings of the same field.
Time by person
Why it overran
Change requests
What changed, who agreed, and what it was worth.
Requests
$84,000 unagreed| Request | Project | Reason | Value | Age | Status |
|---|---|---|---|---|---|
| CR-0142 | Ostervall migration | Source data unlike the dictionary | $44,000 | 0 days | Not raised |
| CR-0138 | Marchetti rollout | Two extra sites added | $28,000 | 24 days | With client |
| CR-0134 | Halvorsen build | Scope clarified after design | $18,000 | 31 days | With client |
| CR-0129 | Marchetti rollout | Training days doubled | $12,000 | 9 days | Agreed |
| CR-0121 | Nordvik integration | API version changed | $8,400 | 2 days | Agreed |
A change request raised at eighteen days is a negotiation. One raised at sixty is an apology. The median here is eighteen and the Ostervall one is at ninety and counting.
Utilisation
Who is billable, who is not, and what that costs.
This quarter
68% billable| Person | Role | Billable | Non-billable | Utilisation | Note |
|---|---|---|---|---|---|
| Rasmus Holt | Senior engineer | 164 | 12 | 93% | No slack |
| Lucia Marchetti | Analyst | 148 | 28 | 84% | Healthy |
| Kian Boyle | Analyst | 96 | 80 | 55% | Bench |
| Astrid Vang | Project manager | 132 | 44 | 75% | Healthy |
| Tomas Reiter | Senior engineer | 158 | 18 | 90% | No slack |
High utilisation on a fixed-price overrun is worse than low utilisation. Those hours are billed to nobody and still count as billable, which is why the unbilled overrun sits on this screen rather than only in the margin report.
Reports: activity
Volume and throughput, by owner and by phase.
Volume over time
12 weeksBillable hours per week. The shape is steady; what changes is how much of it sits on fixed-price work that has already overrun.
By phase
This quarterBy project manager
This quarter| Project manager | Open | Closed | Median days | Overdue |
|---|---|---|---|---|
| Astrid Vang | 9 | $842k | 88 | 1 |
| Bruno Salgado | 8 | $684k | 96 | 2 |
| Hedda Nilsen | 7 | $612k | 104 | 3 |
| Jonas Weiss | 8 | $588k | 118 | 5 |
| Unassigned | 2 | $114k | - | 11 |
Reports: performance
Against target, with the gap named.
Against target by phase
100 is the targetFixed price is not inherently worse. It is worse here because change requests are raised late or not at all, and the two rows are the same story.
What moved
Rule-derivedReports: exceptions
What breached, what is late and what nobody owns.
Exceptions
6 open| Project | Phase | Budget | Spent | Change request |
|---|---|---|---|---|
| Ostervall migration | Data cleansing | $18,000 | $62,000 | Never raised |
| Halvorsen build | Design | $32,000 | $44,000 | 31 days with client |
| Marchetti rollout | Training | $14,000 | $26,000 | Agreed |
| Nordvik integration | Build | $62,000 | $68,000 | Agreed |
| Calderon audit | Discovery | $8,000 | $14,000 | Never raised |
Every overrun here was visible in the timesheets within a fortnight of starting. The ones that were raised were mostly agreed; the ones that were not are simply gone, and they are the larger number.
People
Who has an account, and what they own.
People
32 accounts| Name | Role | Practice | Last active | Status |
|---|---|---|---|---|
| Fredrik Aalto | Administrator | Operations | 14 minutes ago | Active |
| Astrid Vang | Project manager | Delivery | 30 minutes ago | Active |
| Rasmus Holt | Senior engineer | Delivery | 1 hour ago | Active |
| Lucia Marchetti | Analyst | Delivery | 2 hours ago | Active |
| Kian Boyle | Analyst | Delivery | Yesterday | Active |
| Ilona Petrescu | Finance | Finance | 3 hours ago | Active |
Roles
What each role is scoped to and what it may approve.
Roles
5 roles| Role | Type | People | Scope | Can approve to | Status |
|---|---|---|---|---|---|
| Administrator | Built in | 1 | Everything | No limit | Active |
| Project manager | Built in | 5 | Own projects | $10,000 change | Active |
| Member | Built in | 18 | Assigned tasks | - | Active |
| Finance | Built in | 3 | All, read and rates | Any change | Active |
| Client | Custom | 5 | Own project, read | Approves changes | Active |
Recent changes
Why custom roles exist
- A member logs time and cannot see the rate it is charged at
- A project manager raises a change request but cannot approve their own over $10,000
- A client sees their own project only, and approves changes to it
- Nobody can edit a submitted timesheet, only correct it with a visible adjustment
Permissions
Every capability against every role, as enforced.
What each role can do
10 capabilities| Capability | Administrator | Manager | Member | Finance | Client |
|---|---|---|---|---|---|
| View a project | Yes | Own | Assigned | Yes | Own |
| Log time | Yes | Yes | Yes | No | No |
| See charge rates | Yes | Yes | No | Yes | Own |
| See project margin | Yes | Own | No | Yes | No |
| Raise a change request | Yes | Yes | No | Yes | No |
| Approve a change to $10,000 | Yes | Not own | No | Yes | Yes |
| Approve a change above $10,000 | Yes | No | No | Yes | Yes |
| Re-plan a phase | Yes | Yes | No | No | No |
| Edit a submitted timesheet | No | No | No | No | No |
| Read the audit log | Yes | Yes | No | Yes | No |
A member cannot see the rate their hour is charged at. That is a deliberate choice about what a delivery conversation should be about, and it is reversible in one row here.
Notifications
What the system sends, to whom, and when.
What is sent
Quiet hours
Notification rules are yours to set. What is here is a starting point drawn from how the queue actually behaves.
Integrations
Connected systems and their sync history.
Connected
3 connectedWhat breaks without them
- Without timesheets the margin forecast is opinion, and opinion on a fixed-price overrun is always optimistic
- Without accounting the forecast at completion cannot include real costs
- Without the client portal a change request travels by email and ages for a month
- Projects still run; what stops is the early warning
Sync history
Last 24 hours| When | Source | Records | Result |
|---|---|---|---|
| Nightly | Timesheets | 4,120 hours | 9 not submitted |
| Nightly | Accounting | $412,000 invoiced | Posted |
| 06:00 today | Calendar | 32 people | Current |
| Nightly | Timesheets | 3,980 hours | 14 not submitted |
Import and export
Bulk load and extract, with per-row validation.
Import
Validated before anything is written. A file with one bad row imports the rest and tells you which line failed and why.
Export
Recent imports and exports
Last 30 days| When | What | Rows | Result | By |
|---|---|---|---|---|
| 2 Sep 08:40 | Import | 4,120 | Complete | Ilona Petrescu |
| 1 Sep 18:00 | Export | 34 | Complete | Fredrik Aalto |
| 25 Aug 16:10 | Import | 32 | Complete | Fredrik Aalto |