Skip to content

K-13

First Pass Yield

Of everything started into the process, how much came out conforming the first time — measured at which boundary, counted in which units, and with rework recorded where it can still be seen?

Verified August 2026

Definitions and source tables below are current to the date above — verify against current SAP, Oracle, Microsoft, Infor, and Databricks documentation before you build.

What first pass yield measures

First pass yield is the share of units that come through a production process conforming on the first attempt — no rework, no scrap, no fixed-before-anyone-noticed. Final yield reports what the process delivered eventually; first pass yield reports what it cost to get there, because every point of gap between the two was paid for in rework labor, queue time, and capacity the schedule thought it had.

Unusually for this dictionary's recent entries, there is a published definition to inherit: the ASCM Supply Chain Dictionary (19th edition, 2025) carries first pass yield as a headword — output that conforms on the first attempt, over everything entering the process. That settles the spirit of the numerator. Everything operational below it — where the process boundary sits, which unit votes, how a multi-step figure is rolled up — is convention this entry has to author, with the alternatives named beside each choice.

The metric's real integrity switch is not a definition choice but a recording one. A work order can pass through an operation more than once, and if the second pass updates the first pass's result in place, the evidence that a first pass failed is destroyed — the FPY computed from that table is final yield under a flattering name, and no arithmetic recovers the difference afterwards. The fix is upstream, in modeling rework as its own attempt, which is why this entry treats the data contract as part of the definition.

The last trap is aggregation. A routing's yield is not the mean of its operations' yields: where every unit must pass every step in sequence, the honest roll-up is the product of the step yields — rolled throughput yield — which is why a line of individually respectable steps can ship a startlingly small share of units untouched. Where the routing is not strictly serial, no step arithmetic substitutes for unit lineage.

Also answers to FPY · First Time Yield · First Time Through (FTT) · Throughput Yield

The decision switches

Four switches. The third one decides whether the metric can be computed at all.

The decision switches, their settings, and the practice default for each
SwitchSettingsPractice default
First-pass boundaryEvery operation in the declared boundary, zero rework and zero scrap · Final inspection onlyDeclare the boundary — operation, routing segment, or whole order — and credit only units with no rework or scrap recorded anywhere inside it. Publish final yield beside it, labeled as final yield.
Unit basisUnits · Orders or lotsUnits as the headline. An order-level pass rate is a different metric on a different key — publish it under its own name if the shop runs order by order, never silently in FPY's place.
Rework recordingRework as its own attempt or operation · Rework overwrites the original resultPreserve every attempt. If the source updates results in place, FPY cannot be reconstructed for past periods — start capturing attempts at the landing layer and state when that clock started.
Single operation vs rolled throughputPer-operation FPY at a named step · Rolled throughput yield across serial operationsPublish per-operation FPY as the working grain. Roll up only by multiplying along a strictly serial routing, label the result rolled throughput yield, and never roll a routing with parallel or optional paths without unit lineage.

First-pass boundary

  • lowers the scoreEvery operation in the declared boundary, zero rework and zero scrap the strict reading — one recorded rework loop anywhere inside the boundary fails the unit
  • raises the scoreFinal inspection only units reworked into conformance upstream still pass — this is final yield wearing FPY's name

Practice default Declare the boundary — operation, routing segment, or whole order — and credit only units with no rework or scrap recorded anywhere inside it. Publish final yield beside it, labeled as final yield.

Unit basis

  • dependsUnits the additive default — every unit votes once and the number survives drill-down
  • lowers the scoreOrders or lots one reworked unit fails the whole order, and a two-unit order counts the same as a two-thousand-unit one

Practice default Units as the headline. An order-level pass rate is a different metric on a different key — publish it under its own name if the shop runs order by order, never silently in FPY's place.

Rework recording

  • dependsRework as its own attempt or operation the first-pass result survives, and FPY stays computable from history
  • raises the scoreRework overwrites the original result everything eventually reworked into conformance reads as first-pass good, and the evidence is gone

Practice default Preserve every attempt. If the source updates results in place, FPY cannot be reconstructed for past periods — start capturing attempts at the landing layer and state when that clock started.

Single operation vs rolled throughput

  • dependsPer-operation FPY at a named step the diagnostic grain — each step's number stands on its own denominator
  • lowers the scoreRolled throughput yield across serial operations the product of the step yields — at or below the worst step by construction, and only valid when every unit passes every step in sequence

Practice default Publish per-operation FPY as the working grain. Roll up only by multiplying along a strictly serial routing, label the result rolled throughput yield, and never roll a routing with parallel or optional paths without unit lineage.

