Profit, additional costs and totals

On this page
  1. From resources to the grand total
  2. Additional costs
  3. Profit
  4. Worked example
  5. How to set additional costs or profit on one position
  6. How to set the same profit or additional costs on many positions
  7. How the Report sums several positions
  8. Where totals appear
  9. Material and labor split in the export
  10. Checking for inconsistent prices
  11. Common questions
  12. Related
WhereBoQ editor → Resource analysis (Ресурсен анализ) panel → cost summary (additional costs % and profit %); totals in the grid and the header Total value (Обща стойност). URLs /projects/{project}/drafts/{boq}, /projects/{project}/offers/{boq}
Who canSetting additional costs and profit: project permission Resource analysis (Ресурсен анализ) at Edit (paid plan or trial). Seeing totals: Offers (Оферти) at View.
RelatedResource analysis, Working in the BoQ editor, Financial dashboard: committed, certified, margin

From resources to the grand total

A BoQ price is built bottom-up in seven steps. Each step is recalculated automatically as soon as anything below it changes — a resource, a percentage or a quantity. There is no Recalculate button.

StepNumberHow it is calculated
1Value of a resource row (per 1 unit of the position)Material: price × consumption rate × (1 + DSC% ÷ 100) × AC. Labor: hourly rate × consumption rate × AC. Machinery: daily rate × consumption rate × AC. Service: price × consumption rate × AC.
2Direct costs of a typeSum of the resource values of that type (materials, labor, machinery, services).
3Additional costs of a typeDirect costs of the type × the type's additional-cost % ÷ 100.
4Total costsSum over the four types of (direct costs + additional costs).
5ProfitTotal costs × profit % ÷ 100.
6Unit priceTotal costs + profit, rounded to cents (2 decimals).
7Position valueUnit price × quantity, rounded to 2 decimals.
—Category totalSum of the values of every position in the category and all its subcategories.
—Grand total (Total value)Sum of all position values in the version.

Internally BuildColab stores money with three extra decimal places, so intermediate results are not rounded too early; resource values are shown with 3 decimals, prices and totals with 2. Money is shown in the project currency (EUR).

Additional costs

Additional costs (Bulgarian допълнителни разходи) are the overheads you add on top of direct costs — site overheads, general company costs and similar. In the resource analysis they are set as a separate percentage for each resource type: one % for materials, one for labor, one for machinery, one for services. Each percentage applies only to the direct costs of its own type. For example, 50% on labor does not change the material cost.

Delivery and storage costs (DSC %, Bulgarian ДСР %) are different: they are entered per material row and are already included in that row's value (step 1). The additional coefficient (AC, ДК) is a multiplier per resource row, also in step 1.

There is no fixed-amount additional cost in the resource analysis. If you need a fixed amount per unit, add it as a service row.

Profit

Profit (печалба) is a percentage of the total costs of the analysis (step 5), set in the Profit: row of the cost summary. It can be any value of 0 or more, with up to 4 decimals. A direct price typed into the grid has no profit: it becomes a single "Unit price" line with 0% profit.

Worked example

Position "Ceramic floor tiles on adhesive", quantity 120 m², priced with this resource analysis for 1 m²:

ResourceTypeConsumption ratePrice (EUR)DSC %ACValue per m² (EUR)
Ceramic tilesMaterial1.05 m²20.0031.001.05 × 20.00 × 1.03 × 1.00 = 21.63
TilerLabour0.6 m.h.15.00—1.10.6 × 15.00 × 1.1 = 9.90

Additional costs: materials 0%, labor 50%. Profit: 10%.

TypeDirect costsAdd. costs %Add. costs valueTotal
Materials21.6300.0021.63
Labour9.90504.9514.85
Machinery0.0000.000.00
Services0.0000.000.00
Total31.534.9536.48
  • Profit = 36.48 × 10% = 3.648.
  • Unit price = 36.48 + 3.648 = 40.128, rounded to 40.13 EUR per m².
  • Position value = 40.13 × 120 = 4,815.60 EUR.
  • If the category "Floors" also contains "Skirting" with a value of 1,184.40 EUR, the category total is 4,815.60 + 1,184.40 = 6,000.00 EUR.
  • If the BoQ has one more category "Walls" with 14,000.00 EUR, the BoQ grand total is 20,000.00 EUR.

If you now raise the labor additional costs to 60%, labor add. costs become 5.94, total costs 37.47, profit 3.747, unit price 41.22 EUR, and the position value 4,946.40 EUR — the category and grand totals follow immediately.

