Skip to main content

Appendix E โ€” Accepted File Formats

This is the canonical reference for what Conio's importer expects from a BOQ table, a Standard Rate table, or a Resource Price Book, whether the source is a Google Sheet or a local .xlsx/.xls/.csv file. All three go through the same Import Dataset drawer โ€” see Importing BOQ Tables, Importing Rate Tables, and Resource Price Book for the click-through steps.


How column detection worksโ€‹

Conio does not require columns in a fixed position. It scans the first several rows of each sheet for a row containing recognizable column-header keywords, then maps columns by matching those keywords โ€” case-insensitively, and matching on partial/contained text (e.g. a header literally titled "Item Description" matches the description keyword).

If no header row can be confidently identified, the import fails with an error telling you the file may be corrupted or not match the expected format. This is the single most common cause of a failed import โ€” check that your header row actually contains a Description and a Unit (or Rate) label the parser can recognize, from the lists below.


Bill of Quantities (BOQ) tablesโ€‹

ColumnRequiredRecognized header text (contains, case-insensitive)
DescriptionYesdescription, description of work, item description, particulars, work description, descr
UnitYesunit, measure, qty unit, un.
QuantityYesqty, quantity, quantities, amount of work
Item No. / CodeNoitem, item no, item number, code, s.no, s/n, no., sr.no

The header row is searched for within the first 10 rows of each sheet.

How headings (ancestors) are detectedโ€‹

A row is treated as a heading (a non-priced section/trade label, not a leaf item) when it has a Description but no Unit, and either a zero quantity or an item number that looks like a heading code (e.g. 1, 1.1, A). The hierarchy level comes from the number of dots in the item number (1.1.2 โ†’ level 2); if there's no item number, leading indentation in the description is used as a fallback.

1. EXCAVATION AND EARTH WORK โ† heading (no unit)
1.1 Clearing of site to 20cm depth m2 200
1.2 Bulk excavation โ† heading
1.2.1 to a depth not exceeding 1.5m m3 150

Rows matching common summary phrasing โ€” "carried to summary", "subtotal", "total for", "total of", and similar โ€” are never treated as headings, even if they otherwise look like one.


Standard Rate tablesโ€‹

ColumnRequiredRecognized header text
DescriptionYesSame synonyms as BOQ
UnitYesSame synonyms as BOQ
RateYesrate, unit rate, price, unit price, unit cost, cost
Item No. / CodeNoSame synonyms as BOQ

Heading detection works the same way as for BOQ tables, except a zero Rate (instead of zero Quantity) is what signals a heading row.


Resource Price Booksโ€‹

Price books are the one format that requires a single .xlsx/.xls workbook โ€” CSV is not accepted, since one CSV can't hold three separate tabs. The workbook must contain three tabs, matched by name to whatever you select in the Equipment Tab / Labor Tab / Material Tab dropdowns (matching is case- and whitespace-insensitive, so "Equipment " matches Equipment).

Each tab's header row is searched for within the first 15 rows, and must contain both a recognized name-type column and a recognized rate-type column in the same row โ€” one or the other alone is not enough.

TabName column keywordsRate column keywordsUnit
Equipmenttype, description, equipment, machine, name, toolhourly rate, rate, hourly cost, cost, price, hourlyAlways hr โ€” any Unit column in the sheet is ignored
Labortrade, labour by trade, labour, title, role, description, gradehourly indexed cost, indexed cost, indexed, hourly cost, rate, cost, price, hourlyAlways hr โ€” any Unit column in the sheet is ignored
Materialdescription, material, item, namerate, cost, price, cost at project location, project location cost, valueRead from a unit column
Rows with a rate of zero are silently dropped

Any row where the parsed rate is โ‰ค 0 is skipped with no warning at all โ€” it will not appear in the imported price book, and there is no error or log entry to tell you it happened. If your row count after import is lower than expected, check your source sheet for blank or zero rates before assuming something else went wrong.


Common to all importsโ€‹

  • Numeric cleaning: currency symbols, commas, and spaces are stripped automatically from quantity/rate cells ("ETB 1,250.00" and 1250 parse the same).
  • Garbled text protection: a description that looks like OCR/PDF-conversion noise (contains a Unicode replacement character, or is mostly non-alphanumeric symbols) is skipped with a warning rather than imported as junk.
  • Empty rows are skipped silently.
  • Multi-sheet workbooks (BOQ/Rate only): every tab is parsed independently. A tab whose header can't be detected is skipped with a warning rather than failing the whole import โ€” only if every tab fails does the import itself fail.
  • Units not in the approved list still import โ€” they're just flagged as non-conforming (shown in Table Manager) rather than rejected. Add new units in Settings โ†’ Units of Measure. Conio ships with m, m2, m3, kg, pcs, hr, day, l.s, l.m, ton, quintal, and bag pre-approved.

If your import fails or looks wrongโ€‹

See Troubleshooting โ€” imports for symptom-by-symptom fixes (access denied, zero quantities, flat ancestor paths, garbled characters).


Next stepโ€‹

Import your first BOQ table โ†’