ThingConnect

Production tracking

Part counts from the controller, not the clipboard

ThingConnect reads production counts and cycle data straight from each machine’s control, so you see actual output against plan, hour by hour, while the shift is still running.

Purpose-built for machines controller-native cloud-first

Production timeline · last 3 days · all machines

Parts made vs plan, one bar per day. The plan line is all four machines' targets — 1,680 a day.

1,9201,4409604800
1,495
1,396
1,545
09-SEP10-SEP11-SEP
Near planBehind planWay behindPlan · 1,680/day
Three days, none of them at plan: 89.0%, then 83.1%, then 92.0%.
Same three days · scope: one machine

The same report with Scope narrowed to one machine, each against its own daily target.

VMC-04384/day
244
210
268
09-SEP10-SEP11-SEP
VMC-01440/day
409
396
428
09-SEP10-SEP11-SEP
VMC-03448/day
436
402
441
09-SEP10-SEP11-SEP
Lathe-01408/day
406
388
408
09-SEP10-SEP11-SEP
Near planBehind planWay behindIts own daily plan
VMC-04 is the whole gap — 244, 210 and 268 against 384 a day.

The window at a glance

Four numbers, and the plan they're judged against

Good parts carry the plan they were measured against, not just a count. Each tile compares against the previous period, so you can tell a bad run from a bad pattern.

KPI strip · last 3 days · compare: prior 3 days
Good parts
4,436
of 5,040 planned
Plan attainment
88.0%
▲ 4.2 pp
OEE
73.5%
1.8 pp below the prior period
Downtime
8h 21m
30 idle events across 4 machines

The problem

The gap between the plan and the floor

  • Actual output is discovered at shift end — eight hours too late to recover the shortfall.
  • Hourly boards are filled in by hand, when someone remembers, in someone's handwriting.
  • Cycle times drift ten percent over months and nobody notices until delivery dates slip.
  • Production reports take an hour of Excel every morning, and still get argued with.

How the plan gets set

A target per machine, per shift, per day

Attainment only means something if the plan behind it is real. One plant-wide setting decides which of these two ways it gets set — and either way the target is computed, not typed.

Pre-Planned

Part/target/operator are assigned here, ahead of time.

  • The shift target computes itself from the part's engineered cycle time
  • A machine nobody scheduled reads differently from one somebody half-scheduled
  • Planned one day at a time — no recurring template to drift out of date
Production plan · Sat 12 Sep · A shift

One entry per machine, shift and date. Clicking a row opens the assign drawer, where the program and the shift target derive themselves from the part picked.

Production plan for Saturday 12 September, A shift. A week strip runs Mon 7 to Sun 13 with Friday 11 marked today and Saturday 12 selected, above shift tabs for A 06:00-14:00, B and C. Four machine rows: VMC-01 running MB-4417 pump housing, target 440, operator A. Kumar, planned; VMC-03 running CV-882 valve body, target 380, unassigned operator; VMC-04 no part, R. Nair, unassigned part; Lathe-01 no part, unplanned. Beside it the assign drawer for VMC-04 shows a machine-running toggle, part MB-4417, program 06402, target 384, operator R. Nair and a note field.Tap to zoom
Turning the toggle off marks a machine as not running that shift — different from having no entry at all.

Operator-Entered

Operators declare their own part from the Operator Screen.

  • The control triggers it — a program change, not a reminder
  • The part the operator picks is mapped to that program
  • The target still computes itself; who they are comes from their login
Operator screen · program change on the control

The banner appears on the machine's own screen when the live program stops matching the part on file. Setting the part maps it to that program, so the same changeover doesn't ask twice. The planning screen turns read-only while this mode is on.

The operator screen on machine VMC-04, running, with hour lanes and a 'Program Changed' dialog reading from 05471 to 06402 and offering Dismiss or Set Part. Beside it a part picker headed 'What are you running?', noting the choice will be mapped to program 06402 on this machine, with tabs for an existing or new part and four options: MB-4417 pump housing, CV-882 valve body, SH-2201 drive shaft, PL-115 pillow block. One tap picks and submits, with no separate confirm.Tap to zoom
Ideal cycle time isn't asked for — an operator doesn't know it. The part still needs an engineer on the Parts screen before its target becomes computable.

Which machine

Worst attainment first, because a ranking exists to be acted on

The same three days, broken out per machine, sorted by whichever is dragging hardest. Column headers don’t re-sort it. A ranking you can silently re-order isn’t a ranking.

