Capacity & Hiring Dashboard PROTOTYPE

Horizon (next 12 months from current month)

View (toggle)

Summary (updates live)

Signed utilisation
Team-avg on signed work
Pipeline-weighted
If all probables land
Over-allocated
Person-months > max FTE
Bench
Person-months < 0.7× max

Allocation grid rows = employees 0.5Signed +0.3Probable +0.2Not-probable

Unresourced signed projects (flag)

What this means for the next 12 months (Claude)

Save view

Saved views

Edit FTE allocations live. Each value is the share of a person's time on that project in that month (0 – 2.0). Changes flow back to the dashboard and persist in this browser. Cells outside a project's dates are locked; change the status dropdown to reclassify a project as signed, probable, or not probable.
Data source: 8 fictitious employees + 3 subcontractors (shared with the pricing tool), 14 projects across signed and pipeline stages, 12-month horizon. Employees shaped like Xero Payroll GET /Employees; subcontractors shaped like the pricing tool's nominated-day-rate records. Signed projects shaped like Xero Projects GET /Projects; pipeline opportunities shaped like a generic CRM object. Scopes required: projects.read, payroll.employees.read. Pipeline data in a real build would come from a CRM (HubSpot, Pipedrive) or a maintained spreadsheet — Xero doesn't model opportunity probability natively. Narrative layer is deterministic in this prototype; a production version calls the Anthropic Messages API with the capacity context. Saved views persist in browser localStorage (single-browser only).

Project Pricing Model PROTOTYPE

Project (dates drive working days)

Project working days:

Cost loadings

Billable days/yr: · Loaded salary multiplier: (260 weekdays − 10 avg pub hols − leave − non-billable)

Team (tick to add, set FTE)

Name Salary
Ex Super
Daily CoS
(Loaded)
FTE Days Price
(Ex GST)

Subcontractors (nominated daily cost, own margin)

GP Margin (applies to employees)

35%
Price to Client (Ex GST) $0
Cost of Sales
$0
Margin $
$0
Total Days
0
Eff. Avg Daily Rate
$0

Save this quote

Saved quotes

Data source: 8 fictitious employees (shared with the capacity and profitability tools), shaped like a Xero Payroll GET /Employees response. Swap the EMPLOYEES constant with a real API call to go live (scope: payroll.employees.read). Public holidays computed in-browser for NSW/VIC/QLD/WA/SA/TAS/ACT/NT including Easter-derived dates. Saved quotes persist in browser localStorage (single-browser only).

Client Profitability Panel PROTOTYPE

Companion to the Project Pricing Model. Xero knows what was invoiced. This knows what it cost to serve.

Cost loadings (flex and every client's GP recalcs) Show

Period (applies to every number below — drill-downs keep a life-to-date column as well)

Portfolio (life to date · click a row to drill in)

Client Revenue Labour Expenses GP $ GP % Hours Eff. $/hr
v1 data source: 6 fictitious consulting-firm clients (startup-tech mix), 8 employees (shared with the pricing tool), 9 projects, ~150 time entries, ~25 invoices, ~15 tracked expenses — all shaped like Xero API responses. Swap each CONST at the top of the script with a real API call to go live. Scopes required: accounting.contacts.read, accounting.transactions.read, projects.read, payroll.employees.read. Period views (Monthly · YTD · Life-to-Date) filter invoices, time, and expenses by Date / DateUtc; project-level GP always also carries its life-to-date alongside the selected period. The narrative layer is deterministic in this prototype; a production version posts the client's numerical context to the Anthropic Messages API and renders the response.