vialfile

Bloodwork cadence

Per-peptide recheck reminders — IGF-1, lipid panels, CBC + CMP. We compute due dates from your protocol-start and the library cadence so your next draw lands on time, not when you remember.

No protocols yet. Choose a peptide above and save its start date.

What we track and why

  1. IGF-1 every 4–8 weeks on GH-secretagogues. CJC-1295 / Ipamorelin / Tesamorelin push IGF-1 — out-of-range readings are the earliest signal that dose needs trimming.
  2. CBC + CMP at baseline + every 12 weeks on long courses. Healing peptides (BPC-157, TB-500) and KPV stay in the body for months; periodic CBC catches cytopenias before they're symptomatic.
  3. Fasting glucose + HbA1c on GH-axis stacks. CJC + Ipamorelin nudges fasting glucose; an HbA1c every 12 weeks closes the loop.
  4. Lipid panel + BP on melanocortins. Melanotan-II in particular changes BP transiently and lipids over months.

Peptides not in the dropdown? The library is currently 25 peptides covering >90% of common stacks. We'll widen it as the request log fills.

Bloodwork-cadence FAQ

How is "next due" computed?

From your protocol start date plus the cadence in weeks. The cadence auto-fills from the library's recommendation per peptide (e.g. CJC-1295 = q8w from "IGF-1 baseline + q8w; fasting glucose + HbA1c q12w" — we take the most-frequent interval). You can override the cadence to whatever your prescriber set.

What does "overdue" mean exactly?

The most-recent due date is in the past and we have not been told you've drawn since. We anchor at the latest missed date, not the first — so if you're 200 days into an 8-week-cadence protocol and haven't reset the start, we say "32 days overdue", not "144 days overdue". Restart the protocol after each draw to keep the numbers honest.

Why no bloodwork-result upload?

Cadence reminding ships first because it's the gap that costs the most (missed draws = months of unflagged drift). Result upload + trending lands when we can ship it without server sync — likely OCR-on-device of lab PDFs in v2. If you want a server-synced version sooner, please ping @bitinvestigator.

Where is my data stored?

In your browser's localStorage under key vialfile-bloodwork-v1. Clearing site data, switching browsers, or using private mode will erase your protocols. Server sync is opt-in in a later release.

Can the suggestions surface peptides I'm logging?

Yes. The "logged injections without bloodwork protocols" list reads your injection log (kept under vialfile-log-v1) and surfaces any peptide you've injected but haven't started a protocol on. Tap the suggestion to pre-fill the form. Logs and protocols stay in separate keys.

What's the "⚠ runs out in Nd (before next draw)" warning?

Each protocol card cross-references your inventory and active stack. If a peptide in your current stack will run dry before the protocol's next draw-window closes (next-due + ½ cadence), we surface a red inline warning naming the peptide and days-of-supply left. Prevents the frustrating case of drawing bloodwork after you've already been off the peptide for a week — results won't reflect the protocol you're actually monitoring. Purely read-only; this card does not mutate your inventory or stack.

What's the "N side-effect flags in draw window" line?

Each protocol card cross-references your side-effect log and counts entries logged for the same peptide within the protocol's current draw cycle — the window from max(protocol-start, now − cadence) to now. Surfaces mean and max severity so you can hand a prescriber ordering the next panel context for what you experienced between draws. The card is purely derivative — your side-effect log is read, never written. When max severity hits 4 or 5, the line tints the card so it doesn't get lost.

What's the "N injections in draw window" line?

Sits directly under the side-effect-flags line on each protocol card. Counts entries from your injection log with matching peptide in the SAME half-open window — [max(protocol-start, now − cadence), now) — so the two cycle-window observability lines line up exactly. Tells you "you logged 14 BPC-157 doses since the last lipid panel" right on the card where you're deciding whether to book the next draw. Multi-peptide stacks roll up separately — only entries with the protocol's exact peptideId are counted. Purely derivative — reads vialfile-log-v1, never writes.

What's the "Nd of supply remaining (M doses) before next bloodwork draw" line?

Linear projection of the same burn-rate math /inventory.html shows: current mg-in-hand minus (daily mg-burn × days until next draw). Sourced from your inventory ledger + injection log + active stack's per-peptide doseMcg. Surfaces only when the protocol is on-track or due-soon (overdue protocols hide it — already past), and only when this peptide is in your active stack with valid dose. Closes the planning loop on this surface from "when do I owe blood?" to "AND will I have supply through then?" — a draw that runs after your supply window closed reflects an off-peptide week, not the protocol. Three buckets: ok (≥14d at draw, muted), low-at-draw (<14d but ≥0, same muted phrasing), and empty-at-draw (would run out before the draw — danger-tinted "Out of supply Nd before next bloodwork draw" line). Pure projection: never mutates your inventory, log, or stack.

What's the "Estimated cost to draw: $N (M doses × Name @ $X.XX/mg avg)" line?

Shows the estimated peptide cost you've already spent within the current draw cycle — the period from max(protocol-start, now − cadence) to now. Each injection entry in your log with matching peptide contributes (doseMcg ÷ 1000) × avgCostPerMg to the total, where avgCostPerMg is the weighted average across your non-empty inventory vials that have a purchase cost entered. Surfaces only when you have at least one in-window log entry AND at least one vial with cost data. Pairs naturally with the injection-count line above it on each protocol card — "14 doses in this window cost me ~$142." Pure and read-only: never writes to your log, inventory, or protocols.