The cost summary of a resource analysis with direct costs, additional costs, total and profit
Figure: The cost summary at the top of the resource analysis panel
  1. The Direct costs (Преки разходи) column: the sum of each type's resource values.
  2. The Add. costs % field of each type, editable.
  3. The Add. costs Value: direct costs × %.
  4. The Total row: total costs of the analysis.
  5. The Profit: row with the profit % and the profit value.
  6. The resulting unit price per unit of measure.

How to set additional costs or profit on one position

  1. In the BoQ editor, tick the position. The Resource analysis panel opens.
  2. In the cost summary, click the % field of the type row (for additional costs) or of the Profit: row.
  3. Type the percentage and press Enter or ✓. Esc or ✗ cancels.

The change applies to the shared analysis, so all identical positions in the BoQ (same description, unit and note) get the new unit price. If the BoQ version is locked, confirm the New version warning first.

How to set the same profit or additional costs on many positions

  1. In the BoQ editor, tick several positions, a category, or all top-level categories to cover the whole BoQ. The panel becomes Report (Справка).
  2. In the Report's cost summary, type the profit % or an additional-cost % and press Enter or ✓.

BORO can do the same for a whole BoQ in one step ("set 12% profit on this BoQ"). In the BORO panel the change waits for your approval by default; over MCP no approval is asked.

How the Report sums several positions

The Report of several positions weights every analysis by its position's quantity:

  • direct costs per type = Σ (direct cost per unit × position quantity);
  • resources are grouped by library item; Qty = Σ (consumption rate × position quantity);
  • rates and AC are quantity-weighted averages;
  • the additional-cost % shown is the effective weighted percentage; profit % = Σ profit ÷ Σ costs;
  • the last column shows the summed total, labeled "summed".
The Report panel for a selected category with summed quantities and the weighted profit
Figure: The Report for a whole category
  1. The ticked category in the grid selects all positions under it.
  2. The panel title Report (Справка) with the number of selected work items and their Total value.
  3. The weighted cost summary; a % saved here is set on every selected analysis.
  4. The Qty (К-во) column: consumption rate × position quantity, added up.

Where totals appear

PlaceWhat it shows
BoQ editor header — Total valueGrand total of the version on screen (hidden on quantity-only BoQs).
Header summary bar — Summary · {count} tasks / Total valueCount and value of only the positions that match the active filter categories.
Category rowTotal of the category subtree.
Resource analysis position cardUnit price and Total value (unit price × quantity).
Report headerSum of the selected positions' values.
Draft and offer cards — Total valueGrand total of the current version.
History panel — Total value per versionThe total stored when that version was locked.
Budget grid — Committed, Certified, MarginPer budget line: committed = signed subcontract quantity × price; certified = approved in subcontractors' payment applications; margin = budget − committed, and margin % = margin ÷ budget, to 1 decimal. See Financial dashboard: committed, certified, margin.

Material and labor split in the export

The Excel export can show separate material and labor unit prices (Split (material / labour)). The material unit price is the unit price × (material resources ÷ total costs of the analysis); the labor unit price is the rest of the unit price. Each row total is quantity × (material + labor). See Exporting.

Checking for inconsistent prices

The same work should have one price in a BoQ. Within one BoQ, positions with the same description, unit and note share one analysis, so they cannot differ. Positions that differ only in their note (for example "Floor 1" and "Floor 2") can have different prices. When importing, rows with the same description, unit and note but different prices are reported as unit-price conflicts and must be resolved before saving. BORO can list positions in a BoQ where the same work (description and unit) is priced differently.

Common questions

Why is my unit price a few cents different from my own calculation?

BuildColab keeps three extra decimals in intermediate steps and rounds only the unit price to cents and the value to 2 decimals. A calculation that rounds each step will drift by a cent or two.

Are additional costs applied before or after profit?

Before. Additional costs are added to the direct costs of each type; profit is then calculated on the total of direct and additional costs.

Does the additional-cost % for labor also apply to materials?

No. Each type has its own percentage, applied only to that type's direct costs.

Why does a direct price ignore my profit?

A typed unit price replaces the analysis with one "Unit price" line with 0% profit. If you want profit on top, build a resource analysis instead.

How do I set the same profit for the whole BoQ?

Tick all top-level categories, then type the profit % in the Report and save. This overwrites the profit of every analysis in the selection. Or ask BORO.

Why did the total change when I only changed one position?

Identical positions share one analysis. Changing its price changes every position that uses it, and all their category totals.

Does the BoQ total include VAT?

No VAT is added by the BoQ. The totals are the sums of quantity × unit price as entered.

Why does the filtered total differ from the grand total?

While filter categories are applied, the summary bar shows only the matching positions. Clear the filter in Controls to see the whole BoQ again.