
Construction All in One with BOQ and Job Costing
Bill of quantities with rate build-ups, interim valuations that cannot over-measure, approved variations only, and material reconciliation.
Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0, Odoo 20.0. Technical name bambooforge_construction_boq.
Transcript of the walkthrough (Odoo 20)
Construction All in One with BOQ and Job Costing. Bill of quantities with rate build-ups, interim valuations that cannot over-measure, approved variations only, and material reconciliation. Said before you buy, because it is the half that decides whether the app fits: In the next few minutes: construction all in one with boq and job costing, then the bill, then rate build-ups, then interim valuations, then the money leaves through the job. Then what this app deliberately does not do, so you can tell before you buy whether it fits.
Everything lives under Bills of quantities then Valuations then Variations then Material requirement. 1. Copy bambooforge_construction_boq into your addons path and update the app list, or install the ZIP from the Odoo Apps Store. 2.
Install Construction BOQ & Measurement. 3. Open Bills of quantities - its menus are Valuations, Variations, Material requirement. Construction All in One with BOQ and Job Costing.
An extension of BambooForge Construction Job Costing, not a second copy of it. The job, the phases, the cost budget, the change order register, the AIA payment application and the retainage already live there. This adds the side of the trade that works by measurement. The bill Sections and items, each with a code, a unit, a quantity and a rate.
A rate without a unit is a number nobody can check. Once a bill is agreed it stops being editable. The quantity, the rate and the rate build-up are what was signed; the cost phase still moves, because that is bookkeeping rather than contract. Changing the work is a variation, or a new revision.
The bill's total is checked against the job's contract value, and any gap is a field on the form. Working to two different contract sums is how a claim is lost. A bill with an unpriced item cannot be agreed. A bill with holes in it cannot be valued.
Rate build-ups. An item's rate assembled from labour, material, plant, subcontract and overhead, each with a quantity per unit and a wastage percentage. The difference between the rate charged and the rate built up is a field, not a spreadsheet somebody keeps at home. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up.
Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real. It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. Interim valuations. A valuation is cumulative.
The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item. A quantity cannot exceed the bill. Extra work belongs in a variation, where somebody has to approve it. Over-measuring is the single most common overpayment on a construction contract.
A quantity cannot go backwards: a valuation does not un-measure work. That is an omission variation. Two open valuations at once are refused on the whole job, not just on one revision of the bill - that is how the same wall gets measured twice. The number runs per job, and a cancelled valuation keeps the number it was given.
Only the agreed revision is certified against, and every line is checked again at certification, not only as it is typed. A valuation that measures less than what was already certified is refused: that needs a credit, not a certificate. The money leaves through the job. A certified valuation raises the job's own bf.job.billing - with its retainage and its AIA sheet, grouped by cost phase - and marks itself billed.
There is no second invoicing path and no second set of numbers to reconcile. An item with no cost phase stops the application, because its money would have nowhere to go. An application works out what was billed before from the job's invoiced applications, so a second one is refused while the first is still a draft: raising both would bill the same work twice. Variations.
Priced items - added, omitted or re-measured - that count for nothing until they are approved. A pending item is not in the contract sum, not on the valuation sheet and not in the budget; a rejected one is marked omitted, so it stays readable and is worth nothing. Approval writes the items into the bill and raises the job's own change order, so the contract value moves in exactly one place. What was approved - or refused - is then frozen: omitting the work later does not rewrite what somebody signed.
A client instruction must carry the client's own reference, or nobody can match the payment to it later. A variation prices and omits items on its own bill, never somebody else's. An omission cannot take out work already certified - or already measured on the valuation being written - and paid for. Omitting the whole quantity marks the item omitted; it stays on the bill so the history reads, but it is worth nothing.
An approved variation cannot be rejected. Raise an omission variation instead. Our error is on the list of origins on purpose. A variation register that only records the client's changes is a register nobody believes.
Provisional sums. Marked, kept out of measurement - an allowance is not work anybody did - and adjusted at what they really cost before the final account. Material reconciliation. What the rate build-ups say should have been used for the quantity measured, beside what was actually bought against the job.
The difference is wastage, theft, or a rate that was priced wrong - all three worth knowing before the job finishes. Materials are matched by name - ignoring case and stray spaces, so Cement and cement are one line - because a rate build-up is written by a quantity surveyor in words; the report says so rather than pretending otherwise. The reconciliation is a company's own, like everything else here. Roles.
A quantity surveyor measures, prices variations and raises valuations. The commercial manager agrees the bill, approves variations and turns a certified valuation into money. Those three gates are checked on the server, not only hidden in the form, and a state cannot be written by hand around the buttons. The rate build-up and the margin on an item are the surveyor's: a site user reads quantities and rates, not what the work costs us.
Community only. Needs BambooForge Job Costing, which needs account, purchase, project and hr_timesheet. Tested on 16.0, 17.0, 18.0 and 19.0. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours.
Links are in the description.



