The Resourcing tool provides a visual timeline for managing how team members are allocated across work items (projects, deals, recruitment). It shows current allocations, approved leave, public holidays, and company events in a single scrollable view with per-person capacity indicators.
- Timeline view — Horizontal date grid with coloured allocation blocks per person
- Zoom levels — Day (14-day), Week (8-week), and Month (6-month) views
- Squad grouping — Person rows grouped by squad with collapsible headers
- Capacity bars — Per-person utilisation bars showing green/amber/red based on allocation percentage
- Filter controls — Filter by squad, role, person, or project independently or combined
- Date navigation — Prev/next navigation and “Today” shortcut at all zoom levels
- Leave overlay — Approved leave requests shown as red read-only blocks
- Holiday dimming — Public holidays dim the background of affected day cells (Day view)
- Events overlay — Company events shown as dashed gray read-only blocks
| Level | Columns | Navigation step |
|---|
| Day | 14 individual days (2 weeks) | ±14 days |
| Week | 8 Mon–Sun week ranges | ±8 weeks |
| Month | 6 calendar months | ±6 months |
The default zoom level is Week. The anchor date is stored in the URL as ?from=YYYY-MM-DD.
All filters are applied client-side and can be combined:
| Filter | Description |
|---|
| Squad | Show only people in the selected squad |
| Role | Show only people with the selected role template |
| Person | Show only a specific person |
| Project | Show only people with at least one allocation on the selected project |
Dropdown options are populated from the data returned for the current date range. Selecting “All …” from any dropdown clears that filter.
| Block type | Colour | Notes |
|---|
| Project allocation | Blue (--chart-1) | Solid fill + left border |
| Deal allocation | Yellow (--chart-4) | Solid fill + left border |
| Recruitment allocation | Purple (--chart-2) | Solid fill + left border |
| Leave | Red (--chart-6) | Read-only; sourced from approved leave requests |
| Company event | Gray (--chart-7) | Dashed border, low opacity; read-only |
| Public holiday | Muted background | Dims the day column (Day view only) |
The capacity bar in the left person panel shows utilisation for the visible date range:
| Fill colour | Utilisation | Meaning |
|---|
| Green | < 80% | Under-allocated |
| Amber | 80–99% | Near capacity |
| Red | ≥ 100% | At or over capacity |
| Red hatching | > 100% | Over-allocated (diagonal stripe pattern) |
Utilisation is calculated as: allocated hours / target hours × 100%
Target hours accounts for working days (Mon–Fri minus public holidays and approved leave) multiplied by daily capacity (weekly capacity ÷ 5).
| Param | Type | Description |
|---|
zoom | day | week | month | Active zoom level (default: week) |
from | YYYY-MM-DD | Anchor date for the view start |
squad_id | string | Filter by squad ID |
user_id | string | Filter by user ID |
template_id | string | Filter by role template ID |
project_id | string | Filter by project ID |
| Component | Location | Purpose |
|---|
ResourcingPage | components/resourcing/resourcing-page.tsx | Page shell: URL state, data fetching, header filters |
ResourcingTimeline | components/resourcing/resourcing-timeline.tsx | Timeline grid with squad groups and allocation blocks |
CapacityBar | components/resourcing/capacity-bar.tsx | Reusable utilisation bar with green/amber/red states |
| Table | Purpose |
|---|
allocations | Per-person work allocations with booking type, reference, date range, hours/day |
leave_requests | Approved leave shown as read-only blocks |
public_holidays | Dates that dim the timeline background |
events | Company events shown as dashed overlay blocks |
| Level | View | Update (create/edit allocations) | Manage (delete) |
|---|
| Executive | All | Yes | Yes |
| Head | All | Yes | No |
| Manager | Own + squad | Yes | No |
| Lead / Employee | Own | No | No |