About Bench
What it is, what happens to your data, and where the numbers come from.
What it is
v2.4.1A tracker for peptide, growth hormone and anabolic protocols. It holds what you are running, what you have actually taken, what is left in the fridge, what it cost, and whether any of it is doing anything: weight, bloodwork, how you felt.
The parts that are easy to get wrong are the parts it takes seriously. Reconstitution arithmetic is exact and covered by tests. Blends are split into their components and each one modelled on its own half-life. A U-40 barrel is never quietly read as U-100. And the 50 compound library tags every dose figure with where it came from, so an approved label and a forum convention never look alike.
Your data
By default there is no account, no server and no analytics. Everything you enter is stored in this browser, on this device, and never leaves it. Not to me, not to whoever is hosting it.
One exception, and it is off unless you switch it on. In Settings you can point the app at a sync server you run yourself, so a second device can read the same data. Your data is encrypted in this browser before it is uploaded, with a key derived from your password, so that server holds something it cannot read either. Leave it alone and nothing is ever sent.
That is a real privacy guarantee and a real risk at the same time. Nobody can read your data, and nobody can recover it for you either. Clearing your browsing data erases it. Export a copy from Settings and keep it somewhere else.
What a skipped dose does
Ticking Record this as a skipped dose writes an entry to your log and marks it as not taken. It is a record rather than the absence of one, and that is the entire point: the app can tell a dose you decided against from one nobody ever logged, and your adherence figure reports the two separately rather than lumping both under missed.
What it stops happening
- No vial is drawn down. Change an existing dose from taken to skipped and the mass goes back into the vial it came from. Delete a skipped entry and nothing is returned, because nothing was taken.
- No drug is modelled in your body, so the curve, the percentage of peak and the projection are all untouched.
- It comes off what today's ring asks for, so the day can still be finished. A day where every dose was skipped neither extends your streak nor breaks it.
- It is left out of the outcome comparisons, the injection site rotation, the dose marks on the weight chart, and the protocol the app infers from your history.
- The dose, units and vial fields grey out while the box is ticked, since none of them mean anything for a dose that did not happen.
Where it still shows up
In the log with its own marker, in the Skipped figure for the last thirty days, as "skipped" in the printable report, and as skipped=yes in the CSV export.
What it tracks
- 50 compounds, with cited half-lives and dose ranges
- Protocols, titration ladders and adherence
- Reconstitution for U-100 and U-40 syringes
- Vial stock, beyond-use dates and cost per dose
- Injection site rotation
- Weight, with Android Health read-in
- 16 blood markers, charted against your doses
- Interaction checks across what you run together
What is new
v2.4.1A skipped dose now answers its slot, so no more orange days or broken streaks after a skip.
- Skipping a dose now marks the slot as answered. Today no longer shows a skipped dose as Overdue, and the next day no longer says it was due yesterday.
- The ring, week strip, and streak all recognise a skip as covering the slot. A day where everything was skipped is drawn idle. It neither extends the streak nor breaks it, and the ring says "skipped" rather than "0 of 0".
- The site picker hides when the skip box is ticked, so the Log no longer records a site on a skipped dose.
- Reminders and the rest-of-today count now treat a skip the same way as the Today card does.
Contributors: @suskozaver
Draw from a vial past its date, all sites open immediately, and stock rows tell you what each action does.
Weekday in the Log, and supplier shown on the stock row.
Tablets as a container, the public page in four languages, stock counting from the right container, and a wave of polish from the community.
Polish language support, full translation coverage across all four languages (EN, DE, SL, PL), a visual syringe picker, adherence fixes, and dead translation key cleanup.
German language support, weight on the PK chart, actual mg in the readout, and a wave of fixes and features from the community.
Protocol editing, week-band dosing plans, dose logging by protocol, grouped vials, and a fix for the body-weight unit bug.
User count on the landing page, mg dose entry, manual update check, and a cleaner injection site map.
Daily check-ins, lab reports read straight off a PDF, and ancillaries.
A public page for the app, an About tab, and a light theme by default.
Anabolics and growth hormone, your own compounds, and a proper web app.
Import from other trackers, and bloodwork.
First Android build.
Who made it
Built by Arun, originally to track my own protocols properly, because every other option either wanted an account or got the arithmetic wrong. It is free, there is nothing to buy, and nothing about you is collected.
github.com/ArunNGun Join the DiscordCorrections to the library are welcome, particularly with a citation attached.
App icon by Ricardo Ruiz on Flaticon, used under the Flaticon licence.
Where the numbers come from
Prescribing labels first, then published trials, then registries. Community practice is included where it is genuinely what people do, but it is always tagged as such.
Where a half-life has never been measured in humans, as with trenbolone and several research peptides, the app says so and draws no curve rather than inventing one that looks authoritative. Every entry links its sources.