Get the bill of quantities
Get the built lengths and counts of a project as of a freeze instant, exact to the millimetre.
The bill of quantities (BoQ) adds up what was built: lengths of spans and cables, slack, and counts of nodes, splices, photos and traces. It is computed from the frozen package in whole millimetres, so totals are exact, and it is also printed in the closeout book.
Before you start
DATABASE_URLandASBUILT_BLOB_DIRare set, and you know the project and the freeze instant.
Steps
-
Print the BoQ:
$ asbuilt package boq --project ee-demo --frozen-at 2026-01-01T00:00:00Z { "lines": [ { "category": "CABLE_ROUTE_LENGTH_3D", "item": "FO-12-002", "quantity": 129619, "unit": "mm" }, … -
Read each line by its category:
Category Item Quantity SPAN_LENGTH_3Dspan type, such as TRENCHTotal length of spans of that type, along the slope, in mm. CABLE_ROUTE_LENGTH_3Dcable label Length of the cable’s route through its spans, in mm. CABLE_SLACKcable label Total length of the cable’s slack loops, in mm. NODE_COUNTnode type Number of nodes of that type. SPLICE_COUNTclosure label Number of splices in that closure. EVIDENCE_COUNTevidence kind Number of photos, videos or sketches of that kind. TRACE_COUNTverdict Number of OTDR traces with that verdict. unitismmfor lengths andpcsfor counts. The closeout book prints lengths in metres with three decimals. -
To get the BoQ of a delivered package without the database, use its
package.json:asbuilt package boq --from-package closeout/package.json.
Check
A cable’s route length is the sum of its spans’ lengths; the BoQ never estimates. Cable length to order is route length plus slack plus the cable’s own excess, which ruumica records as the cable’s length factor.
What can go wrong
| You see | Meaning | Do |
|---|---|---|
| A length is missing for a cable | The cable has no route recorded at the freeze instant. | Record its route, then run again. |
| Counts are lower than expected | Records captured after the freeze instant are not counted. | Use a later freeze instant. |