Functional Weave
Code in Python

manufacturing.takt-time@1.0.0

README.md

1,279 bytes · view raw

# manufacturing.takt-time

Takt time is the pace a line must work at to meet demand:

    takt = available time / customer demand

An 8-hour shift less two 15-minute breaks is 27,000 seconds; with a demand of
450 units that is one unit every 60 seconds.

**Exact first, then rounded once.** The answer is returned twice: `exact`, the
reduced fraction of seconds (27,000 / 400 is `135/2`), and `seconds`, that
fraction rounded to whole seconds by the mode you choose. Keep `exact` for
line balancing (dividing takt among stations or comparing it with cycle
times) so no rounding compounds; use `seconds` for the board on the shop
floor.

**Which mode.** `down` is the safe choice for a pace: a takt rounded up (67.5 s
to 68 s) makes 397 units in the shift, not 400. `half-up` and `half-even` give
the nearest second; `up` is there for completeness.

**Available time is the caller's.** Pass the time the line is actually planned
to run in the period (shift length less breaks, meetings and planned
maintenance), in seconds, and demand for the same period. The function does no
calendar arithmetic, so a week or a month works the same as a shift.

Zero available time gives a takt of 0. Demand must be more than zero (no demand
means no pace to keep), and neither may be negative.