Key takeaways
A tool crib is the controlled store where a plant keeps cutting tools, gauges, fixtures, hand tools, consumables and calibrated instruments.
A tool crib management system records what is in it, who has what, where it is used and what it costs.
This guide lays out that model as field tables you can copy into a specification. If you are comparing products, our tool crib management software roundup covers the market.
Agree on the entities before the fields. Merging two of them into one table is the classic failure.
| Entity | What one record represents |
|---|---|
| Item master | A tool type, e.g. "End mill 10 mm, 4 flute, carbide" |
| Serialised item | One physical tool with its own ID and history |
| Bulk stock | A quantity of one consumable in one bin |
| Location / bin | A place a tool can be: bin, cabinet, machine, vendor |
| Employee / badge | A person allowed to take or return tools |
| Transaction | One movement: issue, return, transfer, scrap |
| Calibration record | One calibration event for one instrument |
| Vendor / regrind order | A supplier, or a batch sent out for regrinding |
The item master describes the tool type once. Every serialised item and every bulk stock row points back to it.
| Field | Type | Example |
|---|---|---|
| item_ | Text, unique | EM-10-4F-CAR |
| description | Text | End mill 10 mm 4F carbide |
| category | List | Cutting tool, gauge, fixture, hand tool, consumable |
| tracking_ | List | SERIALISED or BULK |
| manufacturer_ | Text | Maker's catalogue number |
| unit_ | Money | €84.00 |
| min_ | Integer | 42 / 102 |
| lead_ | Integer | 5 |
| preferred_ | Link | Vendor record |
| regrindable | Yes / no | Yes |
| max_ | Integer | 3 |
| calibration_ | Yes / no | No |
| calibration_ | Integer | 365 (for gauges) |
| default_ | Integer | 8 (one shift; the grace period adds the margin) |
| return_ | Yes / no | No for inserts, yes for gauges |
The field that matters most is tracking_mode. It decides whether the system expects a serial number or a quantity at every scan.
A serialised item is worth tracking individually: a micrometer, a bore gauge, a shrink-fit holder, a torque wrench, a drill jig.
A bulk consumable is issued by count and never comes back: inserts, taps, small drills, gloves, abrasive discs.
| Field | Type | Example |
|---|---|---|
| serial_ | Text, unique | GA-0147 |
| item_ | Link | MIC-0-25 |
| barcode / QR value | Text | Same as serial_ |
| status | List | IN_ |
| current_ | Link | Bin C-03-2 or machine CNC-07 |
| current_ | Link | Employee, empty when in crib |
| due_ | Date and time | 2026-09-19 22:00 |
| regrind_ | Integer | 0 (never reground; counts up on end mills) |
| calibration_ | Date | 2027-03-01 |
| condition | List | OK, WORN, DAMAGED |
| purchase_ | Date / money | 2025-11-04 / €310 |
| Field | Type | Example |
|---|---|---|
| item_ | Link | INS-CNMG-120408 |
| location_ | Link | Bin A-12-1 |
| qty_ | Integer | 64 |
| last_ | Date | 2026-09-01 |
Keep qty_on_hand as a result of transactions, not a field people type into. A stock-take posts an ADJUST transaction with the difference.
Keep qty_on_order on the item, not on each bin. The reorder check compares the item's total on hand plus on order with its reorder point.
| Entity | Key fields |
|---|---|
| Location / bin | location_ |
| Employee / badge | employee_ |
| Vendor | vendor_ |
| Regrind order | order_ |
Make machines locations too. A tool sitting in the magazine of CNC-07 then has a real, queryable address instead of "out".
allowed_categories lets you stop an untrained person from checking out a master gauge or a calibrated torque wrench.
The transaction log is the heart of the system. It is append-only: you never edit a past movement, you post a correcting one.
| Field | Type | Example |
|---|---|---|
| txn_ | Auto | 1048213 |
| txn_ | List | ISSUE, RETURN, TRANSFER, SCRAP, ADJUST |
| timestamp | Date and time | 2026-09-19 06:12 |
| item_ | Link | EM-10-4F-CAR / EM-0932 |
| qty | Integer | 1 for serialised, n for bulk |
| from_ | Link | Bin B-04-1 |
| to_ | Link | Machine CNC-07 |
| employee_ | Link | Badge 2231 |
| issued_ | Link | Attendant, or "self" at a scan point |
| machine_ | Link | CNC-07 |
| work_ | Link | WO-26-4412 |
| condition_ | List | OK, WORN, DAMAGED, MISSING |
| reason_ | List | Worn, broken, lost, wrong tool |
| unit_ | Money | €84.00 |
Store unit_cost_at_txn on the row. Prices change, and a cost report built on today's price rewrites last year's history.
Other useful types are RECEIPT (goods in), SEND_REGRIND, RECEIVE_REGRIND, SEND_CAL and RECEIVE_CAL.
Gauges and measuring instruments need their own history, because an out-of-tolerance result affects every part measured since the last good calibration.
Where traceability is required, ISO 9001 clause 7.1.5.2 expects measuring equipment to be calibrated or verified at set intervals against traceable standards, identified by status and safeguarded from adjustment. When an instrument is found unfit, the organisation must decide whether earlier results are still valid.
| Field | Type | Example |
|---|---|---|
| cal_ | Auto | CAL-2026-0381 |
| serial_ | Link | GA-0147 |
| cal_ | Date | 2026-03-01 / 2027-03-01 |
| performed_ | Text | In-house lab or vendor |
| as_ | List | IN_ |
| as_ | List | IN_ |
| standard_ | Text | Gauge block set ID |
| certificate_ | Text / file | Certificate number or PDF |
The as_found result matters most. If it was out of tolerance, the log shows which work orders used that gauge since the last pass.
For the full process, see our guide to calibration management, and for one common instrument, torque wrench calibration.
A serialised item has one status at a time, set by a transaction or a timer, never by hand.
| Status | Set by | Cleared by |
|---|---|---|
| IN_ | RETURN with condition OK or WORN (WORN waits on the regrind shelf), RECEIPT, RECEIVE_ | Any issue or send-out |
| CHECKED_ | ISSUE to an employee | RETURN (a TRANSFER changes the holder or machine, not the status) |
| OVERDUE | Timer: now is past due_ | RETURN |
| IN_ | SEND_ | RECEIVE_ |
| IN_ | SEND_ | RECEIVE_ |
| QUARANTINED | Return marked DAMAGED, failed calibration, calibration overdue | Inspection release or SCRAP |
| SCRAPPED | SCRAP, or a WORN return once regrind_ | Final, no exit |
OVERDUE is derived, not stored: the record keeps CHECKED_OUT and each overdue check compares now with due_back_at.
A gauge past its calibration_due_date should be blocked from issue, even if it sits in the crib and looks fine.
Aim for under 15 seconds at the window, or people will reach over the counter.
Bulk consumables and serialised tools that wear out, like regrindable end mills, need a reorder point. Returnable tools usually need only a minimum available count, such as "at least 4 bore gauges in the crib".
The standard formula is reorder point = average daily usage × lead time in days + safety stock.
| Input | Value |
|---|---|
| Average daily usage (new tools issued) | 6 |
| Supplier lead time | 5 working days |
| Safety stock (2 days of usage) | 6 × 2 = 12 |
| Reorder point (min) | 6 × 5 + 12 = 42 |
| Order quantity (2 weeks of usage) | 6 × 10 = 60 |
| Max (order-up-to level) | 42 + 60 = 102 |
When on hand plus on order falls to 42, someone orders up to 102. At exactly 42 that is an order of 60.
During the 5 day lead time the plant uses about 30, so the order arrives with 12 left, the safety stock. Peak stock after receipt is about 72.
Count only new tools issued in daily usage. Reground tools returning from the vendor cover part of the demand and would inflate the figure.
Recalculate the levels each quarter, or when a new job changes usage. Our spare parts management guide applies the same logic to maintenance spares.
Two calculations with round, illustrative numbers.
That saving needs regrind_count per serial, so worn tools go to regrind instead of the scrap bin.
Replace these numbers with your own before you use them. The point is the method: count the losses from the log, not from memory.
Put machine_id and work_order_id on every issue. That single decision turns a stock list into cost and quality data.
Fixtures, dies and moulds follow the same pattern with longer lives. See tool and die maintenance software and tool and mold management software.
Report each KPI with its numerator and denominator, not only a percentage.
| KPI | Formula | What it shows |
|---|---|---|
| Checkout compliance | Issues with badge and item scanned ÷ all issues × 100 | How much stock leaves unrecorded |
| Overdue rate | Overdue open checkouts ÷ all open checkouts × 100 | Whether loan rules are followed |
| Tool cost per unit | Tool spend ÷ good units produced | Tooling cost trend by part or line |
| Stock-outs | Requests with zero on hand, per month | Whether min/max levels are right |
For example, 380 open checkouts with 19 overdue is an overdue rate of 19 ÷ 380 = 5.0%.
Checkout compliance is hard to measure directly, because unrecorded issues leave no row. Estimate it from stock-take differences: an ADJUST of minus 40 on a bin that issued 400 suggests 400 ÷ 440 = about 91% compliance, if the count itself is right.
Inventory accuracy and carrying cost matter too. Our guide to manufacturing inventory management software covers the wider set.
Putting gauges and inserts in the same structure forces either fake serial numbers on inserts or no history on gauges.
Split serialised and bulk from day one.
If anyone can overwrite qty_on_hand, nobody can explain a difference later.
Every change must be a transaction with a type, a person and a timestamp.
Without them you know the crib spent €30,000 on inserts last quarter, but not which part or machine drove it.
Receiving reground tools as new stock resets their history and hides the max_regrinds limit.
Keep the same serial and increase regrind_count.
A sticker cannot stop a checkout. The due date has to live on the record, where the checkout step can block it.
If checkout takes a minute of typing, people skip it and compliance falls. Badge scan, tool scan, done.
Once the crib records every issue and return, the same data feeds a full tooling cost of ownership report.
Fabrico is an OEE platform with a full CMMS built in. It does not have a dedicated tool crib module, kiosk, vending machine integration or RFID.
What it does have covers the bulk stock side of the model: an inventory catalogue with min and max levels, deliveries and stock-takes. Per-employee checkout, loan times and overdue tracking are not part of it, and there is no automatic reorder: your team places the order.
QR codes on parts and machines let a technician scan both from the iOS or Android app, and consumption is recorded against the work order it was used on.
Because OEE, downtime and maintenance history sit in the same platform, the team can compare parts and tooling consumption with how each machine actually ran.
Want to see how your parts and consumables would look in Fabrico? Book a 30 minute demo with a Fabrico consultant, no commitment, or contact us with your questions.
At minimum: transaction type, timestamp, item or serial ID, quantity, employee, from and to location, machine and work order. On return, add condition and a reason code.
A serialised tool has its own ID and history and must come back, like a gauge or a holder. A consumable is issued by quantity and is not returned, like inserts or gloves.
Reorder point = average daily usage × lead time in days + safety stock. For 6 a day, 5 days lead time and 12 in safety stock, it is 42.
When the current time passes its due_back_at plus any grace period. Most plants set due time at end of shift for hand tools and gauges, and at end of job for tools loaded in a machine.
Checkout compliance, overdue rate, tool cost per unit and stock-outs per month. Report each with its numerator and denominator, not only the percentage.