Inventory that runs itself.
Batch-level tracking. Automatic FIFO. Smart reorder alerts. Multi-location transfers. Real-time analytics. AI-powered insights through Sage, built into the same system where you chart, invoice, and schedule.
- Batch-levelLot, expiry, manufacturer, cost, every item
- FIFOOldest stock dispensed first, automatically
- 20+Transaction types logged automatically
- Ask SageInventory queries in plain English
3 batches of Bordetella vaccine expiring within 7 days. 45 doses remaining.
"What's running low?"
9 items below reorder point. 3 need ordering today, 4 within 2 weeks. Generate PO?
Not an add-on. The system itself.
Batch-level tracking
Lot, expiry, manufacturer, cost, every item, every batch, every movement.
Automatic FIFO
Oldest stock dispensed first on every invoice. Default behavior, not a setting.
Smart reorder alerts
Real-time low-stock and expiration notifications to the right staff.
Ask Sage anything
Plain-English inventory queries, running low, expiring, reorder, value.
Inventory is the silent leak in most clinics.
Nobody wakes up excited about stock. But every clinic feels the pain when it goes wrong, and most practice software treats it as an afterthought.
- $15k / yr
Expired stock you didn't catch.
Year-end financials surface thousands of dollars in product that quietly went past expiry while everyone was busy with patients.
- 3rd order
Reordering what you already have.
Reordering Rimadyl from the main shelf when 200 tablets sit at the satellite location. Multi-location stock you can't see across.
- $400 vial
Stock that walks away.
A Convenia vial goes missing. No transaction ledger, no who-took-it. The shrinkage shows up in the P&L, not the audit trail.
- Empty shelf
Stockouts you find at the shelf.
An associate prescribes a med, the system doesn't flag low stock, and the tech finds an empty shelf at dispense time.
- DEA risk
Controlled substances on faith.
Paper logs and spreadsheets. No timestamped attribution, no cycle-count discipline, no audit-ready ledger when DEA asks.
- Recall day
"Which patients got the recalled lot?"
A frantic afternoon of CSV exports and phone calls, vs. a 30-second filter that lists every patient who received the lot.
From purchase order to patient invoice, one chain of custody.
Every product is tracked at the batch level. Every transaction is logged. Every expiration date is monitored. Every movement is connected.
Every batch, every movement, traced.
Every batch carries lot number, expiration, manufacturer, and price. FIFO allocates the oldest expiry first on every invoice. COGS reflects the real cost of what was actually dispensed.
- Lot number + expiry on every batch
- FIFO allocation, automatic on every invoice
- Cancellation returns stock to correct batches
- Recall in 30 seconds, filter by lot, see every patient
From "we need more" to "it's ordered" in 2 minutes.
One click scans inventory, drafts grouped POs by supplier, and emails them straight from Bittsi. Partial receiving creates new batches automatically; returns to supplier update the ledger atomically.
- Generate suggested orders in one click
- Email POs directly to suppliers
- Partial receiving creates new batches automatically
- Returns to supplier update ledger atomically
- Cerenia 60 mg ×16 · ×4 boxes · $284.00
- Apoquel 16 mg ×100 · ×2 btl · $612.00
- Convenia 80 mg/ml · ×3 vials · $1,148.00
- LRS 1 L bag · ×1 case · $92.00
Move stock between sites, without losing the trail.
Atomic transfers preserve lot, expiry, and cost at the destination. FIFO works at the destination too. COGS ties back to the original purchase. Paired TRANSFER_OUT and TRANSFER_IN entries make every move auditable.
- Lot, expiry, cost preserved at destination
- Atomic, completes fully or not at all
- Both locations update instantly
- Recall trace works across all locations
One price for the client. Full visibility for the clinic.
Sell a Puppy Wellness Package as a single $175 line. Each component still tracks FIFO, COGS, and the SOAP plan documents the dispense. Cascade delete keeps the chart clean.
- Parent at bundle price, components at $0
- Inventory + COGS tracked per component
- Works in plans, estimates, and invoices
- Cascade delete keeps the chart clean
- $0.00DA2PP vaccineLOT 4721 · exp 08/15/26
- $0.00Deworming tabletLOT 3302 · COGS $4.20
- $0.00Fecal testservice · in-house
- $0.00Puppy examservice · 30 min
Your inventory's vital signs, at a glance.
Eight live widgets, value, ABC, expiration risk, reorder predictions, loss trends, and more. CSV export on every panel. No reporting tool, no pivot tables.
Value by category
click to filter- Medicine$18,420
- Vaccine$12,180
- Food$9,420
- Supply$5,820
- CRI / fluids$2,400
Expiration risk
all batches- OK214
- Warning76
- Critical38
- Expired17
ABC analysis
- $38.6kClass Atop 20% · 80% value
- $7.4kClass Bmiddle tier
- $2.2kClass Cbulk · low value
Reorder predictions
90-day rollingInventory loss · monthly
last 6 mo- Nov
- Dec
- Jan
- Feb
- Mar
- Apr
Talk to your stock room.
Sage has full access to your inventory data, stock levels, batch details, expiration dates, transactions, analytics. Ask in plain English. Get an answer. No reports, no exports, no pivot tables.
Learn about Sage9 items are below reorder point. 3 need ordering today, 4 within 2 weeks, 2 within the month. Grouped by supplier for one-click PO:
Generate the suggested POs?
Most PIMS count your inventory. Bittsi manages it.
Bolt-on tools fill gaps but split your data across two systems. Built-in inventory keeps everything in one ledger.
Real Mondays. Real outcomes.
- Monday morning · alert
The expired vaccine that wasn't.
Dr. Williams gets a notification: 3 Bordetella batches expiring in 7 days, 45 doses on hand. The team spreads them across 12 wellness appointments that week.
38 doses used. 7 written off. Saved $600. - Thursday · 9am
The PO that wrote itself.
Sarah used to walk the shelves every Thursday. Now she clicks Generate Suggested Orders, reviews two drafts, hits send.
45 minutes saved. 2 POs sent in 2 minutes. - Friday · 4 pm
The controlled-substance audit.
Cycle count limited to Medicine + controlled cabinet. Ketamine off by 1 vial. Variance documented, signed, posted to the ledger.
Audit-ready. Documented. Traceable. - Mid-day transfer
The propofol that didn't need a PO.
Surgery low. Transfer 10 vials FIFO from the main pharmacy with lot preservation. Both sides update instantly.
Stock moved in 30 sec. Surgery on time. - Puppy visit
The bundle that just works.
Puppy Wellness Package $175 lands on the SOAP plan. Each component allocates a batch, COGS lands on the invoice automatically.
One price out. Full traceability in. - End of month
"What's our inventory looking like?"
Owner asks Sage. Total value $45.2k, 6 items below min, 2 expiring this week, turnover 3.2×.
5 minutes. Complete oversight.
What practice managers ask first.
Honest answers from the team. If something's missing, the inventory lead will get on a call.
Every item is tracked as individual batches, each carrying its lot number, expiration date, manufacturer, purchase price, and quantity. New batches are created when stock arrives on a PO; on dispense, the system records exactly which batch was used. The result is a complete chain of custody from arrival to dispense.
Bring us your last shelf walk.
30 minutes. We'll load a recent PO, run cycle counts, transfer between locations, and ask Sage what's running low, on a real chart, not a sandbox.