Skip to content

The reports

This is the reference for all fourteen reports. For each one: what a row is, the columns it ships with, the columns you can add from Display options → Columns, the figures in the totals strip, and what a row breakdown opens.

  • Manufacturing
  • Bill of materials
  • Sales
  • The summaries

What your shop built in the period, per item, with the work orders and build runs behind it.

One row per item, period and location.

ColumnWhat it isShown by default
ItemThe finished good, sub-assembly or variant that was builtYes
LocationThe production location the run happened atYes
Item typeBOM, Sub-assembly or VariantYes
Units builtUnits produced by build runs in the build directionYes
Units reworkedUnits run again as reworkYes
Units disassembledUnits taken apart againYes
Net unitsUnits built minus units disassembled. Rework is replacement, not new output, so it stays outYes
Work ordersHow many work orders contributedYes
Build runsHow many build runs contributedYes
Average per runBuilt plus rework, divided by the build-direction runsYes

Totals strip: Units built · Build runs · Units reworked · Units disassembled · Items.

Breakdown: every build run behind the row, named by its work order and run id, with the units it contributed. A disassembly counts negative, so the lines sum to built plus rework minus disassembled.

What quality control approved, failed, scrapped and sent back for rework, per item.

One row per item and period.

ColumnWhat it isShown by default
ItemThe finished good, sub-assembly or variant reviewedYes
Item typeBOM, Sub-assembly or VariantYes
ApprovedUnits the reviewer passedYes
FailedUnits the reviewer failedYes
ScrappedFailed units the reviewer scrappedYes
Sent to reworkFailed units the reviewer sent backYes
Scrap rateScrapped as a share of what was reviewedYes
Top failure categoryThe failure category with the largest quantity on this rowYes
ReviewsHow many reviews contributedNo

Voided reviews are excluded entirely, so a reversed build run’s approvals and failures leave the figures.

Totals strip: Approved · Failed · Scrapped · Sent to rework · Items.

Breakdown: the failure categories behind the row, with the units failed under each. A failure with no category reads Uncategorized.

Planned against actual cost for every completed work order, with the variance per unit.

One row per completed work order. Work orders in progress are not in this report.

ColumnShown by default
Work orderYes
CompletedYes
Units completedYes
Planned totalYes
Actual totalYes
Actual cost per unitYes
VarianceYes
Planned materials · Planned sub-assemblies · Planned labour · Planned overheadNo
Actual materials · Actual sub-assemblies · Actual labour · Actual overheadNo

Variance is measured against the latest plan, not the plan as it stood when the work order was created: editing a material or a quantity recomputes the planned figure.

A work order that recorded no consumption at all — a material-list-only one, for instance — reports no actual cost rather than zero, and its units leave the average.

Totals strip: Actual cost · Planned cost · Average cost per unit · Units completed · Work orders.

Breakdown: the work order’s items, each with the units completed, the unit cost it was costed at, and the quantity scrapped.

What manufacturing picked, consumed and returned, per material and location.

One row per material, period and location.

ColumnWhat it isShown by default
MaterialThe raw material, sub-assembly or finished good consumedYes
LocationWhere the movement happenedYes
Material typeRaw material, Sub-assembly or BOMYes
PickedUnits picked for a runYes
ConsumedUnits actually consumed, net of any reversalYes
ReturnedUnits returned to stockYes
Cost at consumptionWhat those units cost at the moment they movedYes
Work ordersHow many work orders contributedYes

This is the one report whose money is the cost at the moment of the event rather than today’s cost. A fully reversed run reads nothing consumed beside what it returned. There is no scrap column here: scrapped units are Scrap and quality’s question.

Totals strip: Consumed · Consumption cost · Returned · Materials.

Breakdown: the work orders behind the row, each with what it consumed, picked and returned.

How long work orders took from creation to completion, and how many met their due date.

One row per completed work order.

