Skip to content

Unit conversions

A unit conversion is a stored factor between two units of measure1 kg = 1000 g, 1 m = 100 cm. On its own a conversion changes nothing about how a recipe runs. Its job is to let Assemblified do the arithmetic for you the moment a unit genuinely changes, so a physical requirement is preserved rather than mislabelled.

The headline use is changing a referenced material’s unit. Without conversions, switching a material from cm to m would relabel 250 cm as 250 m — a 100× error that every downstream pick list, shortage list, and work order inherits. With a conversion in place, Assemblified rewrites 250 cm as 2.5 m instead.

  • What a conversion is, and where to manage them
  • Linear-only: which conversions can drive quantity/cost math
  • Changing a referenced material’s unit — the three choices
  • When no conversion exists — add one inline, or change unit only
  • Bulk and import behavior
  • Common gotchas

Conversions live under Settings → Units of Measurement, in the Unit Conversions section beneath the unit list.

  1. Go to Settings → Units of Measurement.
  2. Scroll to Unit Conversions and click Add conversion.
  3. Pick the from unit, the to unit, and the factor (1 from = factor × to). For g → kg the factor is 0.001.
  4. Save. The conversion is now available everywhere a conversion is needed.

Conversions are defined in one direction but usable in both — Assemblified inverts the factor automatically, so a single g → kg row also answers kg → g. You don’t need to enter the reverse.

Internally a conversion is an affine map (value_to = value_from × factor + offset). But quantity and cost propagation can only use linear conversions — ones where offset = 0, factor > 0, and the factor is finite. A per-unit quantity or cost has no meaningful zero-point shift, so an offset (the kind a °C → °F conversion would need) is never applied to recipe math.

In practice every multiplicative conversion you’d define for materials — weight, length, volume, count — is linear and works. The restriction only excludes offset-based temperature-style conversions, which don’t belong on a recipe quantity anyway.

When you change the unit on a raw material that isn’t referenced by any BOM or sub-assembly, the change saves immediately — there are no quantities to keep consistent.

When the material is referenced, Assemblified pauses and asks how to apply the change before saving. The dialog summarises each affected material (old → new, recipe count) and offers:

ChoiceWhat it doesDefault
Convert recipe quantitiesEvery recipe quantity is recalculated by the conversion factor — 250 cm becomes 2.5 m, the physical requirement is preserved.On
Convert unit costRecalculates the per-unit cost for the new unit so total cost (quantity × cost) stays put. Only offered for materials whose cost you can edit — not Shopify-linked materials, whose cost is owned by Shopify.Off
Change unit onlyThe display-only escape hatch: relabels the unit without touching any number.

The math, for cm → m (factor 0.01):

  • Quantitynew = old × factor, so the amount consumed is unchanged.
  • Unit cost (opt-in) — new = old ÷ factor, so the total cost is unchanged.

Converting a unit also recomputes the cached BOM and sub-assembly costs that referenced the material, leaf-first up the sub-assembly graph, so cost roll-ups stay correct after the change.

If you pick a new unit and no linear conversion exists for the old → new pair, Assemblified can’t safely convert. The dialog flags the pair as Needs conversion and blocks the convert path. From there you can:

  • Add the conversion inline. An Add from → to button opens the conversion editor locked to exactly that pair. Save it and the dialog re-checks — the convert path unlocks immediately, no need to leave and come back.
  • Change unit only. Fall back to the display-only relabel, accepting that you’ll fix the numbers yourself.
  • Bulk edit. Changing the unit on several materials at once funnels through the same dialog. It groups the affected materials and shows one Add from → to button per distinct unit pair, so you resolve each missing conversion once rather than per material.
  • Import / non-interactive changes. When a unit change arrives without a dialog choice — a CSV/XLSX import, or any non-interactive path — Assemblified applies convert-else-fail: it auto-converts every referenced material that has a usable conversion, and if any referenced material lacks one, it rejects the whole change with no partial writes. A non-interactive path never silently relabels.
  • Conversions don’t apply at execution time. They fire only when a referenced material’s unit changes. A quantity you type into a recipe is always taken at face value in the material’s current unit — there’s no live conversion while you build a BOM. Keep recipe quantities in the same unit as the raw material. See Units → where the symbol shows up.
  • One direction is enough. Define g → kg or kg → g, not both — the inverse is automatic. Defining both is harmless but redundant.
  • Offsets are ignored for recipe math. A conversion with a non-zero offset is treated as “no usable conversion” for unit changes, so the convert path stays blocked. This only affects offset-style (temperature) conversions.
  • Weight roll-ups use these too. The calculated weight on a BOM or sub-assembly converts mixed component weight units into one canonical unit using these same conversions. The five seeded weight units (kg/g/mg/lb/oz) all convert to kg out of the box; a custom weight unit needs a conversion before it can roll up.
  • Units of Measurement — the unit field itself, the built-in list, and adding custom units.
  • Weight — the calculated BOM / sub-assembly weight roll-up, another consumer of these conversions.
  • Raw materials overview — back to the section root.