What's in the module
The pieces that close the loop
Each piece is wired to the next so there's no manual hand-off between forecast, ordering, receiving, and the stock ledger.
Per-Location Stock Ledger
Every location (HQ, satellites, trucks) holds its own on-hand quantity and rolls into the moving-average cost. Receive, transfer, consume, return, and adjust movements form the audit trail. Nothing edits an existing entry; the ledger only ever adds new ones.
- Every org gets an HQ yard on day one, so the first receive never fails
- Grow from one yard to several without stranding existing stock
- Moving-average cost recomputes on every receipt
Professional+
Lot Tracking & Expiry Alerts
Regulated product (chemicals, fertilizer) carries lot number and expiry through every ledger entry from receive to consume. Foremen get an alert when a lot crosses the expiry window so product doesn't go off-spec on your shelf.
- Lot inputs only show for fertilizer and chemicals; other receives stay clean
- The lot follows the product from receive to the crew's application record
- One alert per expiring lot, routed to foremen, not the whole office
Professional+
Vendor Catalog & Preferences
A real vendor record — not just a free-text string on an invoice. Contact info, payment terms, QuickBooks link, and per-product preferences with priority ordering. The catalog is the source of truth for who should supply what.
- Duplicate vendor names get caught before they're saved
- Priority ordering decides which vendor auto-drafted POs go to
- Your existing spend view keeps working exactly as before
Professional+
Purchase Orders
Draft, sent, received, cancelled. You can't skip "sent", you can't edit lines on a sent PO. Receive is the only step that touches inventory — cancel before that point and nothing in the stockroom moves.
- Auto-generated PO numbers that never collide
- Source badge shows hand-built vs. auto-drafted at a glance
- Receive is all-or-nothing: every line bumps inventory or none do
Professional+
Draft POs from Supply Forecast
One click on the Supply Forecast page groups every shortage row by its preferred vendor and creates one draft PO per vendor, plus a no-vendor bucket. Quantities roll up annually so you get one PO per vendor per program, not a dozen tiny ones per round.
- One PO per vendor per program, not a dozen tiny ones per round
- Products without a preferred vendor land in one bucket to assign later
- Pack-size rounding (bag, pallet, ton) applied before the annual sum
Professional+
Vendor Backfill from Invoices
Most shops arrive with years of supplier invoices where "vendor" is a free-text string and no managed record exists. One pass walks every unlinked invoice, matches against your existing vendors regardless of capitalisation, and (optionally) creates stub records for unmatched names.
- Matches years of invoices to vendors, whatever the capitalisation
- Auto-create off by default; flip it on for the fastest backfill
- Result panel shows created, linked, and unmatched names for review
Professional+
Fertilizer Auto-Decrement Bridge
Link a fertilizer product to its inventory SKU. When a crew completes a fertilizer application, RootControl writes one stock-consume entry per linked product line. A re-save of the completed record can't double-decrement; a cancel restores the stock automatically.
- Re-saving a completed application can never double-decrement
- Cancelling an application restores the stock automatically
- Org-level toggle, on by default, for shops with a separate stockroom
Professional+
Low-Stock Notifications
Set a reorder point per product. When on-hand crosses below that line for the first time, one notification fires to your foremen. No re-firing on every page reload, no spam if the stock dips and recovers.
- Fires once on the way down, not on every page load
- Stock recovering above the threshold resets the alert for the next dip
- Same stream as expiring-lot alerts, so foremen see everything in one place
Professional+