Skip to main content

Project profitability with bandwidth and day hours

A practical guide for architecture studio workflows in Beech.

All guides

16 August 2026

Updated 16 August 2026 · Beech Product Education Team

How Beech allocates people cost to projects using monthly CTC, day hours with Work / Leave / Holiday / BD types, and bandwidth percentages — and why timers stay separate from rupee costing.

Intent: Explain project profitability with bandwidth and day hours in a way that a new team member can follow without prior Beech context.

Who this helps: Architecture studio admins, managers, and contributors who need a repeatable operational workflow.

Studios lose margin when the fee is clear but people cost is fuzzy. Beech models project cost from three inputs: each person’s monthly CTC, the hours they mark on My Hours (with a day type), and how much of those hours belongs to each project via bandwidth %. There is no loaded cost multiplier on labor — firm overhead such as rent lives on the ledger as firm expenses.

Three inputs

  • CTC — monthly employer cost for each person, entered under Settings → Finance. This drives hourly rates for job costing. Beech does not generate payslips or salary bank files.
  • Day hours and day type — on the My Hours week grid, enter 8.5 for a full day or 4 for a half day, and choose Work, Leave, Holiday, or BD (business development). Fill by end of week if you prefer.
  • Bandwidth % — on the project Financials tab, how much of that person’s Work day goes to this job (for example 60%). Across all projects, keep the total at or under 100%.

How allocation works

Hourly rate = monthly CTC ÷ (working days per month × standard day hours). Hours on a project = day hours × bandwidth %. Labor cost = allocated hours × hourly rate. Example: Elena logs 8.5 Work hours at 60% bandwidth on Oakridge → 5.1 hours costed to Oakridge. Only Work days are allocated. Leave and Holiday are forced to zero for costing. BD hours may be logged as time worked, but they do not hit project labor cost or billable utilization.

Keep each person’s bandwidth across projects at or under 100%. Over-allocation shows a warning on capacity views and on the manager Financials chip.

Job cost, burn, and utilization

Job cost = labor cost + absorbed project expenses. Pass-through (client reimbursable) expenses stay off job cost but still appear in payables until paid. Expected revenue comes from lump sum, per-sqft, or percent of budget, plus fee variations. Burn % = job cost ÷ expected revenue.

Utilization on the Finance dashboard is available for this month or this quarter. It uses Work hours in the numerator and Mon–Sat capacity minus Holiday days in the denominator — so April no longer looks idle and March no longer looks overbooked just because of the calendar.

Timers are for tasks, not rupees

The global timer dock (pause, multi-task, stop) writes task time logs for effort detail on drawings and tasks. Profitability uses day hours plus bandwidth only — so forgetting a timer no longer breaks the project P&L.

Who sees what, and month end

Managers see burn %, allocated hours, and weeks of fee left — not absolute fee or CTC rupees. Admins see full rupees, billing stages, GST invoices, credit notes, collections, payables, the firm ledger, and a downloadable month-end pack for your CA (invoice register, GSTR-1 style worksheet, sequence gaps, party-wise AR, and a salary cost summary labeled as job costing).

Prerequisites

  • Confirm you can access the project and the page referenced in this workflow.
  • Collect any drawing references, due dates, and ownership details before you start.

Expected outcome

By the end of this workflow, your team has one visible, repeatable process and cleaner handovers.

Common mistakes and prevention

  • Mistake 1: Skipping context fields (owner, due date, status notes), which makes follow-up harder.

  • Mistake 2: Treating chat updates as source of truth instead of recording the update in Beech.

Troubleshooting checklist

  1. 1
    Troubleshooting step 1

    If a control is missing, verify your role has permission for the action.

  2. 2
    Troubleshooting step 2

    If results look wrong, check filters and refresh to confirm latest synced data.