Transcript of the walkthrough (Odoo 19)
Construction BOQ & Measurement. Bill of quantities with rate build-ups, interim valuations that cannot over-measure, approved variations only, and material reconciliation. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item. In the next few minutes: construction boq & measurement, then the bill, then rate build-ups, then interim valuations, then the money leaves through the job.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. Everything lives under Bills of quantities then Valuations then Variations then Material requirement. Construction BOQ & Measurement. An extension of BambooForge Construction Job Costing, not a second copy of it.
The job, the phases, the cost budget, the change order register, the AIA payment application and the retainage already live there. This adds the side of the trade that works by measurement. The bill Sections and items, each with a code, a unit, a quantity and a rate. A rate without a unit is a number nobody can check.
Once a bill is agreed it stops being editable. The quantity, the rate and the rate build-up are what was signed; the cost phase still moves, because that is bookkeeping rather than contract. Changing the work is a variation, or a new revision. The bill's total is checked against the job's contract value, and any gap is a field on the form.
Working to two different contract sums is how a claim is lost. A bill with an unpriced item cannot be agreed. A bill with holes in it cannot be valued. Rate build-ups.
An item's rate assembled from labour, material, plant, subcontract and overhead, each with a quantity per unit and a wastage percentage. The difference between the rate charged and the rate built up is a field, not a spreadsheet somebody keeps at home. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. Interim valuations. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item.
A quantity cannot exceed the bill. Extra work belongs in a variation, where somebody has to approve it. Over-measuring is the single most common overpayment on a construction contract. A quantity cannot go backwards: a valuation does not un-measure work.
That is an omission variation. Two open valuations at once are refused on the whole job, not just on one revision of the bill - that is how the same wall gets measured twice. The number runs per job, and a cancelled valuation keeps the number it was given. Only the agreed revision is certified against, and every line is checked again at certification, not only as it is typed.
A valuation that measures less than what was already certified is refused: that needs a credit, not a certificate. The money leaves through the job. A certified valuation raises the job's own bf.job.billing - with its retainage and its AIA sheet, grouped by cost phase - and marks itself billed. There is no second invoicing path and no second set of numbers to reconcile.
An item with no cost phase stops the application, because its money would have nowhere to go. An application works out what was billed before from the job's invoiced applications, so a second one is refused while the first is still a draft: raising both would bill the same work twice. Variations. Priced items - added, omitted or re-measured - that count for nothing until they are approved.
A pending item is not in the contract sum, not on the valuation sheet and not in the budget; a rejected one is marked omitted, so it stays readable and is worth nothing. Approval writes the items into the bill and raises the job's own change order, so the contract value moves in exactly one place. What was approved - or refused - is then frozen: omitting the work later does not rewrite what somebody signed. A client instruction must carry the client's own reference, or nobody can match the payment to it later.
A variation prices and omits items on its own bill, never somebody else's. An omission cannot take out work already certified - or already measured on the valuation being written - and paid for. Omitting the whole quantity marks the item omitted; it stays on the bill so the history reads, but it is worth nothing. An approved variation cannot be rejected.
Raise an omission variation instead. Our error is on the list of origins on purpose. A variation register that only records the client's changes is a register nobody believes. Provisional sums.
Marked, kept out of measurement - an allowance is not work anybody did - and adjusted at what they really cost before the final account. Material reconciliation. What the rate build-ups say should have been used for the quantity measured, beside what was actually bought against the job. The difference is wastage, theft, or a rate that was priced wrong - all three worth knowing before the job finishes.
Materials are matched by name - ignoring case and stray spaces, so Cement and cement are one line - because a rate build-up is written by a quantity surveyor in words; the report says so rather than pretending otherwise. The reconciliation is a company's own, like everything else here. Roles. A quantity surveyor measures, prices variations and raises valuations.
The commercial manager agrees the bill, approves variations and turns a certified valuation into money. Those three gates are checked on the server, not only hidden in the form, and a state cannot be written by hand around the buttons. The rate build-up and the margin on an item are the surveyor's: a site user reads quantities and rates, not what the work costs us. Community only.
Needs BambooForge Job Costing, which needs account, purchase, project and hr_timesheet. Tested on 16.0, 17.0, 18.0 and 19.0. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Transcript of the walkthrough (Odoo 18)
Construction BOQ & Measurement. Bill of quantities with rate build-ups, interim valuations that cannot over-measure, approved variations only, and material reconciliation. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item. In the next few minutes: construction boq & measurement, then the bill, then rate build-ups, then interim valuations, then the money leaves through the job.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. Everything lives under Bills of quantities then Valuations then Variations then Material requirement. Construction BOQ & Measurement. An extension of BambooForge Construction Job Costing, not a second copy of it.
The job, the phases, the cost budget, the change order register, the AIA payment application and the retainage already live there. This adds the side of the trade that works by measurement. The bill Sections and items, each with a code, a unit, a quantity and a rate. A rate without a unit is a number nobody can check.
Once a bill is agreed it stops being editable. The quantity, the rate and the rate build-up are what was signed; the cost phase still moves, because that is bookkeeping rather than contract. Changing the work is a variation, or a new revision. The bill's total is checked against the job's contract value, and any gap is a field on the form.
Working to two different contract sums is how a claim is lost. A bill with an unpriced item cannot be agreed. A bill with holes in it cannot be valued. Rate build-ups.
An item's rate assembled from labour, material, plant, subcontract and overhead, each with a quantity per unit and a wastage percentage. The difference between the rate charged and the rate built up is a field, not a spreadsheet somebody keeps at home. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. Interim valuations. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item.
A quantity cannot exceed the bill. Extra work belongs in a variation, where somebody has to approve it. Over-measuring is the single most common overpayment on a construction contract. A quantity cannot go backwards: a valuation does not un-measure work.
That is an omission variation. Two open valuations at once are refused on the whole job, not just on one revision of the bill - that is how the same wall gets measured twice. The number runs per job, and a cancelled valuation keeps the number it was given. Only the agreed revision is certified against, and every line is checked again at certification, not only as it is typed.
A valuation that measures less than what was already certified is refused: that needs a credit, not a certificate. The money leaves through the job. A certified valuation raises the job's own bf.job.billing - with its retainage and its AIA sheet, grouped by cost phase - and marks itself billed. There is no second invoicing path and no second set of numbers to reconcile.
An item with no cost phase stops the application, because its money would have nowhere to go. An application works out what was billed before from the job's invoiced applications, so a second one is refused while the first is still a draft: raising both would bill the same work twice. Variations. Priced items - added, omitted or re-measured - that count for nothing until they are approved.
A pending item is not in the contract sum, not on the valuation sheet and not in the budget; a rejected one is marked omitted, so it stays readable and is worth nothing. Approval writes the items into the bill and raises the job's own change order, so the contract value moves in exactly one place. What was approved - or refused - is then frozen: omitting the work later does not rewrite what somebody signed. A client instruction must carry the client's own reference, or nobody can match the payment to it later.
A variation prices and omits items on its own bill, never somebody else's. An omission cannot take out work already certified - or already measured on the valuation being written - and paid for. Omitting the whole quantity marks the item omitted; it stays on the bill so the history reads, but it is worth nothing. An approved variation cannot be rejected.
Raise an omission variation instead. Our error is on the list of origins on purpose. A variation register that only records the client's changes is a register nobody believes. Provisional sums.
Marked, kept out of measurement - an allowance is not work anybody did - and adjusted at what they really cost before the final account. Material reconciliation. What the rate build-ups say should have been used for the quantity measured, beside what was actually bought against the job. The difference is wastage, theft, or a rate that was priced wrong - all three worth knowing before the job finishes.
Materials are matched by name - ignoring case and stray spaces, so Cement and cement are one line - because a rate build-up is written by a quantity surveyor in words; the report says so rather than pretending otherwise. The reconciliation is a company's own, like everything else here. Roles. A quantity surveyor measures, prices variations and raises valuations.
The commercial manager agrees the bill, approves variations and turns a certified valuation into money. Those three gates are checked on the server, not only hidden in the form, and a state cannot be written by hand around the buttons. The rate build-up and the margin on an item are the surveyor's: a site user reads quantities and rates, not what the work costs us. Community only.
Needs BambooForge Job Costing, which needs account, purchase, project and hr_timesheet. Tested on 16.0, 17.0, 18.0 and 19.0. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Transcript of the walkthrough (Odoo 17)
Construction BOQ & Measurement. Bill of quantities with rate build-ups, interim valuations that cannot over-measure, approved variations only, and material reconciliation. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item. In the next few minutes: construction boq & measurement, then the bill, then rate build-ups, then interim valuations, then the money leaves through the job.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. Everything lives under Bills of quantities then Valuations then Variations then Material requirement. Construction BOQ & Measurement. An extension of BambooForge Construction Job Costing, not a second copy of it.
The job, the phases, the cost budget, the change order register, the AIA payment application and the retainage already live there. This adds the side of the trade that works by measurement. The bill Sections and items, each with a code, a unit, a quantity and a rate. A rate without a unit is a number nobody can check.
Once a bill is agreed it stops being editable. The quantity, the rate and the rate build-up are what was signed; the cost phase still moves, because that is bookkeeping rather than contract. Changing the work is a variation, or a new revision. The bill's total is checked against the job's contract value, and any gap is a field on the form.
Working to two different contract sums is how a claim is lost. A bill with an unpriced item cannot be agreed. A bill with holes in it cannot be valued. Rate build-ups.
An item's rate assembled from labour, material, plant, subcontract and overhead, each with a quantity per unit and a wastage percentage. The difference between the rate charged and the rate built up is a field, not a spreadsheet somebody keeps at home. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. Interim valuations. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item.
A quantity cannot exceed the bill. Extra work belongs in a variation, where somebody has to approve it. Over-measuring is the single most common overpayment on a construction contract. A quantity cannot go backwards: a valuation does not un-measure work.
That is an omission variation. Two open valuations at once are refused on the whole job, not just on one revision of the bill - that is how the same wall gets measured twice. The number runs per job, and a cancelled valuation keeps the number it was given. Only the agreed revision is certified against, and every line is checked again at certification, not only as it is typed.
A valuation that measures less than what was already certified is refused: that needs a credit, not a certificate. The money leaves through the job. A certified valuation raises the job's own bf.job.billing - with its retainage and its AIA sheet, grouped by cost phase - and marks itself billed. There is no second invoicing path and no second set of numbers to reconcile.
An item with no cost phase stops the application, because its money would have nowhere to go. An application works out what was billed before from the job's invoiced applications, so a second one is refused while the first is still a draft: raising both would bill the same work twice. Variations. Priced items - added, omitted or re-measured - that count for nothing until they are approved.
A pending item is not in the contract sum, not on the valuation sheet and not in the budget; a rejected one is marked omitted, so it stays readable and is worth nothing. Approval writes the items into the bill and raises the job's own change order, so the contract value moves in exactly one place. What was approved - or refused - is then frozen: omitting the work later does not rewrite what somebody signed. A client instruction must carry the client's own reference, or nobody can match the payment to it later.
A variation prices and omits items on its own bill, never somebody else's. An omission cannot take out work already certified - or already measured on the valuation being written - and paid for. Omitting the whole quantity marks the item omitted; it stays on the bill so the history reads, but it is worth nothing. An approved variation cannot be rejected.
Raise an omission variation instead. Our error is on the list of origins on purpose. A variation register that only records the client's changes is a register nobody believes. Provisional sums.
Marked, kept out of measurement - an allowance is not work anybody did - and adjusted at what they really cost before the final account. Material reconciliation. What the rate build-ups say should have been used for the quantity measured, beside what was actually bought against the job. The difference is wastage, theft, or a rate that was priced wrong - all three worth knowing before the job finishes.
Materials are matched by name - ignoring case and stray spaces, so Cement and cement are one line - because a rate build-up is written by a quantity surveyor in words; the report says so rather than pretending otherwise. The reconciliation is a company's own, like everything else here. Roles. A quantity surveyor measures, prices variations and raises valuations.
The commercial manager agrees the bill, approves variations and turns a certified valuation into money. Those three gates are checked on the server, not only hidden in the form, and a state cannot be written by hand around the buttons. The rate build-up and the margin on an item are the surveyor's: a site user reads quantities and rates, not what the work costs us. Community only.
Needs BambooForge Job Costing, which needs account, purchase, project and hr_timesheet. Tested on 16.0, 17.0, 18.0 and 19.0. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Transcript of the walkthrough (Odoo 16)
Construction BOQ & Measurement. Bill of quantities with rate build-ups, interim valuations that cannot over-measure, approved variations only, and material reconciliation. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item. In the next few minutes: construction boq & measurement, then the bill, then rate build-ups, then interim valuations, then the money leaves through the job.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. Everything lives under Bills of quantities then Valuations then Variations then Material requirement. Construction BOQ & Measurement. An extension of BambooForge Construction Job Costing, not a second copy of it.
The job, the phases, the cost budget, the change order register, the AIA payment application and the retainage already live there. This adds the side of the trade that works by measurement. The bill Sections and items, each with a code, a unit, a quantity and a rate. A rate without a unit is a number nobody can check.
Once a bill is agreed it stops being editable. The quantity, the rate and the rate build-up are what was signed; the cost phase still moves, because that is bookkeeping rather than contract. Changing the work is a variation, or a new revision. The bill's total is checked against the job's contract value, and any gap is a field on the form.
Working to two different contract sums is how a claim is lost. A bill with an unpriced item cannot be agreed. A bill with holes in it cannot be valued. Rate build-ups.
An item's rate assembled from labour, material, plant, subcontract and overhead, each with a quantity per unit and a wastage percentage. The difference between the rate charged and the rate built up is a field, not a spreadsheet somebody keeps at home. The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real.
It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised. Interim valuations. A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item.
A quantity cannot exceed the bill. Extra work belongs in a variation, where somebody has to approve it. Over-measuring is the single most common overpayment on a construction contract. A quantity cannot go backwards: a valuation does not un-measure work.
That is an omission variation. Two open valuations at once are refused on the whole job, not just on one revision of the bill - that is how the same wall gets measured twice. The number runs per job, and a cancelled valuation keeps the number it was given. Only the agreed revision is certified against, and every line is checked again at certification, not only as it is typed.
A valuation that measures less than what was already certified is refused: that needs a credit, not a certificate. The money leaves through the job. A certified valuation raises the job's own bf.job.billing - with its retainage and its AIA sheet, grouped by cost phase - and marks itself billed. There is no second invoicing path and no second set of numbers to reconcile.
An item with no cost phase stops the application, because its money would have nowhere to go. An application works out what was billed before from the job's invoiced applications, so a second one is refused while the first is still a draft: raising both would bill the same work twice. Variations. Priced items - added, omitted or re-measured - that count for nothing until they are approved.
A pending item is not in the contract sum, not on the valuation sheet and not in the budget; a rejected one is marked omitted, so it stays readable and is worth nothing. Approval writes the items into the bill and raises the job's own change order, so the contract value moves in exactly one place. What was approved - or refused - is then frozen: omitting the work later does not rewrite what somebody signed. A client instruction must carry the client's own reference, or nobody can match the payment to it later.
A variation prices and omits items on its own bill, never somebody else's. An omission cannot take out work already certified - or already measured on the valuation being written - and paid for. Omitting the whole quantity marks the item omitted; it stays on the bill so the history reads, but it is worth nothing. An approved variation cannot be rejected.
Raise an omission variation instead. Our error is on the list of origins on purpose. A variation register that only records the client's changes is a register nobody believes. Provisional sums.
Marked, kept out of measurement - an allowance is not work anybody did - and adjusted at what they really cost before the final account. Material reconciliation. What the rate build-ups say should have been used for the quantity measured, beside what was actually bought against the job. The difference is wastage, theft, or a rate that was priced wrong - all three worth knowing before the job finishes.
Materials are matched by name - ignoring case and stray spaces, so Cement and cement are one line - because a rate build-up is written by a quantity surveyor in words; the report says so rather than pretending otherwise. The reconciliation is a company's own, like everything else here. Roles. A quantity surveyor measures, prices variations and raises valuations.
The commercial manager agrees the bill, approves variations and turns a certified valuation into money. Those three gates are checked on the server, not only hidden in the form, and a state cannot be written by hand around the buttons. The rate build-up and the margin on an item are the surveyor's: a site user reads quantities and rates, not what the work costs us. Community only.
Needs BambooForge Job Costing, which needs account, purchase, project and hr_timesheet. Tested on 16.0, 17.0, 18.0 and 19.0. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Key facts
- What it is
- Bill of quantities with rate build-ups, interim valuations that cannot over-measure, approved variations only, and material reconciliation.
- For
- Project
- Odoo versions
- 16.0, 17.0, 18.0, 19.0, 20.0 - Community and Enterprise
- Runs on
- Odoo.sh or Odoo you host yourself - not Odoo Online, which accepts no third-party apps
- Price
- 278 EUR, one-time, on the Odoo Apps Store
- Technical name
- bambooforge_construction_boq
- Not for
- Said before you buy, because it is the half that decides whether the app fits:; Turn certified work back into work to be paid for again when a revision is made.; Price an item on a revision below what has already been certified against it.
- Manual last updated
- 2026-10-15
Construction All in One with BOQ and Job Costing
An extension of BambooForge Construction Job Costing, not a second copy of it. The job, the phases, the cost budget, the change order register, the AIA payment application and the retainage already live there. This adds the side of the trade that works by measurement.
The bill
Sections and items, each with a code, a unit, a quantity and a rate. A rate without a unit is a number nobody can check.
Revisions supersede each other rather than overwrite, so the tender bill is still readable after six variations. A new revision copies the sections and items and re-points each item at the new revision's section. Each copied item remembers the item it came from, so what was certified on revision 1 is still certified on revision 2: a revision does not turn measured work back into work to be paid for again. For the same reason a revision cannot price an item below what has already been certified against it, and neither a revision nor an agreement happens while a valuation is open.
Once a bill is agreed it stops being editable. The quantity, the rate and the rate build-up are what was signed; the cost phase still moves, because that is bookkeeping rather than contract. Changing the work is a variation, or a new revision.
The bill's total is checked against the job's contract value, and any gap is a field on the form. Working to two different contract sums is how a claim is lost.
A bill with an unpriced item cannot be agreed. A bill with holes in it cannot be valued.
Rate build-ups
An item's rate assembled from labour, material, plant, subcontract and overhead, each with a quantity per unit and a wastage percentage. The difference between the rate charged and the rate built up is a field, not a spreadsheet somebody keeps at home.
The priced bill can be pushed into the job's cost budget, split by cost type from the build-up. Pricing a bill and then typing the budget again is how a contractor ends up with two numbers and no idea which is real. It goes once - the date is on the bill and a second push is refused - and approved variation items stay out of it, because their cost already moved with the change order their approval raised.
Interim valuations
A valuation is cumulative. The sheet carries the quantity done to date; this month's money is that minus what was already certified, per item.
A quantity cannot exceed the bill. Extra work belongs in a variation, where somebody has to approve it. Over-measuring is the single most common overpayment on a construction contract.
A quantity cannot go backwards: a valuation does not un-measure work. That is an omission variation.
Two open valuations at once are refused on the whole job, not just on one revision of the bill - that is how the same wall gets measured twice. The number runs per job, and a cancelled valuation keeps the number it was given.
Only the agreed revision is certified against, and every line is checked again at certification, not only as it is typed.
A certified sheet is a signed document. After certification the quantities are frozen and only the note can be edited; lines cannot be added or removed, the sheet cannot be deleted or cancelled, and the difference is measured next time. The sheet keeps its own copy of the bill quantity and the rate, so it still reads as it was signed after the bill moves on.
A valuation that measures less than what was already certified is refused: that needs a credit, not a certificate.
The money leaves through the job
A certified valuation raises the job's own bf.job.billing - with its retainage and its AIA sheet, grouped by cost phase - and marks itself billed. There is no second invoicing path and no second set of numbers to reconcile. An item with no cost phase stops the application, because its money would have nowhere to go.
An application works out what was billed before from the job's invoiced applications, so a second one is refused while the first is still a draft: raising both would bill the same work twice.
Variations
Priced items - added, omitted or re-measured - that count for nothing until they are approved. A pending item is not in the contract sum, not on the valuation sheet and not in the budget; a rejected one is marked omitted, so it stays readable and is worth nothing.
Approval writes the items into the bill and raises the job's own change order, so the contract value moves in exactly one place. What was approved - or refused - is then frozen: omitting the work later does not rewrite what somebody signed.
A client instruction must carry the client's own reference, or nobody can match the payment to it later.
A variation prices and omits items on its own bill, never somebody else's.
An omission cannot take out work already certified - or already measured on the valuation being written - and paid for. Omitting the whole quantity marks the item omitted; it stays on the bill so the history reads, but it is worth nothing.
An approved variation cannot be rejected. Raise an omission variation instead.
Our error is on the list of origins on purpose. A variation register that only records the client's changes is a register nobody believes.
Provisional sums
Marked, kept out of measurement - an allowance is not work anybody did - and adjusted at what they really cost before the final account.
Material reconciliation
What the rate build-ups say should have been used for the quantity measured, beside what was actually bought against the job. The difference is wastage, theft, or a rate that was priced wrong - all three worth knowing before the job finishes. Materials are matched by name - ignoring case and stray spaces, so Cement and cement are one line - because a rate build-up is written by a quantity surveyor in words; the report says so rather than pretending otherwise. The reconciliation is a company's own, like everything else here.
Roles
A quantity surveyor measures, prices variations and raises valuations. The commercial manager agrees the bill, approves variations and turns a certified valuation into money. Those three gates are checked on the server, not only hidden in the form, and a state cannot be written by hand around the buttons. The rate build-up and the margin on an item are the surveyor's: a site user reads quantities and rates, not what the work costs us.
Community only
Needs BambooForge Job Costing, which needs account, purchase, project and hr_timesheet. Tested on 16.0, 17.0, 18.0, 19.0 and 20.0.
How we make sure it works
Before every release, 73 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them:
A bill with an unpriced item cannot be agreed.
An item with no phase cannot reach the application.
A new revision cannot undercut certified work.
A surveyor cannot delete a valuation.
A valuation cannot un measure work.
The complete list is in the source you receive.
What it does not do
Said before you buy, because it is the half that decides whether the app fits:
Turn certified work back into work to be paid for again when a revision is made.
Price an item on a revision below what has already been certified against it.
Install
Copy bambooforge_construction_boq into your addons path and update the app list, or install the ZIP from the Odoo Apps Store.
Install Construction BOQ & Measurement.
Open Bills of quantities - its menus are Valuations, Variations, Material requirement.
Questions people ask
- Which Odoo versions does it run on?
Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing.
- Community or Enterprise?
Both. It needs no Enterprise app.
- What does it need?
The standard Units of Measure; job costing (BambooForge) must be installed first app. No extra Python package.
- Where does it show up?
Under the Bills of quantities menu (Valuations, Variations, Material requirement).
- Does anything leave my server?
No. It makes no call outside your Odoo server: no telemetry, no licence check, no third-party service.
- What happens if I uninstall it?
Odoo drops the app's own tables and fields; the standard records it worked on (contacts, orders, products) stay as they are.