ColumnWhat it isShown by default
Work orderThe completed work order the row measuresYes
Created · Started · Completed · DueThe work order’s own timestampsYes
Lead timeCreation to completionYes
On timeWhether completion fell on or before the due dateYes
Wait before startCreation to startNo
Time in buildStart to completionNo
Units completedUnits the work order finishedNo
In progress at period endHow many work orders were still open when the period (or bucket) closed. Marked Estimate, because exactly where the boundary falls changes it. Only meaningful with a Group byNo

On time compares calendar days in your shop’s time zone on both sides, because a due date is a day and not an instant. A work order that is re-opened counts as work in progress again.

Totals strip: Work orders · Average lead time · On time · Units completed.

Breakdown: the work order’s lifecycle steps in order — Created, Marked ready, Started, Paused, Sent to quality control, Completed and the rest — with the time each one took.

All five read what your order executions demanded. Three of them also answer on the Sold basis; see Basis.

What orders demanded of each finished good, and how much of it came off the shelf.

One row per finished good, period and location. Two bases.

ColumnWhat it isShown by defaultBasis
Finished goodThe finished good the orders demandedYesBoth
LocationThe location the execution resolved toYesBoth
Net unitsDemanded minus restoredYesBoth
Orders (counted per bill)Distinct orders touching this billYesBoth
ExecutionsHow many executions contributedNoExecuted only
Units demandedWhat orders asked forNoExecuted only
Units restoredWhat refunds and cancellations put backNoExecuted only
From the shelfUnits met from pre-assembled stockNoExecuted only
From componentsUnits built out of components at order timeNoExecuted only
RevenueThe discounted total of the units sold, net of refunds and editsNoSold only

Totals strip (Executed): Net units · Units demanded · Units restored · From the shelf · Finished goods. Totals strip (Sold): Net units · Orders · Revenue · Finished goods.

Breakdown: the components one level below this bill — its sub-assemblies and raw materials — with what each was demanded for. Not available on the Sold basis.

What executions demanded of each sub-assembly, and whether it came off the shelf, out of components, or fell short.

One row per sub-assembly, period and location. Two bases.

ColumnWhat it isShown by defaultBasis
Sub-assemblyThe sub-assembly the executions demandedYesBoth
LocationThe location the execution resolved toYesBoth
DemandedWhat executions asked forYesBoth
Parent finished goodsHow many bills demanded itYesBoth
Orders (counted per sub-assembly)Distinct orders touching this sub-assemblyYesBoth
From the shelfMet from pre-assembled stockNoExecuted only
From componentsBuilt out of its own componentsNoExecuted only
ShortfallDemanded but met by neitherNoExecuted only
Cut offHow many executions found this sub-assembly limited to its pre-assembled stock — the Only consume pre-assembled settingNoExecuted only
Shelf shareFrom the shelf as a share of demandedNoExecuted only

Totals strip (Executed): Demanded · From the shelf · From components · Shortfall · Sub-assemblies. Totals strip (Sold): Demanded · Parent finished goods · Orders · Sub-assemblies.

Breakdown: the finished goods this sub-assembly was demanded by, with the quantity each one demanded. Not available on the Sold basis.

What orders consumed of each raw material, what refunds put back, and what it is worth.

One row per raw material, period and location. Two bases.

ColumnWhat it isShown by defaultBasis
MaterialThe raw material the orders demandedYesBoth
LocationThe location the material was demanded atYesBoth
Net demandDemanded minus restoredYesBoth
Orders (counted per material)Distinct orders touching this materialYesBoth
Finished goodsHow many bills demanded itYesBoth
Unit costThe material’s cost per unit todayYesBoth
Demand valueDemanded quantity at today’s unit cost. Marked EstimateYesBoth
DemandedWhat executions asked forNoExecuted only
RestoredWhat refunds and cancellations put backNoExecuted only

Demand value is priced at today’s cost, because the demand record stores quantities and not the price of the day. For what a consumption actually cost when it happened, read Manufacturing consumption.

Totals strip (Executed): Net demand · Demanded · Restored · Demand value · Materials. Totals strip (Sold): Net demand · Demand value · Orders · Materials.

