User Guide
Everything you need to plan team capacity, track project labor costs, manage staff schedules, import from Asana, and generate financial reports — all from one dashboard.
System Overview
The Capacitor is a single-page web application that connects your team's availability, project workload, and financial rates into one live view. Data is saved automatically as you type — there is no separate Save button.
How the pages connect
Pages at a glance
| Page | Purpose | Access |
|---|---|---|
| 📊 Dashboard | Live capacity overview, all views, financial reporting, KPI drilldowns | Default home page |
| 📋 Projects | Add, edit, filter, and Asana-import projects | Projects button in header |
| 📅 Gantt | Timeline view, staff assignment to projects, travel/on-site blocks | Gantt button in header |
| 👥 Staff & Teams | Manage team structure, add/edit staff members | Staff button in header |
| 🏛 Clients | Client directory, linked to projects for reporting context | Clients button in header |
| 🗂 History | Saved period-in-time snapshots for historical comparison | History button in header |
Auto-save: Every edit (staff hours, project details, assignments, settings) is persisted to the database automatically within a second. You will see a brief "Saved" indicator flash in the header. There is no risk of losing work by closing the tab.
Key Concepts
Understanding these six terms makes all the numbers across the tool instantly clear.
| Term | Definition | Where it appears |
|---|---|---|
| Available Hours | Working hours in a month based on a person's weekly_hours × the number of working weeks. Can be overridden per person per month. |
Staff Detail → Avail Hrs column |
| PTO Hours | Time-off hours that reduce availability. Entered per person per month in the Staff Detail view. | Staff Detail → PTO Hrs column |
| Effective Capacity | Available Hours − PTO Hours. This is the denominator in the utilization formula. |
Staff Detail → Eff Hrs · Team cards |
| Scheduled Hours | The sum of project assignment hours (auto-prorated from Gantt) + manual hours (entered in Staff Detail for admin, overhead, etc.). | Staff Detail → Sched Hrs column |
| Utilization % | Scheduled Hours ÷ Effective Capacity × 100. The core metric driving all KPI colors, alerts, and financial reports. |
KPI boxes, utilization bars, alerts, Financial |
| Open Capacity | Effective Capacity − Scheduled Hours. Positive = capacity available; negative = overloaded. |
Dashboard header KPI strip |
Utilization color thresholds
| Color | Label | Default range | What it means |
|---|---|---|---|
| ● Grey | Under-utilized | < 70% | Significant open capacity — consider taking on more work |
| ● Green | Healthy / On Target | 70% – 84% | Good productive load, within target range |
| ● Amber | At Risk | 85% – 94% | Approaching capacity limit — monitor closely |
| ● Red | Over Capacity | ≥ 95% | Overloaded — reassign work or add headcount immediately |
All thresholds are fully configurable in ⚙ Settings.
Quick Start
Follow these six steps in order to get meaningful utilization and cost numbers on the dashboard. The whole process takes about 10–15 minutes for a team of 10–20 people.
Optional fine-tuning: In Staff Detail, click any Avail Hrs, PTO Hrs, or Sched Hrs cell to edit it inline. Use PTO to block off vacation; use manual Sched hours for non-project work like admin, training, or overhead.
KPI Boxes
The row of summary boxes across the top of the dashboard gives you an instant read on operational health. Each team box is clickable and opens a detailed breakdown modal.
| Box | What it shows | Click action |
|---|---|---|
| Ops Util | Overall utilization % across all staff — Scheduled ÷ Effective hours. Color-coded green/amber/red. | No click action — use the nav tabs to drill down |
| [Team Name] | That team's utilization %, scheduled hours, effective capacity, and a utilization bar. Colored by the team's assigned color. | Opens Team Breakdown Modal |
| Open Cap | Total unscheduled hours across all staff this month (Effective Capacity − Scheduled Hours). | No click action |
| Labor Cost | Total estimated labor cost this month plus est. billable amount. Only visible when rates are configured. | Jumps directly to the Financial view |
Team Breakdown Modal
Click any team KPI box to open a full-screen modal. It contains three sections:
Dashboard Views
Use the navigation tabs below the KPI row to switch between views. The year/month selector on the right controls which period you're viewing across all views simultaneously.
| View | What you see | Best used for |
|---|---|---|
| Overview | Large Ops utilization gauge, team cards grid with charts and role breakdowns, active projects quick-list (up to 6 projects) | Morning stand-up, executive summary |
| By Team | One card per team with a 12-month utilization bar chart, staff list grouped by role type, and a monthly summary table | Team health review, spotting seasonal peaks |
| Staff Detail | Full table of every staff member with editable Avail/PTO/Sched hour cells, utilization bars, and totals footer | Individual capacity edits, filtering by role or team |
| Weekly View | Capacity bar chart by week, weekly utilization % cards, per-team and per-staff weekly breakdown tables | Short-term scheduling, week-by-week planning |
| Projects | Demand vs. capacity bar chart for the full year, monthly project list with team-hours breakdown | Pipeline planning, spotting demand spikes |
| 💰 Financial | Full financial reporting with six sub-tabs (see Financial section below) | Cost reporting, margin analysis, budget tracking |
| Trends | 12-month utilization line chart by team, quarterly bar chart spanning multiple years, quarterly summary table | Year-over-year planning, quarterly reviews |
| Alerts | Auto-generated alerts by severity: over-capacity staff/teams, under-utilization, missing hours, travel blocks | Daily operations check, risk management |
Staff Detail View
The most granular view — one row per staff member with fully editable capacity cells. This is where you fine-tune individual availability and enter overhead/admin hours.
Editing capacity inline
Click any value in the Avail Hrs, PTO Hrs, or Sched Hrs columns to enter edit mode. Type the new value and press Enter or click elsewhere to save. Changes persist automatically within a second.
Scheduled hours breakdown
The Sched Hrs cell shows two separate components side by side:
| Badge | Source | How to change |
|---|---|---|
| ▶ Nh proj | Hours from Gantt project assignments, prorated to this month's overlap | Go to 📅 Gantt → click Assign on a project |
| +Nh manual | Manually entered overhead/admin hours | Click the Sched Hrs cell here in Staff Detail |
Filtering and grouping
- Use the Team dropdown to show only one team at a time
- Use the Role dropdown to filter by specific roles
- Enable Group by Role to organize rows by role type with colored section headers
- The footer row always shows totals for the currently filtered set only
Travel status indicator
Staff members marked as on-site in a Gantt assignment show a ✈ travel badge next to their name. This is informational only — it does not automatically reduce available hours.
Tip: Combine Team filter + Role filter + Group by Role to audit a specific discipline within one team — e.g., "show me all Delivery Specialists in the North team, grouped by role."
Weekly View
Breaks the selected month into individual week segments so you can see short-term loading patterns and identify bottlenecks before they happen.
Each week is weighted by its number of actual working days — a 3-day holiday-shortened week gets proportionally fewer hours than a full 5-day week. The Weekly View includes:
- Bar chart — Scheduled vs. Available hours side by side for each week
- Utilization % cards — One card per week, color-coded, showing hours breakdown and working-day count
- Weekly team table — Each team's Sched and Avail hours per week with sub-column labels
- Staff weekly detail table — Per-person hours per week; use the team dropdown to narrow the list
Weekly hours are prorated estimates based on monthly totals. They reflect proportional share of working days, not actual week-level scheduling. For precise week-by-week precision, enter manual hours per month and use the Gantt for project-level tracking.
Trends View
Shows longer-range utilization patterns across months and quarters. Use this view for quarterly reviews, annual planning, and spotting seasonal capacity cycles.
12-month utilization line chart
One line per team (colored by team color) plus an Ops Total line. Reference lines mark your Target %, At-Risk %, and Over-Capacity % thresholds. Use the year selector on the right to view any historical year.
Quarterly bar chart
Aggregates quarterly utilization across multiple years. Each bar cluster shows per-team utilization with an Ops total line. Useful for year-over-year comparison at the quarter level.
Quarterly summary table
Tabular view of the current year's quarterly data: per-team utilization %, total scheduled hours, and total effective capacity hours. A totals row aggregates the full Ops picture per quarter.
Alerts
The system auto-generates alerts for the selected month. The alert count badge on the nav tab updates in real time as you change capacity data.
| Severity | Trigger condition | Action recommended |
|---|---|---|
| ⚠ Critical | Staff member or team utilization exceeds the Over Capacity % threshold | Reassign work, add resources, or push out project scope |
| ◐ Warning | Staff member utilization exceeds the At-Risk % threshold | Review upcoming assignments; flag to project manager |
| ℹ Info | Team utilization below 50% (large open capacity), missing team hours on a scheduled project, or a travel/on-site block is active | Consider adding projects, or review project team-hour estimates |
Alerts are read-only indicators — they don't block any actions. Use them as a daily checklist. Resolve an alert by fixing the underlying capacity issue (adjusting hours, reassigning staff, or updating project data) and the alert disappears automatically.
Projects Page
Your pipeline management hub. Access it from the 📋 Projects button in the dashboard header. All projects here feed directly into the Gantt timeline, capacity utilization, and financial calculations.
Adding a project manually
Project statuses
| Status | Meaning | Shown in Active Projects? | Included in utilization? |
|---|---|---|---|
| Scheduled | Confirmed and upcoming | Yes | Yes |
| In Progress | Currently active | Yes | Yes |
| Completed | Finished | No | No (excluded) |
| On Hold | Temporarily paused | No | No (excluded) |
| Backlog | Proposed / not yet confirmed | No | No (excluded) |
| Cancelled | Cancelled | No | No (excluded) |
Filtering the project list
- Use the status filter pills at the top to show only projects of a specific status
- Use the search bar to find projects by name or client
- Use the Team dropdown to show only projects with hours assigned to a specific team
- Use the Sort dropdown to order by Start Date, Name, or Estimated Hours
Asana CSV Import
Import a batch of projects directly from Asana's CSV export in four guided steps. Click ↑ Import from Asana in the top-right corner of the Projects page.
Step 1 — Export from Asana
.csv file automatically.
.csv onto the upload zone, or click the zone to open a file browser. A green confirmation message appears when the file is parsed successfully.
Don't have an Asana export? Click ↓ Download sample CSV template in the upload step to get a correctly formatted example file you can fill in with Excel or Google Sheets and import back.
Step 2 — Column mapping
The importer auto-detects standard Asana columns. A ✓ auto-detected badge confirms each match. For any field the importer missed, use the dropdown to manually assign the correct CSV column.
| Our field | Auto-detected Asana column names | Required? |
|---|---|---|
| Project Name | Task Name, Name, Project Name | Required |
| Client | Client, Account, Company, Organization | Optional |
| Start Date | Start Date, Planned Start | Recommended |
| End / Due Date | Due Date, End Date, Deadline, Completion Date, Planned Finish | Recommended |
| Status | Section/Column, Stage, Status, Phase | Optional |
| Location | Location, Site, Venue, City | Optional |
| Estimated Hours | Estimated Hours, Effort (hrs), Story Points | Optional |
| Budget ($) | Budget, Contract Value, Fee | Optional |
| Notes | Notes, Description, Details, Comments | Optional |
Step 3 — Preview & select rows
Review every parsed row before committing. The preview table shows:
- Checkbox — check/uncheck individual rows to include or exclude them
- ⚠ Duplicate warning — rows with the same name as an existing project are flagged in amber and deselected by default; re-check to import anyway
- Warnings column — flags rows missing a start or end date
- Auto status mapping — Asana stage names are automatically translated (e.g., "Done" → Completed, "In Progress" → In Progress, "Backlog" → Backlog)
- Select All / Deselect All buttons for batch control
Step 4 — Done
After clicking Import Selected, a results screen shows how many projects were imported and any per-row error messages. A ← Back to Preview button lets you retry failed rows. Successfully imported projects immediately appear in the pipeline with status Scheduled (unless Asana mapped to a different status).
After import: Imported projects have no staff assignments yet. Go to 📅 Gantt to assign staff and set individual hour allocations. Also review and set team-level estimated hours on each imported project if they weren't in the CSV.
Gantt & Staff Assignments
The Gantt page is where project timelines are visualized and staff hours are allocated. This is the primary driver of utilization numbers on the dashboard.
Reading the Gantt chart
Each row represents one project. The colored bar spans the project's start-to-end dates. The bar color reflects the project's status. Hover over a bar for date details and estimated hours. Projects are sorted by start date by default.
Assigning staff to a project
Hour proration explained: If you assign 90 hours to a 3-month project, the system allocates hours proportional to calendar overlap. A month that covers half the project period receives ~45 hours. A month that only overlaps for 10 of 30 project days receives ~10 hours (⅓ of a month's share).
Budget progress bar
The assignment modal shows a progress bar comparing total assigned hours vs. the project's estimated hours. Going over budget turns the bar red. This is a visual indicator only — it does not block saving.
Financial View
Access via the 💰 Financial tab on the dashboard nav bar, or click the Labor Cost KPI box. The Financial view has six sub-tabs covering different angles of cost and revenue data.
Prerequisites for financial data:
1. Labor rates must be set in ⚙ Settings → Labor Rates by Role Type.
2. Each staff member needs a Role Type field set in 👥 Staff.
3. Staff must be assigned to projects via the 📅 Gantt page.
Without all three, financial figures will show zero.
Annual KPI strip
Always visible at the top of all Financial sub-tabs for the selected year:
| KPI | Formula |
|---|---|
| Annual Labor Cost | Σ (scheduled hours × cost rate) for all staff across all 12 months |
| Est. Annual Revenue | Σ (scheduled hours × bill rate) for all staff across all 12 months |
| Gross Profit | Est. Revenue − Labor Cost |
| Gross Margin | (Gross Profit ÷ Est. Revenue) × 100 |
| Total Sched Hrs | Sum of all scheduled hours across all staff for the selected year |
Financial — Overview Tab
The default Financial sub-tab. Shows annual trends and a role-type breakdown for the selected month.
- Monthly Labor Cost vs. Est. Revenue chart — Dual bars (amber = cost, purple = revenue) for all 12 months, with a green Margin % line on the right axis
- Role-type breakdown table — For the selected month: headcount, scheduled hours, labor cost, est. revenue, gross profit, and margin % per role type
Change the year selector on the right to view any historical year in the Overview chart. The role-type table always reflects the currently selected month.
Financial — By Project Tab
Project-level financial breakdown for all projects with assigned hours. Sorted by labor cost descending.
The horizontal bar chart shows each project's Labor Cost and Estimated Revenue visually. The table below provides the full detail:
| Column | What it means |
|---|---|
| Assigned Hrs | Actual total hours assigned to this project via Gantt |
| Est. Hrs | Estimated hours from the project record |
| Hours Variance | Est. Hrs − Assigned Hrs (green = under estimate, red = over) |
| Labor Cost | Assigned Hrs × cost rate (weighted by role mix) |
| Budget | Project budget entered in the project record |
| Budget Variance | Budget − Labor Cost (red + ⚠ if over budget) |
| Est. Revenue | Assigned Hrs × bill rate (weighted by role mix) |
| Margin | (Revenue − Cost) ÷ Revenue × 100 |
Projects without a Budget field set will show a blank Budget Variance. Enter a budget in the project record (📋 Projects → ⋯ Edit) to enable budget tracking.
Financial — By Team Tab
Shows how labor cost and revenue are distributed across your teams, both monthly and in a summary table.
- Stacked monthly bar chart — Each team's cost as a colored segment per month, plus an Estimated Revenue bar for comparison
- Team summary table (selected month) — Team name, staff count, scheduled hours, labor cost, est. revenue, gross profit, and margin % per team
Use this tab to identify which teams have the highest cost concentration and whether revenue tracks cost at a team level.
Financial — Margin Analysis Tab
Focused entirely on profitability — where margin is strong, where it's at risk, and which projects are consuming budget.
- Gross margin % area chart — Monthly margin trend with reference lines at 30% (target) and 15% (warning)
- Project margin ranking — Horizontal bars showing each project's gross margin %, sorted from highest to lowest. Red bars indicate projects below your target margin.
- Budget health panel — Progress bars showing what % of each project's budget has been consumed by labor cost. Bars turn red when over 100%.
Financial — Monthly Cost Tab
A detailed snapshot of all labor cost activity for a single selected month. Navigate to it via 💰 Financial → 📅 Monthly.
Use the month selector at the top of this tab to switch months independently of the main dashboard month selector. The tab is organized into five sections:
Month KPI strip
Four metrics for the selected month at a glance: Labor Cost, Est. Revenue, Scheduled Hours, and Gross Margin %.
Team cost cards grid
One card per team showing: Team name, labor cost, estimated revenue, scheduled hours, utilization %, and a colored margin bar. Click a card to focus the chart on that team.
Team bar chart
Side-by-side bar chart comparing Labor Cost vs. Estimated Revenue for each team in the selected month. Makes it easy to see which teams are revenue-generating vs. cost centers.
Staff cost table
Every staff member with scheduled hours for this month, sorted by labor cost descending. Columns include:
- Scheduled hours — with project hours and manual hours broken out
- Rate — cost $/h and bill $/h for their role type
- Labor Cost — their individual cost for this month
- Est. Revenue — their revenue contribution for this month
- Margin % — per-person gross margin
A totals footer row summarizes all values for the selected staff set.
Project attribution table
Which projects were active this month and how much of the month's cost they each drove. Columns include prorated cost, hours, revenue, and a visual % of month cost bar showing each project's share of total monthly labor cost.
Use case: At month-end, open this tab to generate a cost summary for client billing. Export the staff table as CSV for payroll reconciliation, or screenshot the project attribution table for your project accounting workflow.
Financial — Month-to-Month Comparison
Pick any two months and see exactly what changed in labor cost, revenue, margin, hours, and utilization. Navigate to it via 💰 Financial → ⇄ Compare.
Selecting months to compare
Two dropdowns at the top select Month A (cyan) and Month B (amber). Default is previous month vs. current month. Click Reset to prev/current to return to defaults.
Delta KPI cards
Five cards show before/after values with color-coded change arrows:
| Metric | ▲ Green arrow means… | ▼ Red arrow means… |
|---|---|---|
| Labor Cost | Cost went down (favorable) | Cost increased |
| Est. Revenue | Revenue went up (favorable) | Revenue declined |
| Gross Margin % | Margin improved (unit: pp) | Margin declined |
| Scheduled Hours | More hours in Month B | Fewer hours in Month B |
| Utilization % | Higher utilization in Month B | Lower utilization in Month B |
12-month sparkline chart
All 12 months rendered as bars. Month A is highlighted in cyan, Month B in amber. A green margin % line shows context — are these months typical or outliers in the year?
Team comparison table
Side-by-side columns for Month A and Month B with Δ (delta) columns for Labor Cost, Scheduled Hours, and Utilization pp. Quickly identifies which team drove a change between months.
Staff comparison table
Same format as the team table but at the individual staff level. Only shows staff members who have cost data in at least one of the two months.
"pp" stands for percentage points — the arithmetic difference between two percentages. A change from 28% to 33% margin is +5 pp, not +5%.
Labor Rates
Labor rates are set per role type in ⚙ Settings. Every financial calculation in the system derives from these two numbers per role.
| Rate field | Used for | Where it appears |
|---|---|---|
| Cost Rate ($/h) | Internal labor cost — what the company pays the employee or contractor per hour | Labor Cost figures throughout Financial, Team modal, exports |
| Bill Rate ($/h) | What is charged to the client per hour of that role type's work | Est. Revenue, Gross Margin calculations throughout Financial |
Each staff member has a Role Type field. The rates for their role type are applied automatically to all their scheduled hours. Staff without a Role Type use the "Other" default rate.
Changing a labor rate updates all calculations instantly because rates are applied at display time, not stored per hour-block. This means historical months will also reflect the new rate retroactively. If you need to track rate changes over time, save a snapshot before updating rates.
Teams & Staff
Manage your organizational structure from the 👥 Staff button in the dashboard header. The page has two tabs: Teams and Staff.
Teams tab
Create and edit teams. Each team requires:
- Name — displayed on all KPI boxes and charts
- Color — used for visual coding on the dashboard, Gantt, and all charts
Deleting a team does not delete its staff members — they retain their team assignment but the team name may appear as unknown on the dashboard until reassigned.
Staff tab
| Field | Purpose | Required? |
|---|---|---|
| Name | Full name — used for initials avatar and all tables throughout the app | Yes |
| Team | Which team this person belongs to | Yes |
| Role | Job title or description — display only, does not affect rates | No |
| Role Type | Determines which labor rate applies. Must match one of the types defined in Settings. | Strongly recommended |
| Weekly Hours | Standard hours per week — used to calculate default monthly available hours. Default: 40 | Yes |
Role Type is the financial bridge. If a staff member has no Role Type set, they default to the "Other" rate which may be $0. Set Role Type for every person to ensure accurate cost reporting.
Clients
The Clients page is a directory of client organizations. Clients are linked to projects for reporting context and can be used to filter project views.
Each client card shows: client name, type (University, Corporate, Government, etc.), location, number of active projects, and total estimated hours across those projects. Use the search field and type filter to locate specific clients quickly.
Adding a client
Click + New Client and fill in the name, type, and optional contact information. Once saved, the client appears in the Client dropdown on the project form.
Snapshots & History
Snapshots capture a point-in-time picture of capacity and utilization data so you can compare periods later without losing current data.
Saving a snapshot
Best practice: Save a monthly snapshot on the last business day of each month. This builds a historical record you can use to demonstrate capacity trends to leadership and to detect recurring patterns (e.g., "Q4 is always at 95% utilization").
Viewing history
Click 🗂 History in the dashboard header. Filter by type or use the search bar to find a specific period. Click any snapshot card to expand the full data record. Snapshots can be deleted or have their note edited at any time.
Settings
Click ⚙ Settings in the dashboard header to expand the settings panel inline. Changes apply immediately.
Utilization thresholds
| Setting | Default | Effect when exceeded |
|---|---|---|
| Target % | 70 | Utilization ≥ Target turns green. Below Target shows as grey. |
| At-Risk % | 85 | Utilization ≥ At-Risk turns amber and triggers a Warning alert. |
| Over Capacity % | 95 | Utilization ≥ Over Capacity turns red and triggers a Critical alert. |
Labor rates by role type
Each role type row shows the role name, a Cost $/h input, and a Bill $/h input. Click any rate field, type the new value, and press Enter or click away to save. See Labor Rates section for the full explanation.
Settings (rates and thresholds) are global — they affect all users accessing the dashboard. Coordinate rate updates with your team, and save a snapshot before making significant rate changes.
Export
Click ↓ Export in the dashboard header to expand the export panel. All exports are based on the currently selected month and year.
| Export type | Contents | File format | Best used for |
|---|---|---|---|
| CSV — Staff Utilization | Every staff member: Avail Hrs, PTO Hrs, Eff Hrs, Sched Hrs, Util %, Labor Cost, Billed Amt | .csv | Payroll reconciliation, HR reporting, capacity audits |
| CSV — Financial Report | Every project: Assigned Hrs, Est Hrs, Labor Cost, Est Revenue, Budget, Budget Variance, Gross Margin % | .csv | Project accounting, client billing, financial review meetings |
| JSON — Full Snapshot | Complete operational data: ops summary, all teams with metrics, all staff keys, all alerts | .json | System integrations, custom reporting pipelines, archiving |
CSV files open directly in Excel or Google Sheets. The first row is always a header row with column names. JSON files contain structured data that can be fed into reporting tools, BI platforms, or imported into other systems.
Formula Reference
Every calculation used in the system, presented for transparency, auditing, and onboarding new users.
Capacity formulas
// working days excludes weekends
// negative = overloaded
Proration formula
// where Overlap Days = days the project is active within the month
Weekly estimate formula
// estimates only — not stored at the week level
Financial formulas
// positive = under budget; negative = over budget
// positive = under estimate; negative = over estimate
All rates, hours, and thresholds are applied at display time, not stored per transaction. This means the system always shows the most current picture based on your current settings. If you need a frozen historical view, use the Snapshot feature.
Frequently Asked Questions
Click any question to expand the answer.
Three most common causes:
1. The project is missing a valid Start Date or End Date. Without dates, hours can't be prorated. Go to 📋 Projects and edit the project to add dates.
2. The project status is not Scheduled or In Progress — Completed, On Hold, Backlog, and Cancelled projects are excluded from active calculations.
3. The assigned hours are for a different time period than the month you're viewing. Check that the project's date range overlaps with your selected month.
Three things to check:
1. Labor rates must be set in ⚙ Settings → Labor Rates. If Cost $/h is 0 for all roles, all cost figures will be zero.
2. Every staff member needs a Role Type assigned in 👥 Staff. Without it they default to the "Other" rate, which may be $0.
3. Staff must have Scheduled Hours — either from Gantt assignments or manual entries in Staff Detail. Zero hours produces zero cost.
Yes. Assign them to each project separately on the Gantt page. Their total project hours are summed and prorated independently across each project's date range. The combined total for each month becomes their "project scheduled hours" for that month, driving their utilization.
Both are added together. Manual hours (shown as +Nh manual) represent overhead, admin, or training; project hours (shown as ▶Nh proj) represent assigned project work. Their sum drives the utilization calculation.
In the Gantt Assignment Modal, check the Travel / On-Site checkbox for that person and enter their travel hours. This flags them with a ✈ on-site badge on the Staff Detail view and generates an info alert for the project period. Note that travel hours are included in the project's total scheduled hours, so they do affect utilization.
Go to ⚙ Settings and update the Cost $/h or Bill $/h for the relevant role type. The change applies immediately across all months and all calculations — including historical data — because rates are applied at display time. If you need to preserve a historical rate, save a snapshot before changing the rate.
A snapshot is a frozen, read-only archive of capacity and utilization metrics for a specific period. The live dashboard always shows current data based on current settings; snapshots let you compare to past states.
Save a snapshot: at the end of each month (monthly snapshot), at end of quarter (quarterly), or whenever you make a major rate or staffing change and want to preserve the "before" state.
In Step 2 of the importer (Map Columns), all CSV column names appear in the dropdown next to each field — including custom fields that weren't auto-detected. Select the correct Asana column from the dropdown and proceed to the preview. Custom fields with unusual names just need this one-time manual mapping.
Not with a single undo action. To remove imported projects, go to 📋 Projects, find each imported project, click the project to open it, and use the Delete action. Imported projects can be identified by their creation timestamp shown in the project detail view.
"pp" stands for percentage points — the arithmetic difference between two percentages. For example, if gross margin was 28% in Month A and 33% in Month B, the change is +5 pp (five percentage points), not +5%.
Weekly hours are estimates derived by prorating each person's monthly hours based on working days. A 5-week month distributes hours across more weeks than a 4-week month. Short weeks (holidays, month boundaries) receive fewer hours proportionally. This is by design — the system doesn't track hours at the week level directly.
Troubleshooting
Quick diagnosis guide for the most common issues users encounter.
| Symptom | Likely cause | Fix |
|---|---|---|
| Utilization shows 0% | No scheduled hours for this person and month | Check Gantt assignments; confirm project dates overlap the selected month |
| Labor Cost shows $0 | No rates set, or staff missing Role Type | Set rates in ⚙ Settings; set Role Type on each staff member in 👥 Staff |
| Project not appearing on dashboard | Project status is not Scheduled or In Progress | Edit the project and change its status to Scheduled or In Progress |
| Utilization shows >100% | Staff is overloaded — more scheduled hours than effective capacity | Reduce manual hours, reduce Gantt assignments, or increase Available Hours |
| Imported project has wrong dates | Asana date format differs from expected format | Edit the project after import; Asana uses MM/DD/YYYY or YYYY-MM-DD formats |
| Save badge shows "Error" | Network issue or database connection problem | Refresh the page; if the error persists, check your internet connection |
| Trends chart shows flat line | No data in the selected year | Confirm the year selector matches when projects and assignments exist |
| Team KPI box not clickable | No staff assigned to that team | Add staff to the team in 👥 Staff → Staff tab |
General rule of thumb: If something looks wrong, check the data flow — Settings → Staff → Projects → Gantt → Dashboard. A gap at any step will produce zeros or unexpected values downstream.