What This Tool Actually Is
The Bolus Estimator is a mathematical simulator — think of it like a very detailed calculator that models a complicated, multi-variable math problem. It is not connected to any medical system, does not know your actual body, and cannot learn from your results over time.
What it does do is let you plug in numbers and watch how those numbers interact with each other according to a set of published formulas. The goal is education: understanding the variables that diabetes educators, endocrinologists, and people living with Type 1 diabetes think about when discussing insulin strategy.
The simulator is built around the Warsaw Method, a real framework used in diabetes research and education that accounts for more than just carbohydrates when modeling insulin needs.
The Inputs — What You're Telling It
The simulator has two categories of inputs: your profile variables (the personal parameters that stay constant) and your meal and biometric data (the details of this specific scenario).
A Profile Variables
These describe the theoretical rules of your insulin model. Saved in your browser so you don't re-enter them each time.
B Meal & Biometrics
These describe the specific scenario — the meal, your current blood glucose, and whether you already have active insulin working.
| Input | What It Means | Example |
|---|---|---|
| ICR | How many grams of carbohydrate one unit of insulin is expected to cover. A ratio of 1:10 means 1 unit covers 10g of carbs. | Enter 10 |
| ISF | How much your blood glucose is expected to drop per 1 unit of insulin. A value of 50 means 1 unit drops BG by 50 mg/dL. | 50 |
| Target BG | Your goal blood glucose. Used to calculate whether a correction is theoretically needed. | 100 mg/dL |
| Calculation Cap | A hard ceiling. If output exceeds this number, the simulator stops. Prevents silent production of very high numbers from bad inputs. | 25 units |
| FPU Adj. Factor | Scales down the fat/protein portion. Default 50% is a conservative starting point. | 50% |
| Carbs / Fat / Protein | The macronutrients in the meal you're modeling, in grams. | 45g / 20g / 30g |
| Current BG | Optional. Your blood glucose at simulation time. If blank, the tool assumes you're exactly at your target. | 142 mg/dL |
| IOB | Active insulin from a previous dose. Subtracted from the meal wave — but not the fat/protein wave. | 1.5 units |
| BG Trend | Whether BG is stable, rising, or falling. Falling trends reduce the meal wave; rising fast adds wait time. | ↗ Rising Slowly |
How It Calculates — Step by Step
When you press Simulate Strategy, the tool runs six sequential calculations. You can see every step in the results panel by clicking "Show Calculation Steps." Here's what each step means in plain language.
Carb Dose — The Starting Point
The most foundational insulin calculation. Divide total carbs by the ICR.
Example: 45g ÷ 10 = 4.50 units
Correction Dose — Accounting for High Blood Sugar
If current BG is above your target, extra insulin is theoretically needed. The ISF tells the tool how much to add.
Example: (142 − 100) ÷ 50 = 0.84 units
If negative (BG is below target), clamped to zero.
Net Meal Wave — Subtracting Active Insulin (IOB)
If you have insulin still working from a previous dose, the tool subtracts it. The result is the Meal Wave — the immediate portion.
Example: max(0, 4.50 + 0.84 − 1.50) = 3.84 units
The IOB deduction only applies here. It does not reduce the fat/protein wave — those are independent effects.
Trend Modifier — Adjusting for Direction
A falling blood glucose is a safety concern. The tool reduces the meal wave when a downward trend is detected.
Falling Slowly → reduce by 10% (×0.90)
Falling Fast → reduce by 20% (×0.80)
Rising trends don't change the dose — they change the timing suggestion.
Warsaw Wave — Fat and Protein
The distinctive part of the model — covered in full detail in the next section below.
Total — Adding Both Waves Together
If this exceeds your Calculation Cap, the simulator stops and shows an error.
The Warsaw Method — Fat & Protein
The Warsaw Method comes from research at the Children's Memorial Health Institute in Warsaw, Poland. It addresses a widely recognized limitation of carb-only insulin models: fat and protein also affect blood glucose, just more slowly and over a longer time window.
When you eat a high-fat or high-protein meal — pizza, steak, a fast food burger — blood glucose can continue rising for hours after a standard carb dose has finished working. The Warsaw Method provides a framework for modeling that additional effect.
Step 1: Calculate FPUs
Protein calories = Protein (grams) × 4 kcal/gram
FPU = (Fat cal + Protein cal) ÷ 100
Example: (20g × 9) + (30g × 4) = 300 kcal ÷ 100 = 3.0 FPU
If the result is less than 1.0 FPU, the Warsaw wave is discarded — the content is considered too small to meaningfully model.
Step 2: Duration Lookup
| FPU Value | Duration | What This Looks Like |
|---|---|---|
| 1.0 – 1.9 | 3 hours | Light fat/protein — e.g. a small portion of cheese |
| 2.0 – 2.9 | 4 hours | Moderate — e.g. a chicken breast with vegetables |
| 3.0 – 3.9 | 5 hours | Higher — e.g. a fatty cut of meat with cheese |
| 4.0 – 4.9 | 6 hours | Significant — e.g. pizza with extra toppings |
| 5.0 – 5.9 | 7 hours | High load — large portions of high-fat, high-protein foods |
| 6.0+ | 8 hours | Very high — e.g. a large fast food combo meal |
Step 3: Convert to a Dose
Adjusted equivalent = Raw × Adjustment Factor (%)
Warsaw Dose = Adjusted equivalent ÷ ICR
Example: 3.0 × 10 = 30g → 30g × 50% = 15g → 15 ÷ 10 ICR = 1.50 units over 5 hours
Pre-Bolus Timing — When to Eat
The timing suggestion answers: not how much, but when. Fast-acting insulin takes time to start working, so taking it before eating (a "pre-bolus") can help match the insulin peak with the glucose spike from food.
BG between 80–200 → Wait = 8 + ((BG − 80) ÷ 120) × 12 minutes
BG > 200 mg/dL → Wait 20 minutes (capped)
Smooth ramp: at BG 80 the suggestion is ~8 min; at BG 200 it's ~20 min.
- Rising fast: +5 minutes added (capped at 25 min total)
- Falling (slow or fast): Resets to 0 — eat immediately to avoid a low
- Stable or rising slowly: No additional modification
Safety Guardrails — What Stops the Simulation
These are logic checks designed to prevent the tool from producing outputs based on clearly problematic inputs — not medical safeguards.
🚫 Critical Low Block Stops Simulation
If Current BG is below 60 mg/dL, the simulator refuses to run. This is a medical situation requiring treatment first — not insulin dose modeling.
⚠️ Low Range Warning Warning Shown
If Current BG is between 60–70 mg/dL, the simulation runs but displays a caution message. This range may indicate borderline hypoglycemia.
🚫 Calculation Cap Stops Simulation
If total output exceeds the Calculation Cap (default 25 units), the simulation stops. This prevents accidentally large inputs from producing very high numbers silently.
🔒 Negative Value Clamping Silent Rule
Any calculation that would produce a negative dose is automatically set to zero. If IOB exceeds the gross meal dose, the meal wave becomes zero — never a negative number.
🔒 FPU Threshold Silent Rule
If fat and protein produce less than 1.0 FPU (under 100 combined fat/protein calories), the Warsaw wave is set to zero. Below this threshold, the effect is considered too small to model meaningfully.
Your Data — Where It Goes
Profile variables (ICR, ISF, Target BG, Cap, Adjustment Factor) are saved in your browser's local storage. The data never leaves your device, is not sent to any server, and is not collected by anyone. It persists between sessions for convenience. Clearing your browser data removes it.
Your meal data (carbs, fat, protein, current BG, IOB) is never saved — it clears every time you reload the page. Meal data is scenario-specific and should not persist as if it were a standing instruction.
What This Tool Cannot Do
Understanding what the Bolus Estimator cannot do is just as important as understanding what it can.
❌ It doesn't know your body
It uses only the numbers you provide. If your ICR changes day to day, or you're sick, exercising, or stressed — the model doesn't know.
❌ It doesn't track outcomes
It has no memory of previous simulations and cannot learn from what actually happened to your blood sugar.
❌ It doesn't control delivery
No connection to any pump, CGM, or insulin delivery system. It produces numbers on a screen — nothing more.
❌ It doesn't model everything
Stress, illness, exercise, hormones, site absorption, insulin age, food glycemic index — none of these are modeled.
The value of this tool is in education and conversation: understanding how the variables interact, exploring the math behind insulin strategies, and coming to appointments with your care team better informed about the concepts involved.
The Full Calculation Flow at a Glance
| Step | What It Calculates | Formula (Simplified) |
|---|---|---|
| A | Carb Dose | Carbs ÷ ICR |
| B | Correction Dose | (BG − Target) ÷ ISF (min 0) |
| C | Net Meal Wave | max(0, A + B − IOB) |
| D | Trend Modifier | C × 1.0 / 0.90 / 0.80 |
| E | Warsaw Wave | ((Fat×9 + Prot×4) ÷ 100) × 10 × Adj% ÷ ICR |
| F | Total | Meal Wave + Warsaw Wave |
| G | Pre-Bolus Timing | 8 + ((BG−80) ÷ 120) × 12 min ± trend |