Run the estimator, then read the rest of the page to see every number it used to get there — the formulas, the lookups, the places it refuses to answer, and the assumptions baked in that are not part of the published method.
A mathematical model. It is not connected to any medical system, it does not know your body, and it cannot learn from what happened last time you ate this.
Two doses, two shapes. The estimator sizes both of them and tells you when the first one might start.
You enter values. It applies a set of published formulas to them and prints every intermediate step. The goal is education — understanding the variables that diabetes educators, endocrinologists, and people living with Type 1 think about when they talk about insulin strategy.
The framework underneath is the Warsaw Method, a real approach used in diabetes research and education that accounts for more than carbohydrate alone.
These are theoretical numbers produced by math. They are not prescriptions and not recommendations. They are a model — like a forecast showing what might happen under certain conditions, not what will happen to a specific body on a specific day.
Two kinds of input. The personal rules that stay the same from meal to meal, and the details of this one plate of food.
The theoretical rules of your insulin model: carb ratio, sensitivity, target, cap, adjustment factor. Stored in your browser so they are waiting next time.
This specific scenario: the food, the blood sugar you want to model, the arrow, and any insulin working from earlier. All of it optional, all of it hypothetical.
| Input | What it means | Example |
|---|---|---|
| ICR | How many grams of carbohydrate one unit of insulin is expected to cover. 1:10 means one unit covers 10 grams. | 10 |
| ISF | How far blood glucose is expected to drop per one unit. 50 means one unit drops it 50 mg/dL. | 50 |
| Target BG | The goal blood glucose. Used to work out whether a correction is theoretically needed at all. | 100 mg/dL |
| Calculation cap | A hard ceiling. Output above this number stops the simulation instead of printing it. | 25 units |
| FPU adjustment factor | Scales the fat and protein portion down. 50% is the conservative default, and it is a modification — not part of the published method. | 50% |
| Carbs · fat · protein | The macronutrients in the meal being modeled, in grams. | 45 · 20 · 30 |
| Current BG | Optional. Left blank, the tool assumes you are sitting exactly at target. | 142 mg/dL |
| IOB | Active insulin from an earlier dose. Subtracted from the meal wave — never from the fat and protein wave. | 1.5 units |
| BG trend | Stable, rising, or falling. Falling shrinks the meal wave. Rising fast changes the timing instead. | ↗ rising slowly |
Glucose values work in mg/dL or mmol/L. Switch units and any ISF, target, and current BG already entered are converted for you, so a number typed in one unit is never quietly read as the other.
Press Simulate Strategy and six calculations run in order. Every one of them is visible in the results panel under “Show Calculation Steps.” Here is what each one is doing.
The most basic insulin calculation there is. Total carbohydrate divided by the carb ratio.
Above target, more insulin is theoretically needed. The sensitivity factor decides how much. Below target, this clamps to zero rather than going negative.
Insulin still active from an earlier dose comes off here, and only here. It does not reduce the fat and protein wave — those are treated as separate effects. If IOB is larger than the gross dose, the meal wave becomes zero, never a negative number.
A falling blood sugar is a safety concern, so the meal wave shrinks. A rising one does not change the dose at all — it changes the timing model instead.
The distinctive part of the model, and the reason the tool exists. Section 04 takes it apart.
One total, and one last check against the cap before it is allowed on screen.
The Warsaw Method comes out of research at the Children's Memorial Health Institute in Warsaw, Poland. It addresses the known limit of a carb-only model: fat and protein move blood sugar too, just more slowly and for much longer.
Except it does not arrive like 10 grams of carbohydrate. It arrives spread across hours instead of peaking in minutes, which is why pizza, a steak, or a fast food bag can still be climbing long after a standard carb dose has finished working.
Under 1.0 FPU the whole wave is thrown away. Less than 100 combined calories of fat and protein is treated as too small to model.
That is the published lookup, jump and all — 3, 4, 5, then straight to 8. There are no 6-hour or 7-hour rungs in the original method, so the model does not invent any.
The worked example, end to end. 45 carb · 20 fat · 30 protein, at a carb ratio of 1:10, sensitivity 50, target 100, blood glucose 142, 1.5 units still working, factor at 50%. Change any one of those and all three boxes change.
The published method has no adjustment factor at all — it delivers the full carb equivalent, which is 100% here. That full-strength version has been linked in several studies to more hypoglycemia, so a reduced starting factor became a common modification. The 50% default is that modification, not the original method, and individual responses vary widely. It is worth raising with a healthcare professional who knows this approach.
Fast-acting insulin takes time to get going. A pre-bolus exists to line the insulin up with the food instead of chasing it. Here is the curve the tool uses to guess the gap.
Blood glucose along the bottom, modeled wait up the side. The step at 80 is real — below it the model returns zero rather than a short wait.
Real pre-bolus timing depends on which insulin is in the pump or pen, how a particular body absorbs it, what the food is, what the day has been like. This curve is a starting point for a conversation with a care team — not an instruction.
Logic checks that stop the tool printing a number from an input that clearly does not belong in a dose calculation. They are not medical safeguards.
Current BG below 60 mg/dL (3.3 mmol/L) and the tool will not run. That is a medical situation to treat first.
Between 60 and 70 mg/dL (3.3–3.9) the simulation runs but says so. This range may be borderline hypoglycemia.
Total output over the cap, 25 units by default, halts everything. A fat-fingered input never quietly becomes a very large number.
Carb ratio, sensitivity, and target must be positive. Any calculation that would go negative is set to zero instead.
Under 1.0 FPU — less than 100 combined fat and protein calories — the Warsaw wave is set to zero.
Switching mg/dL and mmol/L converts everything already entered. A number typed in one unit is never reinterpreted in the other — a classic dose-modeling error.
Nowhere. There is no server to send them to.
Carb ratio, sensitivity, target, cap, adjustment factor — plus which color theme you picked and a count of how many times the feedback card has appeared. Saved in local storage on your own device, never transmitted, never collected. They persist between visits for convenience, and clearing your browser data removes them.
Carbs, fat, protein, current BG, IOB. Meal data clears on every reload. It belongs to one plate of food and should not sit around behaving like a standing instruction.
Worth knowing as precisely as what it can.
It only has the numbers typed into it. A carb ratio that shifts day to day, an illness, a workout, a stressful afternoon — none of it reaches the model.
No memory of previous simulations and no way to learn from what the blood sugar actually did afterward.
No connection to a pump, a CGM, or any delivery system. It produces numbers on a screen and stops there.
Stress, illness, exercise, hormones, site absorption, insulin age, glycemic index — none of these are in the math.
These numbers are the theoretical output of a formula. They are not prescriptions and not validated clinical recommendations. Using this tool to make actual insulin dosing decisions, without guidance from a qualified healthcare professional, is dangerous and is explicitly not what it is for.
What it is for is education and conversation: seeing how the variables push against each other, watching what fat and protein do to a number, and walking into an appointment able to ask a sharper question.
| Step | What it calculates | Formula |
|---|---|---|
| A | Carb dose | carbs ÷ ICR |
| B | Correction | (BG − target) ÷ ISF, minimum 0 |
| C | Net meal wave | max(0, A + B − IOB) |
| D | Trend modifier | C × 1.00 / 0.90 / 0.80 |
| E | Warsaw wave | ((fat×9 + protein×4) ÷ 100) × 10 × factor ÷ ICR |
| F | Total | meal wave + Warsaw wave |
| G | Pre-bolus timing | 8 + ((BG − 80) ÷ 120) × 12 min, ± trend |
Real food run through this exact math, episode by episode, with the companion pages that follow along.
Browse Bolus 4 Go deeperSliders instead of a form. Watch a fat-protein unit stretch out over hours and see what a carbs-only dose misses.
Open the simulator Start hereThe plain-language walkthrough of bolusing for a meal, before any of the fat and protein math gets involved.
Read the tutorial