Skip to content

Configuration: Parts-and-Labor Products

The parts-and-labor archetype is for businesses that build equipment: a quoted unit is something you make, and its price is worked out from what its parts and labor cost. This article lists what the archetype declares, what your tenant layer adds on top, and where each setting is read. How the layers fit together is in How Quote Generator Is Configured.

A unit is one distinct piece of equipment to be supplied: a skid, a vessel, a meter run. One quoted package is one unit. The pump, meter and valves a package includes are its components, not units of their own, and equipment a document mentions only as existing on site is not quoted. This is what the model is told when it reads your documents, and it decides how many units a quote starts with.

This archetype does not declare a pricing direction, so it uses the base layer’s: prices are worked out from cost.

  1. Each line’s cost rolls up into its unit: a part is quantity times unit cost, a labor line is hours times its department’s rate.
  2. A line’s margin comes from the first of these that has one: the line itself, its catalog part, its line type, its unit, then the quote’s margin tier.
  3. The quote total adds contingency and margin to the cost.
  4. Each unit’s printed price is its share of the total, in proportion to what it costs.
Configuration key What it declares Where it is read
line_types Six kinds of line, below. Every line on a quote carries one. Catalog → Line types lists them.
quote_sections One default section, Bill of Materials, with labor printed inline. How lines are grouped on the proposal, until your tenant refines it per family under Presentation.
prompt_blocks What a unit is, what to read in the structure pass and in the parts pass, and the examples of rows that are not parts: spec, sizing and comparison tables. The document reader, on every upload. Operations → Prompt Management shows them under Prompt blocks.
training The in-app walk for setting up a family skips the quote default values step, because a parts family prices from its lines. The training walk in the app.

The six line types:

Line type Rolls up as Where it goes by default Its cost
Part part In the bill of materials Quantity times unit cost
Labor labor On the unit’s routing sheet Quantity times hours times rate
Freight freight In the bill of materials Entered by hand
Subcontract subcontract At the quote level Quantity times unit cost
Service service At the quote level Entered by hand
Other other At the quote level Quantity times unit cost

The archetype declares no families, specifications, tiers or rates: those are yours. A parts-and-labor tenant layer typically adds:

  • product_families and specifications: what you build and the fields that tell one build from another. A specification nothing declares cannot be read off a document. In Products.
  • catalog_categories, and the catalog itself, which arrives through an integration rather than the configuration. In Catalog.
  • margin_tiers, with one marked the default unless the pricing policy says otherwise. In Pricing → Margin Tiers.
  • labor_departments and their rates. In Labor.
  • formula_slots and settings_constants of your own, on top of the built-in ones. In Pricing.
  • product_presets and kits: the parts and labor a proven build starts from. In Products and Catalog → Kits.
  • allowance_buckets and contingency. In Pricing.
  • gate_unit_identity: which of a unit’s specifications a part on it must also match. Without it the platform compares a unit’s meter model and horsepower.
  • capabilities: whether the app reads model files on upload, and whether file downloads are offered on a quote.

Every Admin box applies, because prices are worked out from cost. A few pages depend on something else:

  • Spec database appears only where the tenant declares that it imports model files.
  • Fee standards, product configuration and product groups appear only where prices are given rather than built, so they are not here.
  • A page whose rows all come from the archetype shows them read-only. Line types on a tenant that adds none of its own is the usual example.

Line types are listed but cannot be edited

Section titled “Line types are listed but cannot be edited”

Your tenant adds no line types of its own, so the page shows the archetype’s six, read-only. To add one, contact support; it is added in your tenant layer.

A document produced one unit per component

Section titled “A document produced one unit per component”

The model’s idea of a unit comes from the unit_framing prompt block. Read it under Prompt blocks before editing anything: a package’s components are meant to be sections of one unit. See Prompt Blocks.