ForHosting KIT · Education

Lesson plan time budget

A 50-minute lesson with warm-up, direct instruction, guided practice and exit ticket weighted 1, 3, 4 and 2 becomes 5, 15, 20 and 10 minutes. You set how much each part matters, and the minutes always add up to the class length. 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
Duration minutes
50
You get
Activity count
4
Weight sum
10
Minutes
5, 15, 20, 10

Teachers, instructional coaches, and curriculum platforms constantly face the same planning question: if this lesson is fifty minutes long, how many minutes should warm-up, direct instruction, guided practice, and the exit ticket each receive? Relative weights capture intent better than guessing absolute numbers—one block might deserve twice the attention of another without anyone knowing the final minute counts yet. This lesson plan time budget calculator accepts a positive total duration in minutes plus an ordered list of named activities with non-negative relative weights, then returns proportional minutes for each row so the parts sum back to the class length.

How proportional time allocation works

A lesson plan time budget treats the class period as a fixed pie and each planned activity as a slice whose size is set by a relative weight rather than by an absolute minute guess. Equal weights produce equal minutes; a weight of two next to a weight of one means twice as long, regardless of whether you wrote 2 and 1 or 10 and 5.

That scale-invariance is useful when a team negotiates priorities first and only later locks the bell schedule: change D from forty-five to sixty and every share scales without retyping weights. Zero weight is allowed for a row you want to keep on the plan as a named placeholder that receives no time in this pass; what is not allowed is every weight being zero, because division by a zero sum is undefined. Negative weights are rejected because a negative slice of a class period has no classroom meaning.

Bell-schedule and block planning

Reallocate warm-up, instruction, practice, and exit-ticket minutes when the period length changes, keeping the same relative activity weights.

Coaching and observation templates

Generate planned minute shares and percents for observation forms so coaches compare intended talk-time against the clock.

LMS and pacing automation

Call the same weighted time budget from gradebook or curriculum APIs so templates and human planners never disagree on minute totals.

How are minutes allocated across activities?

Equal weights mean equal minutes; double weight means double time. The returned minutes sum to the total duration.

Can an activity have weight zero?

Yes. A zero-weight row keeps its name on the plan but receives zero minutes.

Do I need absolute minutes for each activity up front?

No. Supply relative weights and a single total duration. Change the duration later and re-run to scale every activity without rewriting the plan structure.

What happens when the class period changes length?

Keep the same weights and change only the total. Every activity scales with it, so a longer or shorter period gets the same proportions without retyping anything, and weights of 2 and 1 behave exactly like 10 and 5.

Do the minutes always add up exactly to the class length?

Yes. Splitting by weight can leave a tiny rounding leftover, and that leftover goes to the last activity with a weight above zero, so the parts always sum back to the period you entered.

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/edu/lesson-plan-time-budget

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/edu/lesson-plan-time-budget \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"duration_minutes":50,"activities":[{"name":"Warm-up","weight":1},{"name":"Direct instruction","weight":3},{"name":"Guided practice","weight":4},{"name":"Exit ticket","weight":2}]}'
{
  "duration_minutes": 50,
  "activities": [
    {
      "name": "Warm-up",
      "weight": 1
    },
    {
      "name": "Direct instruction",
      "weight": 3
    },
    {
      "name": "Guided practice",
      "weight": 4
    },
    {
      "name": "Exit ticket",
      "weight": 2
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "edu.lesson_plan_time_budget",
  "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.

Non-positive duration and a zero weight sum fail with invalid_input instead of inventing a schedule.

How proportional time allocation works

If duration_minutes is D and activity i has weight w_i, the allocated minutes are D times w_i divided by the sum of all weights. After proportional multiplication, floating-point rounding can leave a tiny residual so the cleaned minutes no longer sum exactly to D; this endpoint absorbs that residual into the last activity that has a positive weight so the returned minutes array is always a partition of the requested duration. The response also reports share_ratio and percent for each activity so dashboards can chart the same split without recomputing the sum of weights.

Input contract, response shape, and error behaviour

The field activities is a non-empty array of objects, each with a non-empty name string and a finite non-negative weight number. Up to one hundred activities are accepted on this free parse path. A parallel minutes array matches the input order for scripts that only need the numeric allocation. Classic classroom checks include a fifty-minute block with weights one, three, four, and two for warm-up, direct instruction, guided practice, and exit ticket, which yields five, fifteen, twenty, and ten minutes respectively. Wire the free browser form to a planning board for human use, and call the same contract from a gradebook or pacing-guide service when automation needs identical numbers. POST a JSON body with two required fields. The field duration_minutes is a finite number strictly greater than zero representing total class length in minutes; zero and negative values fail with invalid_input naming the field. Missing fields, empty activity lists, non-object rows, blank names, non-finite numbers, negative weights, and a weight sum of zero all fail with invalid_input and are not billed. On success the body echoes duration_minutes, reports activity_count and weight_sum, and returns an activities array of objects each carrying index, name, weight, share_ratio, minutes, and percent. Method is weighted_time_budget and formula restates minutes_i equals duration_minutes times weight_i over sum of weights. Successful API calls use the published base price $0.002 per item; validation failures do not consume prepaid balance.

Where a lesson time budget API earns its keep

Instructional design teams use a lesson plan time budget calculator so multi-period templates stay consistent when a district shortens or lengthens the bell schedule: keep the same relative weights and re-run with the new duration_minutes. Coaching tools embed the endpoint so an observation form can show whether the planned share for student talk matched the observed clock, using percent and minutes from a single source of truth. Ed-tech builders avoid shipping their own floating-point edge cases—zero duration, all-zero weights, residual rounding—because those paths are already covered by deterministic invalid_input or residual absorption.

What if the total class duration is zero or negative?

The task fails with invalid_input. duration_minutes must be a finite number strictly greater than zero; non-positive totals are not billed.

What does the lesson plan time budget calculator 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 →