Per machine · last 3 days
MachineGoodPlanAttain.OEE
VMC-047221,15262.7%52.1%
VMC-011,2331,32093.4%77.4%
VMC-031,2791,34495.2%79.8%
Lathe-011,2021,22498.2%84.7%
4 machines in scope, sorted worst attainment first — row is one machine's totals for this window.

Where the hours went

Production is the hours that ran, minus the hours something took

604 parts short isn’t an answer, it’s a question. A shift only ever splits two ways — time that made parts and time that didn’t — so a shortfall stays unexplained until the second half has names and hours against it. Everything above accounts for the running hours. This is the other side of that subtraction, which is why the downtime breakdown belongs on a production page and not only on a downtime one.

Top-5 downtime reasons · last 3 days
Breakdown4h 06m
Material shortage1h 36m
Tool change1h 12m
Setting51m
Unclassified21m

Each reason carries its own configured colour · unclassified keeps its own bar

The 8h 21m the KPI strip counts, split by what took it. The top 5 sit here with a link through to the full downtime report — one event stream behind both, so the two screens can't disagree about the top loss.

Why the target slips

Cycle drift stays invisible until it's plotted against the standard

Every completed cycle for one part, bucketed by duration and stacked by the machine that ran it. Nine seconds over the standard costs about six parts per machine per shift — and the stack shows which machine is spending them.

Cycle distribution · MB-4417 Pump housing · last 3 days

Completed cycles by duration. Ideal is the part's engineered cycle time, never a target somebody typed in.

Completed cycles for part MB-4417 bucketed by duration from 195 to 230+ seconds, one line per machine. A dashed ideal marker sits at 205 seconds and the median is 214. VMC-01 peaks at about 23 cycles across the 210 and 215 buckets and still has roughly 5 cycles in the 230+ bucket; VMC-03 peaks earliest, about 18 at 205 and 20 at 210, then falls away fastest; Lathe-01 peaks at 18 around 210; VMC-04 is the flattest, peaking near 14. Every machine runs slower than the 205-second ideal.Tap to zoom
VMC-01 owns five of the nine cycles beyond 230 seconds.
Counts

Read from the control's own produced-parts counter, which it increments at M30 as each part completes. Where a control doesn't maintain that counter, the part program increments a macro variable that gets read instead. A part is only counted when the number rises, so a counter reset at shift change never reads as output.

Multi-up fixtures

A four-up fixture yields four parts per cycle, not one. Set once against the part, overridable per program, and applied to every count and cycle figure after it.

Ideal cycle time

Held against the part rather than the machine, so the same part running on two machines is judged against one standard and the gap between them becomes visible.

Rejects

Logged against the same window the parts were counted in — never a different window, and never assumed to be zero.

Where most tools guess

With no plan to measure against, the number stays blank.

An invented percentage reads as a catastrophe. It sends a supervisor to a machine that ran perfectly well against a target nobody ever set. So attainment comes back empty, captioned no plan set for this window, until there’s a real target to compare it to.

The same rule holds plant-wide. A machine with no plan is left out of the attainment figure entirely rather than padding a denominator it never contributed to. Its parts still count toward output — they just aren’t measured against a target that doesn’t exist.

KPI strip · machine with no plan entry
Good parts
394
counted from the control
Plan attainment
—
no plan set for this window

Built for real shift patterns

Your plant's day, not the software's

Most tools quietly assume a day starts at midnight. Almost no plant works that way, and every production report is wrong by one shift until it’s fixed.

Your start-of-day

03:00 still belongs to yesterday

Set the boundary to 06:00 and last night's overnight shift finishes on yesterday's count. Today, this week and this month all follow that same rule.

Overnight shifts

A Saturday night shift reports as Saturday

Even when it runs into Sunday morning — the way it was scheduled, and the way your supervisor talks about it.

Your timezone

Every screen reads in plant time

Not the viewer's laptop. A manager checking the shift from another city sees the same clock the floor does.

Questions

Before you book a demo

From the control's own produced-parts counter, which it increments at M30 as each part completes, read over the native connection. Where a control doesn't maintain that counter, the part program increments a macro variable that gets read instead. Counts only ever advance when the number rises, so a counter reset at shift change isn't mistaken for production.

Yes — set the part and target quantity per machine and shift, and the report shows output against that target hour by hour while the shift is still running. Full scheduling systems are deliberately out of scope; we track against the plan you already have.

Yes. The part being run can be set from the operator station at the machine, and cycle-time references follow the part rather than the machine, so a part moving between machines is still judged against one standard.

Every report exports to PDF, and shift summaries can be sent automatically at shift end.

See it on your machines

A 30-minute call, your controllers, your shift pattern, and the timeline above filled in with your own shift.