Formula & grain

FPY = Σ units first-pass good ÷ Σ units started

Numerator
Units that completed the declared boundary conforming, with no rework and no scrap recorded on the way through
Denominator
Units started into the boundary in the period
Grain
Item × work center or line × period, with the boundary named on the figure
Note
Rolled throughput yield across a strictly serial routing is the product of the step FPYs — never their mean — and sits at or below the worst step by construction.

Common pitfalls

  • Rework overwriting its first attempt If reworking a unit updates the original operation result in place, first-pass evidence is destroyed and FPY silently becomes final yield. Model rework as its own attempt or operation in the landing layer, and treat a source that overwrites as unable to answer the question for past periods.
  • Counting completions instead of starts A denominator built from what finished the period excludes the scrap that never finished — precisely the loss the metric exists to expose. Take the denominator from units started into the boundary, and reconcile first-pass good, reworked-good, scrap, and still-in-process back to it.
  • Averaging step yields A routing's FPY is not the mean of its operations' FPYs, and a quarter's is not the mean of thirteen weekly percentages. Multiply along a strictly serial routing; for any period or scope roll-up, recompute summed first-pass good over summed starts.
  • Letting the BOM scrap factor absorb real loss The scrap factor on a BOM line is a plan allowance, not an observation. Netting realized scrap against it before reporting hides unplanned loss inside planned loss — keep the allowance on the plan side and realized scrap on the execution side as separate columns, so the variance between them stays visible.
  • Confusing FPY with a machine's quality rate The quality component of an equipment-effectiveness figure is good over produced at the machine event — it usually counts reworked units as good and knows nothing about what was started into the process. OEE itself is not published in this dictionary because its availability and performance components need planned-busy-time and downtime-event records at machine-event grain, which none of the six ERP references catalog. FPY is a process-boundary metric with starts in the denominator; publish the two as different numbers.

Source tables — SAP

The order header and item carry what was started; confirmations are the first-pass surface, because each operation confirmation records yield, scrap, and rework quantities as separate fields — exactly the attempt-level evidence the metric needs. Where the boundary is an inspection, production-origin inspection lots and their usage decisions carry the accept-or-reject outcome.

Source tables — JD Edwards

The work order header carries ordered, completed, and scrapped quantities; the routing detail carries completed and scrapped per operation — the closest thing to attempt grain this reference maps — and component scrap sits on the parts list. Completions post to the item ledger. This reference catalogs no quality-management tables, so the work-order quantities are the first-pass surface; convert implied decimals before summing anything.

Source tables — Dynamics 365

Report as finished splits good quantity from error quantity on the production journal, which this reference does not catalog — the inventory transaction ledger carries the good receipt against the order, so the error side has to be landed raw alongside this trio. The order BOM carries the planned scrap allowance — the plan side, not the observation. The cataloged set has no route-transaction or quality-order table, so a production build lands those raw underneath this trio; pin DataAreaId everywhere and decode the status enum.

Source tables — Infor M3

The order header carries ordered against completed quantities, operations give the per-step grain, and materials carry required against reported for components. CONO pinning and the status ladder apply — the ladder is what decides whether an order is complete or merely reported. No quality tables are cataloged for this reference, so the manufacturing-order trio is the first-pass surface.

Source tables — Oracle EBS

Operations carry live per-step counters including reject and scrap, but counters are current state — derive first-pass history from the move ledger, where a move into a scrap or reject intraoperation step is the failure event with its date. Job-level scrapped quantity sits on the discrete job, and completions land as transactions in the material ledger. Oracle Quality's results tables are not in the cataloged set; the WIP step structure is the first-pass surface here.

Source tables — Oracle Fusion

The cleanest first-pass ledger of the six: operation transactions record completions, scrap, reject, and their reversals as explicit movements of product quantity through the operation's dispatch states, so a first-pass test reads events rather than reconstructing them. Reversals write new rows that move quantity back, so net the rows rather than counting events. The work order carries the build quantity for the denominator side. Quality-inspection tables are not in the cataloged set for this reference — the execution ledger is the surface.

Store the components, not the ratio

Every switch above is a different way of reading the same underlying facts, so the components — quantities, dates, values, flags — are what belongs in the gold layer, never the finished percentage. Bronze keeps the source tables as extracted, silver resolves the encodings once, and gold carries a component-level fact that each variant of First Pass Yield reads as a SELECT — the pattern worked through in full in the OTIF entry's landing pattern.

Related

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by SAP, Oracle, Microsoft, or Infor. Product names are trademarks of their respective owners.