Breakdown: the assemblies the material was pulled through, with the quantity each path carried. A material that hangs off the bill itself is reported under that bill. Not available on the Sold basis.

How much of what your shop assembled came off the pre-assembled shelf instead of being built from components.

One row per assembly and period, where an assembly is a finished good or a sub-assembly at any depth. One basis. No Location column, though the location scope still decides which executions count.

ColumnWhat it isShown by default
AssemblyThe bill or sub-assemblyYes
Assembly typeBOM or Sub-assemblyYes
DemandedWhat executions asked forYes
From the shelfMet from pre-assembled stockYes
From componentsBuilt out of componentsYes
Shelf shareFrom the shelf as a share of demandedYes
ShortfallDemanded but met by neitherYes

Totals strip: From the shelf · From components · Shortfall · Assemblies · Shelf share. The strip’s shelf share is the ratio over the whole period, not the average of the per-row shares, so a one-unit assembly does not weigh as much as a thousand-unit one.

Breakdown: the orders the assembly was pulled for, with what each demanded and how it was met.

How many order executions ran in each period, how many failed, and how long they took.

One row per period. It is the one report whose row is a stretch of time rather than a thing, so it opens grouped by week. It has no location control (one execution can touch several locations), no search box (there is no name in it) and no row breakdown — a stretch of time has no named parts to open.

ColumnWhat it isShown by default
PeriodThe week, day or monthYes
ExecutionsExecutions that ranYes
FailedExecutions that failedYes
Nothing to buildExecutions that matched no bill at allYes
Average processing timeHow long the app itself tookYes
Average time from order to doneFrom the order notification arriving to the execution finishingYes

Totals strip: Executions · Failed · Average processing time.

Both sales reports read a local copy of your Shopify orders. See Order sync.

Variants you sold in the period that have no bill of materials behind them.

One row per variant and period. No location control: a variant with no bill consumes nothing anywhere.

ColumnShown by default
ProductYes
SKUYes
Units soldYes
OrdersYes
RevenueYes

This is the list of things you might want to model. Sorted by units sold, the top of it is where modelling pays off first.

Totals strip: Units sold · Revenue · Variants.

Breakdown: the orders this variant was sold on, with the units on each.

Orders that contain a finished good you model, and for which no bill of materials was ever executed.

One row per order, newest first. No location control, and no row breakdown.

ColumnWhat it isShown by default
OrderThe order number. Selecting it opens the Historical Orders tool with that order already selectedYes
CreatedWhen the order was placedYes
Modelled linesHow many lines on it match a billYes
UnitsHow many units those lines carryYes
StatusNever seen, or Seen, no BOM matchedYes

The two statuses mean different things:

  • Never seen. The app has no record of the order at all. Either it was placed before you installed the app, or its notification never arrived.
  • Seen, no BOM matched. The app processed the order and executed nothing, because nothing on it matched a bill of materials at the time.

To take several at once, tick their rows and choose Replay selected, which opens the same tool with all of them loaded.

The report never replays anything itself. The Historical Orders tool checks each order first, tells you which ones it will skip and why, and asks you to confirm, because replaying an order consumes its components for real and cannot be undone.

Totals strip: Orders · Units.

Both are scorecards: five figures for the period, and the same five for the period before it. They have no rows, so no Group by, no filters, no columns, no breakdown and no export.

FigureWhere it comes from
Units builtBuild output
Scrap rateScrap and quality
Cost per unitCost per build
On timeThroughput
Consumption costManufacturing consumption

Carries the period control and the location scope.

FigureWhere it comes from
Net units soldYour orders, net of refunds and removed units
RevenueYour orders, net of refunds and edits
OrdersDistinct orders with at least one line still sold
Unmodelled unitsUnmodelled sales
Orders without executionOrders without execution

Carries the period control only. There is no location scope: an order line has no location of its own, only its shipments do, and this scorecard counts the shop.

  • Reading a report — the toolbar, charts, saved views and export.
  • Order sync — the copy of your Shopify orders the sales reports read.
  • Overview — the catalogue and the three families.