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 each person’s monthly CTC and the project-row hours they enter on My Hours. Bandwidth % is for capacity planning only — it does not split hours for ₹ costing. 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.
  • Timesheet rows — on My Hours, add Project / Pursuit / Leave / Holiday rows and enter hours per day (for example 4 on a half day). Project-row hours drive labor ₹. Fill by end of week if you prefer.
  • Bandwidth % — on the project Financials tab, how much of that person’s capacity is planned for this job (for example 60%). Across all projects, keep the total at or under 100%. Used for staffing views, not for splitting day hours into cost.

How allocation works

Hourly rate = monthly CTC ÷ (working days per month × standard day hours). Hours on a project = timesheet PROJECT hours for that project. Labor cost = those hours × hourly rate. Example: Elena enters 5.1h on Oakridge Tuesday → 5.1 hours costed to Oakridge. Leave and Holiday rows are not costed. Pursuit rows cover BD / pitches and do not hit project labor cost.

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.