Skip to main content

Material Usage Tracking

Key Concepts

Printago records how much filament every print actually consumed: per color, per slot, per attempt. The numbers come from analyzing the sliced G-code itself, layer by layer, so a print that stopped partway is charged only for the layers it actually ran, and an object you skipped is charged only up to the layer it was skipped at. Each attempt keeps its own record alongside the slicer's original estimate, so you can always see predicted versus actual for any print, including the ones that didn't finish.

You'll see these numbers in the Material used section of the Print Telemetry panel, in the Material usage recorded notification, and in the print-history API.

Material used per color with grams and slot, plus a skipped object
Material used: grams actually consumed per color and slot, with skipped objects listed alongside.

How usage is measured

When a job is sliced (or dispatched with an already-sliced file), Printago analyzes the G-code and builds a map of how much filament every layer uses, broken down by slot and, where the slicer marked them, by object. That map is what usage is measured against:

  • A print that finishes is recorded at the slicer's own totals for the plate, per slot.
  • A print that stops early, whether it failed or was cancelled, is charged only for the layers it completed. Printago takes the last layer the printer reported and sums the filament up to that point.

Totals are tracked in millimeters of filament and converted to grams using the density figures from the filament profile the plate was sliced with. If a profile doesn't supply a weight, that slot's usage is shown as a length instead of a weight.

Purge, prime tower, and flush filament is always counted in the totals. It isn't attributed to any particular object, because the printer extrudes it regardless of which objects end up printing.

Skipped objects

Skipping an object stops its filament from being counted from that point on. A skipped object is charged only up to the layer where it was skipped:

  • Skipped at print start (excluded before the first layer): the object contributes nothing to the total.
  • Skipped mid-print: the object is charged for the layers it printed before the skip, and nothing after.

This applies no matter where the skip came from. Objects skipped from Printago, from the printer's own screen, or from the Bambu app are all detected and accounted the same way.

Each attempt's print history record also stores how much filament the skipped objects would have used. So when a print's total comes in under the slicer's estimate, the record explains itself: the estimate assumed the whole plate, and the difference is sitting in the excluded amount.

note

Attributing filament to individual objects relies on the slicer labeling objects in the G-code, which OrcaSlicer and Bambu Studio do by default. If a skip can't be matched to an object in the G-code, Printago counts that filament as used rather than guessing at a deduction.

Cancelled prints

Cancelling a print from Printago records the filament used up to the layer the print reached, exactly as if the print had been stopped at the printer. Objects that had been skipped by that point are deducted the same way as on any other print.

A job cancelled before it ever started printing records no usage. If a print stopped but the printer never reported which layer it reached, Printago records the attempt with its details marked unknown rather than inventing a number.

Per-slot and per-color breakdown

Usage is recorded against the physical slot the filament actually came from: a specific AMS slot or the external spool. At the end of the print, Printago also snapshots which material was loaded in each of those slots, so the record stays accurate even if you later swap spools or reassign materials. That's what lets the Material used section show "Bone White · Bambu Lab PLA Matte, 12.4 g, AMS 1 · Slot 2" long after the spool has moved on.

Retries and estimates

Every attempt gets its own usage record. Retrying a job never overwrites the previous attempt's numbers, so a failed run's partial usage sits next to the successful run's full usage.

Each history record also snapshots the slicer's estimate from the time of the print: estimated total weight, estimated per-filament usage, and estimated print time. Actual and estimated live on the same record, which is what makes usage useful for spotting drift between what the slicer predicts and what your printers really consume.

Where the numbers appear

  • Print Telemetry panel: open any finished job from the Print Queue to see material used per color and slot, the total, and any skipped objects. See Print History & Telemetry.
  • Notifications: the Material usage recorded event (under Settings > Account > Notifications) fires when a print reaches any final state and includes the amount used, layers completed, and outcome. Webhook payloads additionally include the full per-slot breakdown and the excluded amount for skipped objects.
  • API: the print-history endpoints return every attempt with its actual usage, per-slot breakdown, skipped objects, and the slicer estimate snapshot, and support filtering on the totals. See the developer docs.
Spool inventory

Recorded usage does not currently decrement a spool's remaining weight in Printago. The most-empty and most-full spool selection strategies use the remaining amount reported live by the printer (AMS/RFID), not Printago's usage records.