11 topics from the guide built into BioHack Track, published in full.
Add a vial or bottle with its amount, brand, vendor, cost, and (for injectables) how much bacteriostatic water you reconstituted it with. The app tracks remaining mL or units and shows a fill-level indicator on each row. Logging a dose automatically deducts from the linked vial.
If you entered the wrong date received for a vial, just edit it — the app recalculates from that date forward, so the doses already logged against the vial and the amount remaining stay correct. You don't have to delete and re-add the item.
When you save a new vial, the app auto-links it to any active schedule for the same compound (and vice-versa), so your doses draw down the right stock. When a vial empties, new stock of the same compound picks up automatically. Depleted vials stay listed so your cost and dose history are preserved.
If a vial tied to an active protocol is running low, you'll get a low-stock badge and (optionally) a reorder notification estimating days until empty — so a spare, unused vial never triggers false alarms. Swipe an inventory row to Restock instantly.
You've run your twelve weeks and you're done. Open the protocol and tap Finish Protocol.
From that moment:
Finish vs. Pause. They do the same thing to your dosing — both stop it, both protect your adherence. The difference is what gets recorded. Pause is "stopped for now", and it stays in your working list ready to resume. Finish is "this ran its course", and it's filed away with an end date. Changed your mind? Resuming a finished protocol puts it back and clears the finish date.
Don't delete it. Deleting a protocol also deletes every dose ever logged under it, along with that compound's adherence record. Finishing keeps all of it.
If you run the same cycle again later, resume the protocol rather than building a new one — the history stays in one place.
You started on a 10 IU vial, finished it, and your next one is 27 IU. Keep the same protocol — don't create a new one. Your streak, adherence and full dose history all hang off that protocol; starting over orphans them.
Add the new vial as a NEW inventory item. Don't edit the old vial's numbers.
That one point matters more than anything else here. Each dose you've already logged remembers the exact vial it came from, but its cost is worked out live from that vial's current amount and price. Change a 10 IU vial into a 27 IU vial and every past dose drawn from it is suddenly divided by the bigger number — each one would report roughly a third of what it really cost, and your spend history, cost-per-result figures and Financial Report would all quietly shift. Nothing warns you, because as far as the app can tell you simply corrected a typo.
Add it as a separate item and the old doses stay attached to the old vial, at the price you actually paid.
The steps
1. Inventory → + → Add Inventory Item — the new vial, with its own amount, cost and bacteriostatic water.
2. Open the protocol → Edit → change the linked inventory item to the new vial.
3. Save.
What the app handles for you: if you'd typed your own reconstitution numbers into the protocol, switching to a different vial clears them automatically. Those numbers described how you mixed the *old* vial — carrying them onto a new one would misreport your syringe draw, potentially by a lot. After the switch the draw comes from the new vial's own numbers, so re-enter your mix only if you mixed it differently from what you recorded.
Don't delete the old vial. Leave it listed once it's empty. Deleting it detaches every dose that came from it, and those doses lose their cost basis for good.
Several vials of the same compound — different strengths, different vendors — and you want the next dose to come out of a particular one.
When one runs out. Mark it empty (swipe → Adjust → *Ran Out*) and the app asks what to open next. Pick a vial from the list, or tap Choose the Best Vial for Me. Each option says whether it keeps your draw the same, so the choice is obvious.
Any time you like. Swipe a vial and tap Dose From This, or hold it and choose Dose From This Vial. Your protocol switches immediately. Whichever vial is in play is marked Dosing {protocol} in the list.
How "choose for me" decides. It prefers a vial mixed the same way, so your syringe draw doesn't change. Among equals it takes your oldest stock first, so the back of the fridge doesn't sit there expiring.
If a vial empties while you're not looking — a dose logged from the widget, say — the handover still happens on its own, using the same rule. You get a notification only if the volume you pull actually changed.
Watch the draw. Vials of different strengths are mixed differently, so the same dose can mean a different syringe volume — *10 units → 20 units*. The dose is the same; the volume isn't. You're always told before it changes.
Mix dates aren't guessed. Switching a protocol onto a vial doesn't touch that vial's mix date — pointing your doses at a box isn't the same as adding water to it. The one exception: if the vial you switch to has a beyond-use date that already ran out, the app asks whether you just mixed it, and restarts the countdown from today only if you say yes.
Your history is safe. Doses already logged stay attached to the vial they actually came from, at the price you actually paid. Only future doses move.
Priming a needle, a short final draw, a bit of waste — small differences add up until the number on screen isn't what's in your hand. Swipe any inventory row → Adjust (or use Adjust Vial… from the row menu) and tell the app what's actually true:
It works in both directions, so it fixes a count that's drifted high *or* low. The same control is on the Log Dose screen under *Vial After This Dose*, which is usually the better moment — the vial is physically in your hand and any disagreement is obvious.
When you set a correction, it replaces the automatic deduction for that dose rather than stacking on top of it. Otherwise the dose would come off twice.
When a dose is larger than what's left in the open vial, the app takes the remainder from your next one automatically and tells you it's doing so before you log — you'll see a note on the Log Dose screen.
This used to be a real source of drift: the next vial was opened as though untouched, so the part you'd already drawn was forgotten and your stock read high — a little more every time it happened. It now carries across correctly, and undoing the dose puts both vials back the way they were, including the reconstitution date on the vial that got opened.
Nothing to configure. Worth knowing so the vial counts make sense when you see one roll over.
Inventory isn't just for injectables. Add solid forms (pill/tablet/capsule) with a count, and doses deduct by unit. Great for oral compounds and supplements.
Once you mix a vial with bacteriostatic water, it starts its own clock — separate from the manufacturer's printed expiration date, which only covers the unopened vial.
Turn on Track Recon Expiry when you add or edit a vial and set the date you mixed it. The app counts forward \(InventoryItem.reconShelfLifeDays) days and shows you where each vial stands:
If you create the vial straight from the Reconstitution Calculator, the mix date is set to today automatically, since that's the moment you're mixing it.
This is an estimate, not a guarantee. The \(InventoryItem.reconShelfLifeDays)-day window is a single conservative default applied to every compound — real potency loss varies by compound, storage temperature, and handling. Every place the countdown appears is marked *(est.)* for that reason. Treat it as a prompt to check your vial, not a hard expiry date, and follow your own source's guidance.
The same guide is searchable inside the app under Settings.