# Dose by Weight Calculator

> Converts a weight-based dose (mg/kg per dose or per day) into milligrams per administration and per day, the volume per administration for a given concentration, and applies an optional maximum single dose.

- Calculator id: `dose-by-weight` · Category: Medical & Clinical (`medical`) · Tool name: `calculate_dose_by_weight`
- Canonical page: https://tttkmbb.com/medical/dose-by-weight · This document: https://tttkmbb.com/medical/dose-by-weight.md · JSON definition: https://tttkmbb.com/medical/dose-by-weight.json

## Purpose

Converts a weight-based dose (mg/kg per dose or per day) into milligrams per administration and per day, the volume per administration for a given concentration, and applies an optional maximum single dose.

**Use when:** A drug reference gives a dose in mg/kg and you know the patient's weight, the dosing frequency and, optionally, the product concentration or a maximum dose.

**Do not use when:** The dose is based on body surface area (use body-surface-area), units are not mg/kg (e.g. mcg/kg/min infusions), or renal or hepatic adjustment is required; drug-specific references govern the actual prescription.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `dose_mg_per_kg` | number | mg/kg | required | Dose in mg per kg, per administration or per day as set by dose_basis. (> 0, max 1000) |
| `weight_kg` | number | kg | required | Patient weight in kilograms (the dosing weight, e.g. actual or adjusted). (> 0, max 700) |
| `dose_basis` | enum: per_dose \| per_day |  | optional, default "per_dose" | Whether dose_mg_per_kg is per administration or the total for the day. |
| `doses_per_day` | integer |  | optional, default 1 | Number of administrations in 24 hours (e.g. 3 for every 8 hours). (min 1, max 24) |
| `concentration_mg_per_ml` | number | mg/mL | optional | Optional product concentration (e.g. 250 mg/5 mL = 50 mg/mL) to obtain the volume. (> 0, max 10000) |
| `max_dose_mg` | number | mg | optional | Optional cap per administration (often the adult dose); the calculated dose is limited to it. (> 0, max 100000) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `dose_per_administration_mg` | number | mg | Milligrams per dose (after any cap). |
| `daily_total_mg` | number | mg/day | Dose per administration × doses per day. |
| `volume_per_administration_ml` | number | mL | Dose / concentration; only when concentration_mg_per_ml is given. |
| `daily_volume_ml` | number | mL/day | Only when concentration_mg_per_ml is given. |
| `dosing_interval_hours` | number | h | 24 / doses per day. |
| `dose_capped` | boolean |  | True when the weight-based dose exceeded max_dose_mg and was limited. |

## Formula

`per_dose basis: dose_mg = dose_mg_per_kg × weight_kg; per_day basis: dose_mg = dose_mg_per_kg × weight_kg / doses_per_day; dose_mg = min(dose_mg, max_dose_mg); daily_total = dose_mg × doses_per_day; volume_ml = dose_mg / concentration_mg_per_ml`

Generic arithmetic only: it does not know drug-specific limits, rounding to available strengths, or renal and hepatic adjustments. Results are informational only and not a substitute for clinical judgement or medical advice.

## Data Sources

- Craker M, Janke C (2024) Nursing Dosage Calculations (open textbook, WisTech Open) — https://wtcs.pressbooks.pub/nursingdosagecalculations/ (textbook, retrieved 2026-09-24)
- WHO – Promoting safety of medicines for children (2007) — https://www.who.int/publications/i/item/9789241563437 (standard, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/dose-by-weight?dose_mg_per_kg=…&weight_kg=…`
- `POST https://tttkmbb.com/api/v1/calculate/dose-by-weight` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/dose-by-weight · OpenAPI operationId `calculate_dose_by_weight` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "dose-by-weight", "inputs": {…}}`

## Example

- 10 mg/kg per dose, 20 kg, 3 times daily, 50 mg/mL: inputs `{"dose_mg_per_kg":10,"weight_kg":20,"dose_basis":"per_dose","doses_per_day":3,"concentration_mg_per_ml":50}` → `{"dose_per_administration_mg":200,"daily_total_mg":600,"volume_per_administration_ml":4,"daily_volume_ml":12,"dosing_interval_hours":8,"dose_capped":false}`
- 30 mg/kg/day divided in 2, 15 kg: inputs `{"dose_mg_per_kg":30,"weight_kg":15,"dose_basis":"per_day","doses_per_day":2}` → `{"dose_per_administration_mg":225,"daily_total_mg":450,"dosing_interval_hours":12}`
- 15 mg/kg per dose, 60 kg, cap 500 mg: inputs `{"dose_mg_per_kg":15,"weight_kg":60,"max_dose_mg":500}` → `{"dose_per_administration_mg":500,"dose_capped":true}`

```
GET https://tttkmbb.com/api/v1/calculate/dose-by-weight?dose_mg_per_kg=10&weight_kg=20&dose_basis=per_dose&doses_per_day=3&concentration_mg_per_ml=50
```

## Limitations

The dose is based on body surface area (use body-surface-area), units are not mg/kg (e.g. mcg/kg/min infusions), or renal or hepatic adjustment is required; drug-specific references govern the actual prescription. Generic arithmetic only: it does not know drug-specific limits, rounding to available strengths, or renal and hepatic adjustments. Results are informational only and not a substitute for clinical judgement or medical advice. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Is 'mg/kg/day' the same as 'mg/kg per dose'?**

No. A daily dose is divided by the number of administrations; entering a per-day dose as per-dose would overdose by the frequency factor, which is why dose_basis is explicit.

**How do I get mg/mL from a label like 250 mg/5 mL?**

Divide: 250 / 5 = 50 mg/mL. For percentage solutions, 1% = 10 mg/mL.

## Related

- [Adjusted Body Weight Calculator](https://tttkmbb.com/medical/adjusted-body-weight.md) — Choose the dosing weight for overweight patients.
- [Body Surface Area Calculator](https://tttkmbb.com/health/body-surface-area.md) — BSA-based dosing alternative.
- [IV Drip Rate Calculator](https://tttkmbb.com/medical/iv-drip-rate.md) — Set the infusion rate for the calculated volume.
