Free template · Excel
Daily production report format for CNC shops
One block per machine, one row per shift: what was planned, what was made, what was rejected and where the time went — with plan attained, OEE and the loss in rupees worked out for you.
| Parts | Performance | Cost | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Shift | Planned | Good | Rejected | Loss | Attained | OEE | Downtime | Rejection | Downtime |
| VMC-01 · Program O1201 · Flange 40 | |||||||||
| Shift A | 400 | 388 | 4 | 8 | 97% | 75% | 32 m | ₹720 | ₹293 |
| Shift B | 400 | 352 | 8 | 40 | 88% | 68% | 1 h 30 m | ₹1,440 | ₹825 |
| Shift C | 400 | 376 | 2 | 22 | 94% | 73% | 40 m | ₹360 | ₹367 |
| Total | 1,200 | 1,116 | 14 | 70 | 93% | 72% | 2 h 42 m | ₹2,520 | ₹1,485 |
Inside the file
What’s in the template
Six sheets. You fill the white cells on the daily report and the two logs; everything tinted blue calculates itself. Part details and your cost per machine-hour go in once, on the Settings sheet. Example rows for three machines show how it reads — overwrite them with your own.
1 · Daily report
Eight summary figures on top, then each machine with a row per shift and a total. Plan attained is colour-banded so the shifts that fell short stand out.
| Parts | Performance | Cost | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Shift | Planned | Good | Rejected | Loss | Attained | OEE | Downtime | Rejection | Downtime |
| VMC-01 · Program O1201 · Flange 40 | |||||||||
| Shift A | 400 | 388 | 4 | 8 | 97% | 75% | 32 m | ₹720 | ₹293 |
| Shift B | 400 | 352 | 8 | 40 | 88% | 68% | 1 h 30 m | ₹1,440 | ₹825 |
| Shift C | 400 | 376 | 2 | 22 | 94% | 73% | 40 m | ₹360 | ₹367 |
| Total | 1,200 | 1,116 | 14 | 70 | 93% | 72% | 2 h 42 m | ₹2,520 | ₹1,485 |
| HMC-02 · Program O2210 · Housing 12 | |||||||||
| Shift A | 380 | 384 | 6 | 0 | 101% | 77% | 18 m | ₹1,440 | ₹165 |
| Shift B | 380 | 318 | 12 | 50 | 84% | 64% | 1 h 05 m | ₹2,880 | ₹596 |
| Shift C | 380 | 350 | 5 | 25 | 92% | 70% | 45 m | ₹1,200 | ₹412 |
| Total | 1,140 | 1,052 | 23 | 75 | 92% | 71% | 2 h 08 m | ₹5,520 | ₹1,173 |
2 · Machine-wise loss
Nothing to fill. Each machine’s shortfall becomes loss hours and loss cost in rupees, next to its ideal and actual cycle time.
| Machine | Part | Ideal cycle (s) | Actual cycle (s) | Planned | Good | Attained | OEE | Loss qty | Loss hours | Loss cost |
|---|---|---|---|---|---|---|---|---|---|---|
| VMC-01 | Flange 40 | 56 | 61.8 | 1,200 | 1,116 | 93% | 72% | 70 | 1.21 | ₹663 |
| HMC-02 | Housing 12 | 58 | 63.7 | 1,140 | 1,052 | 92% | 71% | 75 | 1.38 | ₹756 |
| CNC-03 | Shaft 8 | 27 | 30.9 | 2,400 | 2,183 | 91% | 68% | 193 | 1.66 | ₹914 |
| Total | 4,740 | 4,351 | 92% | 338 | 4.25 | ₹2,333 | ||||
3 · Downtime log
One row per stop, reason from a drop-down. Minutes calculate from start and end — including a stop that runs past midnight.
| Machine | Shift | Start | End | Minutes | Reason ▾ | Planned / Unplanned ▾ |
|---|---|---|---|---|---|---|
| VMC-01 | B | 14:10 | 15:40 | 90 | Waiting for material | Unplanned |
| HMC-02 | A | 07:20 | 07:38 | 18 | First-piece inspection | Planned |
| CNC-03 | C | 23:50 | 00:15 | 25 | Breakdown | Unplanned |
4 · Rejects log
Each batch of rejects with its reason, rework or scrap, and its cost from the part list on the Settings sheet.
| Machine | Shift | Part | Qty | Reason ▾ | Rework / Scrap ▾ | Cost |
|---|---|---|---|---|---|---|
| HMC-02 | B | Housing 12 | 12 | Dimension out of tolerance | Scrap | ₹2,880 |
| VMC-01 | B | Flange 40 | 8 | Setup / first-off piece | Scrap | ₹1,440 |
How to read it
The three numbers that matter
1 · Plan attained
Plan attained = Good parts ÷ Planned quantity
It answers the first question every morning: did each machine make what it was supposed to? Good parts only, so a shift that made scrap doesn’t look better than it was. In the example, HMC-02’s B shift reached 84% — the red row is where the conversation starts.
Daily report · HMC-02 Shift Planned Good Attained Shift A 380 384 101% Shift B 380 318 84% Shift C 380 350 92% 2 · OEE
OEE = Availability × Performance × Quality
Plan attained says whether a machine fell short; OEE says why — it stopped, it ran slow, or it made rejects. The template computes it from run time, planned time and the ideal cycle on the Settings sheet. See what OEE means.
Daily report · all machines Availability run time ÷ planned time 80% Performance ideal cycle × made ÷ run time 90% Quality good ÷ made 99% OEE A × P × Q 70% 3 · Loss in rupees
Loss hours = Parts short × (Ideal cycle + Handling) ÷ 3,600
Loss cost = Loss hours × Cost per machine-hour
It weighs a shortfall by the machine time it represents, not just the part count. In the example, CNC-03 missed 193 parts against VMC-01’s 70, but its short cycle makes the loss ₹914 against ₹663 — of ₹2,333 across 4.3 lost machine-hours in all.
Machine-wise · loss Machine Loss qty Loss hours Loss cost VMC-01 70 1.21 ₹663 HMC-02 75 1.38 ₹756 CNC-03 193 1.66 ₹914
All figures are the template’s illustrative example rows, at ₹550 per machine-hour. Your own numbers replace them.
What to record, and when
Fill it at the end of every shift, not from memory the next morning — stop reasons are the first thing to get lost.
Machine, shift, program, part
- Where
- Daily report, every shift
- Why it matters
- Losses are machine- and part-specific; plant totals hide them
Planned quantity
- Where
- Daily report
- Why it matters
- The baseline everything else is read against
Good and rejected parts
- Where
- Daily report
- Why it matters
- Splits a quantity problem from a quality problem
Planned time and run time (min)
- Where
- Daily report
- Why it matters
- Gives availability — how much of the shift the machine ran
Downtime minutes and main reason
- Where
- Daily report + downtime log
- Why it matters
- Points the next morning’s meeting at a cause
Each reject batch and reason
- Where
- Rejects log
- Why it matters
- Shows which defect costs the most
Ideal cycle, handling time, cost per part
- Where
- Settings, once
- Why it matters
- Turns counts into OEE and rupees
Cost per machine-hour
- Where
- Settings, once
- Why it matters
- Puts a price on downtime and shortfall
| Field | Where | Why it matters |
|---|---|---|
| Machine, shift, program, part | Daily report, every shift | Losses are machine- and part-specific; plant totals hide them |
| Planned quantity | Daily report | The baseline everything else is read against |
| Good and rejected parts | Daily report | Splits a quantity problem from a quality problem |
| Planned time and run time (min) | Daily report | Gives availability — how much of the shift the machine ran |
| Downtime minutes and main reason | Daily report + downtime log | Points the next morning’s meeting at a cause |
| Each reject batch and reason | Rejects log | Shows which defect costs the most |
| Ideal cycle, handling time, cost per part | Settings, once | Turns counts into OEE and rupees |
| Cost per machine-hour | Settings, once | Puts a price on downtime and shortfall |
Compared with a typical free template
Most free production report templates are a single table — machine, target, actual, downtime, remarks. That records what happened; it doesn’t say what it cost.
Rejects and quality
- Typical template
- Often missing
- This template
- Good and rejected per shift, reject log with reasons
OEE
- Typical template
- No
- This template
- Availability × performance × quality, per shift and per machine
Totals
- Typical template
- Plain sums
- This template
- Per machine and plant, ratios worked out from raw counts
Cost
- Typical template
- No
- This template
- Rejection cost, downtime cost, loss hours and loss cost in ₹
Reasons
- Typical template
- Free text
- This template
- Drop-downs from one editable list, so they stay comparable
Problem rows
- Typical template
- You find them
- This template
- Plan attained colour-banded at 100% and 85%
| Typical template | This template | |
|---|---|---|
| Rejects and quality | Often missing | Good and rejected per shift, reject log with reasons |
| OEE | No | Availability × performance × quality, per shift and per machine |
| Totals | Plain sums | Per machine and plant, ratios worked out from raw counts |
| Cost | No | Rejection cost, downtime cost, loss hours and loss cost in ₹ |
| Reasons | Free text | Drop-downs from one editable list, so they stay comparable |
| Problem rows | You find them | Plan attained colour-banded at 100% and 85% |
With ThingConnect
The same report, filled in by the machines and sent every morning
This layout is the daily production report ThingConnect builds from the controllers and emails to the plant each day — parts counted by the machine, stops timed as they happen, reasons picked by the operator at the machine. Nobody compiles it at the end of a long shift.
- · Parts and cycles from each controller
- · Downtime and rejects with their reasons
- · Plan attained, OEE and cost per machine and shift
- · See production tracking and downtime tracking
Frequently asked questions
Per machine and shift: planned quantity, good parts, rejected parts, planned time, run time and downtime with its main reason. From those, the report works out loss, plan attainment, OEE and the cost of rejects and downtime — none of which should be typed in by hand.
Usually the shift supervisor or line in-charge, from what operators note during the shift. It works best when each stop and reject is written down as it happens, so the supervisor compiles the report rather than reconstructing it the next morning from memory.
A shift report covers one shift on each machine and is filled at shift end. A daily report puts all shifts together, so it shows totals per machine and which shift lost the most. This template does both: one row per shift and a total row per machine.
Plan attained = good parts ÷ planned quantity. Use good parts, not total produced, so rejects don’t make a shift look better than it was. The template colours it green at 100% or more, amber from 85% and red below 85%, so the problem rows stand out.
OEE = availability × performance × quality. Availability is run time ÷ planned time, performance is ideal cycle × parts made ÷ run time, and quality is good ÷ made. Machine and plant totals add the raw counts first and divide once, instead of averaging percentages.
Loss hours turn a shortfall in parts into machine time: parts short of plan × (ideal cycle + handling time) ÷ 3,600. Loss cost multiplies that by your cost per machine-hour. It shows which machine’s shortfall is costing the most, not just which one missed by the most parts.
Yes. Upload the file to Google Drive and open it with Google Sheets. The formulas use standard functions such as SUMIF, VLOOKUP and IFERROR, and the reason lists are ordinary drop-downs, so the template works the same way there.
There is no single target that fits every shop — a job shop with frequent setups will run lower than a repeat-part line. The useful comparison is the same machine and part over time. The 85% amber line in the template is a starting point you can change.
Get this report built automatically from your machines, every shift
A 30-minute call: your controllers, your shift pattern, your numbers.
