ForHosting KIT · Health & fitness

Physical activity level energy calculator

A basal rate of 1700 kcal a day at a moderate activity level, a PAL of 1.75, means a daily need of 2975 kcal. Enter the basal rate you already trust and pick your lifestyle band to get your total daily energy. 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
Basal rate
1,700
Pal
moderate
You get
Pal
1.75 kcal/day
Pal label
moderate
Pal source
category
Total energy
2,975

Total energy expenditure is the daily calorie budget your body needs once you account for how active you are, not only what you burn at complete rest. The World Health Organization and FAO describe lifestyle intensity with a physical activity level, or PAL: a dimensionless multiplier applied to basal metabolic rate. This capability takes a basal rate you already trust—from Mifflin-St Jeor, Harris-Benedict, indirect calorimetry, or any clinical estimate—and multiplies it by a WHO-style PAL category or a numeric factor in the accepted range. Use it for meal plans, research notes, wellness products, and any pipeline that must show how resting energy scaled into a full-day target.

What WHO physical activity level measures and how TEE is formed

Physical activity level is the ratio of total energy expenditure to basal metabolic rate over a representative period, typically a day. WHO and FAO group lifestyles into bands rather than prescribing a single universal number: sedentary or light-activity living sits near the lower band, moderately active living occupies the middle, and vigorously active living approaches the upper end of the common range.

In practice, calculators map those bands to representative factors such as one point four for sedentary, one point five five for light, one point seven five for moderate, two point zero for vigorous, and two point four for extreme or very high occupational and leisure load. Total energy expenditure is then simply basal rate times that factor. This capability does not recompute basal rate from weight, height, age, or sex; it assumes you already have a resting energy figure and only applies the activity multiplier.

That separation matters for clinical honesty and product design: basal formulas and activity scaling are different scientific steps, and users who search for physical activity level energy want the second step made explicit.

Where PAL-based energy estimates fit in real workflows

Nutrition coaching apps often already store a BMR from onboarding anthropometrics and need a second, auditable step that turns that floor into a daily calorie target based on self-reported lifestyle. Research coordinators batch-apply the same WHO categories to study subjects so secondary analyses share one definition of sedentary versus vigorous rather than ad-hoc spreadsheet factors. Employer wellness portals and insurance education tools can show members how choosing a different activity band moves total energy without re-asking height and weight.

Clinical dietitians document the PAL category used in a care plan so the multiplier is transparent when the case is reviewed months later. The browser path is free for single checks: enter one thousand seven hundred kilocalories per day and moderate, and confirm the total equals basal times one point seven five.

Scale known BMR into a daily calorie target

Take a basal rate from Mifflin-St Jeor or lab calorimetry and multiply by a WHO PAL category to produce a transparent total energy expenditure for meal planning.

Research and cohort energy budgets

Apply a consistent sedentary, moderate, or vigorous factor across study subjects so secondary analyses share one physical activity level definition.

Wellness product transparency

Show users the exact PAL factor and total kcal/day next to their resting rate so lifestyle choices map clearly to energy needs in dashboards and reports.

What does it cost?

The same calculation runs free in your browser on this page.

Do I need weight, height, age, and sex?

Compute basal metabolic rate with a separate BMR tool first if you only have anthropometrics.

Which PAL categories are supported?

You may also pass a numeric PAL greater than 1.0 and at most 2.5.

Is this the same as a full TDEE calculator?

It produces total energy expenditure from basal × PAL, which is the activity step of many TDEE workflows. It does not recompute BMR from body measurements; that keeps the WHO physical activity level step explicit and auditable.

Can I enter my own PAL number instead of a category?

Yes. Any factor above 1.0 and up to 2.5 is accepted, which is the practical window used in WHO and FAO energy work. The result labels it as a custom level so you can tell it apart from the standard bands.

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/pal-energy

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/pal-energy \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"basal_rate":1700,"pal":"moderate"}'
{
  "basal_rate": 1700,
  "pal": "moderate"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.pal_energy",
  "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.

The result is a transparent total energy figure in kilocalories per day, with no fitness-tracker black box, no third-party nutrition API, and no hidden adjustments.

How to call the API and read the response fields

Send two required inputs. The second is pal: either a lifestyle category string or a numeric factor. Spaces and hyphens normalize to underscores, so light activity and light-activity both resolve. If you pass a number, it must lie in the open-closed interval greater than one point zero and at most two point five, matching the practical WHO/FAO PAL window used in energy-requirement work. The first is basal_rate: a positive finite number in kilocalories per day. Aliases such as bmr, bmr_kcal_day, basal, and resting_energy map to the same field so existing forms can wire in without renaming. Accepted categories include sedentary, light, moderate, vigorous, and extreme, plus common aliases such as lightly_active, moderately_active, vigorously_active, very_active, and extremely_active. Missing or non-positive basal_rate fails with invalid_input and is not charged; missing, unrecognised, or out-of-range pal likewise raises invalid_input with a clear message. A successful response returns the cleaned basal_rate, the numeric pal applied, a pal_label such as moderate or custom, pal_source as category or numeric, total_energy as basal times pal, a short formula string, and the unit label kcal/day. There is no network hop, model call, or randomness, so latency stays in the pure edge-parse band and free browser checks match the paid API byte for byte.

Where PAL-based energy estimates fit in real workflows

Developers embed this call in CRON jobs and webhooks so every microservice multiplies with the same table instead of re-hardcoding floating factors that disagree on rounding. The API path costs $0.002 per successful request and is billed per item, which keeps bulk onboarding scripts inexpensive while still covering edge execution. Because results are deterministic, audit logs can store the full JSON and re-run it years later without drift.

Why was my request rejected?

basal_rate must be a positive finite number. pal must be a known category or a number in (1.0, 2.5]. Missing or invalid fields return invalid_input and are not charged.

Read the full KIT documentation →