ForHosting KIT · Health & fitness

Carb cycling planner

Share out a weekly carb budget across high, medium and low days: 1400 g with three high, two medium and two low days gives 280 g, 186.7 g and 93.3 g, and the week still totals 1400 g. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Weekly carbs
1,400
High days
3
Medium days
2
Low days
2
Precision
1
You get
Week days
7
High ratio
1.5
Medium ratio
1
Low ratio
0.5

Carb cycling keeps a fixed weekly carbohydrate budget while assigning more grams on training days and fewer on rest days, so fuel matches effort without drifting off the week total. Coaches, physique athletes, and app builders use high, medium, and low carb day targets to plan groceries, time carbs around hard sessions, and keep adherence when social meals land on lower-priority days. This carb cycling planner accepts a weekly carbohydrate total in grams, how many high, medium, and low days you want, and optional relative ratios, then solves deterministic gram targets so the weighted week still sums exactly to your budget.

How high, medium, and low carb days are calculated

Start from the weekly carbohydrate budget you already trust—maintenance macros times seven, a cut plan, or any fixed gram total—and choose how many high, medium, and low days fill the cycle (seven by default). Each kind carries a positive relative ratio: by default high is one point five, medium is one, and low is zero point five. The planner forms a single weight unit equal to the weekly total divided by the sum of day-count times ratio for every kind.

High-day grams equal unit times the high ratio, medium-day grams equal unit times the medium ratio, and low-day grams equal unit times the low ratio. That identity keeps the week honest: three high days and two low days do not invent extra carbohydrate; they only reallocate the same weekly pool toward harder sessions. Day figures are rounded to the requested precision, and the last scheduled day absorbs any residual so the reported sum still matches the weekly budget after rounding.

The algorithm never reads the system clock, never draws a random number, and never calls a remote service, which makes browser previews and server goldens agree byte-for-byte across runtimes.

Where a carb cycling planner earns its keep

Personal trainers and online coaches export high, medium, and low carb day grams into client meal templates so leg day can sit higher without blowing the weekly carbohydrate budget they already negotiated. Fitness apps that already compute macro targets can call this planner as a pure post-step: same weekly carbs, richer day-by-day targets for grocery lists, barcode logs, and push notifications timed to training.

Spreadsheet users who used to hand-tune high and low columns stop drifting off the weekly total when rounding creeps in; the residual day adjustment keeps the sum locked.

Coach training-day carb maps

Turn a fixed weekly carbohydrate budget into high, medium, and low day gram targets clients can follow around hard sessions without exceeding the agreed weekly total.

Fitness app macro post-processing

After computing weekly carbs from calories and macro percent, call the planner to emit deterministic day-by-day carbohydrate targets for logs and reminders.

How does the carb cycling planner work?

It divides your weekly carbohydrate grams by the weighted sum of high, medium, and low day counts times their ratios, multiplies each ratio by that unit for per-day targets, and schedules high days on training-spaced slots first so the week still sums to your budget.

How are high (training) days placed in the week?

High days fill spaced slots first (Monday, Wednesday, Friday, then remaining weekdays), then medium days, then low days, so the schedule is deterministic without needing a free-text calendar.

Can I change how much more a high day gets than a low day?

Yes. Each kind of day has a relative weight: by default 1.5 for high, 1 for medium and 0.5 for low. Change them to any positive values and the grams are recalculated so the week still matches your budget.

Can I plan a cycle longer than seven days?

Yes, up to 14 days, which suits a training camp or a deload block. The only condition is that high, medium and low days together equal the length of the cycle you choose.

Do I have to enter the number of low days?

No. If you leave it out, the low days are whatever remains after the high and medium days, which is the usual way coaches fill a seven-day week.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/health/carb-cycling

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/health/carb-cycling \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"weekly_carbs":1400,"high_days":3,"medium_days":2}'
{
  "weekly_carbs": 1400,
  "high_days": 3,
  "medium_days": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.carb_cycling",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Missing fields, non-numeric values, and impossible day counts fail with invalid_input instead of inventing carbs. The same pure logic powers the free browser path and the paid API path, with no network calls and no randomness.

How high, medium, and low carb days are calculated

Optional week_days supports non-standard microcycles up to fourteen days when you plan a camp or a deload block, as long as high plus medium plus low equals the cycle length. When low_days is omitted it is inferred as week_days minus high minus medium, which is the usual seven-day coaching flow.

Input contract, response shape, and validation rules

Optional precision is an integer from zero to six decimal places and defaults to one. Example: fourteen hundred weekly grams with three high, two medium, and two low days at default ratios yields a clear high-day target above the daily average and a low-day target below it while the seven-day sum still matches fourteen hundred. POST a JSON body with weekly_carbs as a finite positive number—the cycle carbohydrate budget in grams—and high_days plus medium_days as non-negative integers within the cycle length. Optional low_days fills the remainder when omitted; if provided, high plus medium plus low must equal week_days. Optional week_days defaults to seven and must be an integer from one to fourteen. Optional high_ratio, medium_ratio, and low_ratio default to one point five, one, and zero point five and must be finite and positive. Field aliases are accepted for ergonomics: weekly_carb_grams, week_carbs, total_carbs, and carb_budget map to the weekly budget; high_count and training_high_days map to high_days; medium_count and moderate_days map to medium_days; low_count and rest_days map to low_days; days_in_week and cycle_days map to week_days; high_weight and high_factor map to high_ratio; medium_weight and medium_factor map to medium_ratio; low_weight and low_factor map to low_ratio; decimals and dp map to precision. Missing required fields, non-numeric strings, non-finite values, non-positive weekly totals or ratios, and day counts that do not sum to the cycle length all fail with invalid_input and are not billed. On success the body echoes weekly_carbs, week_days, the three day counts and ratios; reports average_daily_carbs_g plus high_day_carbs_g, medium_day_carbs_g, and low_day_carbs_g; returns days as an array of objects each with day, label, kind, and carbs_g; and includes sum_carbs_g, formula, and precision.

Where a carb cycling planner earns its keep

Pair the output with your own protein and fat split or meal generator if you need full macros per day; this endpoint plans carbohydrate allocation only, not recipes, medical advice, or calorie totals, and it will not invent a week when inputs are missing, non-numeric, or otherwise invalid.

Content widgets and demos

Power a free browser carb cycling tool that matches the paid API byte-for-byte for SEO landings and product screenshots.

What inputs are required?

weekly_carbs (finite positive grams), high_days, and medium_days. Optional: low_days (inferred if omitted), week_days (default 7), high_ratio (1.5), medium_ratio (1), low_ratio (0.5), precision (1). Missing or non-numeric values return invalid_input.

Do high, medium, and low days still match my weekly total?

Yes. Unrounded targets satisfy nH×high + nM×medium + nL×low equals weekly_carbs; after rounding, the last day absorbs residual so sum_carbs_g matches the rounded weekly budget.

What does the carb cycling planner cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →