bmi-bsa-calculator
Calculate Body Mass Index (BMI) and Body Surface Area (BSA) for clinical assessment and drug dosing. Supports multiple BSA formulas (DuBois, Mosteller, Haycock) and provides weight category classification with pediatric and adult norms.
Best use case
bmi-bsa-calculator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Calculate Body Mass Index (BMI) and Body Surface Area (BSA) for clinical assessment and drug dosing. Supports multiple BSA formulas (DuBois, Mosteller, Haycock) and provides weight category classification with pediatric and adult norms.
Teams using bmi-bsa-calculator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/bmi-bsa-calculator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How bmi-bsa-calculator Compares
| Feature / Agent | bmi-bsa-calculator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Calculate Body Mass Index (BMI) and Body Surface Area (BSA) for clinical assessment and drug dosing. Supports multiple BSA formulas (DuBois, Mosteller, Haycock) and provides weight category classification with pediatric and adult norms.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# BMI & BSA Calculator
## Overview
Clinical calculator for anthropometric measurements used in health assessment, obesity screening, and chemotherapy dosing calculations.
**Key Capabilities:**
- **BMI Calculation**: Standard and adjusted BMI formulas
- **BSA Estimation**: Multiple validated formulas (DuBois, Mosteller, Haycock)
- **Weight Classification**: WHO and CDC category assignment
- **Dosing Support**: Chemotherapy and medication dose calculations
- **Pediatric Support**: Age-appropriate norms and calculations
- **Unit Flexibility**: Metric and imperial input support
## When to Use
**✅ Use this skill when:**
- Calculating chemotherapy doses requiring BSA (mg/m²)
- Screening for obesity or underweight in clinical practice
- Adjusting drug doses based on body composition
- Documenting baseline anthropometrics in patient charts
- Teaching medical students clinical calculations
- Quick assessment in resource-limited settings
**❌ Do NOT use when:**
- BMI alone for clinical diagnosis → Use comprehensive metabolic assessment
- Pregnancy weight assessment → Use gestational weight gain charts
- Pediatric growth evaluation → Use WHO/CDC growth charts with percentiles
- Body composition analysis → Use DEXA or bioimpedance
- Athletic/muscular patients → Consider body fat % instead of BMI
**Integration:**
- **Upstream**: `ehr-semantic-compressor` (patient data extraction), `automated-soap-note-generator` (vital signs)
- **Downstream**: `drug-interaction-checker` (dose calculation), `medication-reconciliation` (dosing verification)
## Core Capabilities
### 1. BMI Calculation
Calculate Body Mass Index with classification:
```python
from scripts.calculator import BMIBSACalculator
calc = BMIBSACalculator()
# Calculate BMI
result = calc.calculate_bmi(
weight_kg=70,
height_cm=175,
age=45,
sex="male"
)
print(f"BMI: {result.bmi:.1f} kg/m²")
print(f"Category: {result.category}") # Normal weight
print(f"Ideal weight range: {result.ideal_weight_range}")
```
**BMI Categories (WHO):**
| Category | BMI Range | Clinical Significance |
|----------|-----------|---------------------|
| **Underweight** | < 18.5 | Malnutrition risk |
| **Normal** | 18.5 - 24.9 | Healthy range |
| **Overweight** | 25.0 - 29.9 | Increased risk |
| **Obese I** | 30.0 - 34.9 | High risk |
| **Obese II** | 35.0 - 39.9 | Very high risk |
| **Obese III** | ≥ 40.0 | Extremely high risk |
**Adjusted BMI:**
- **BMI Prime**: BMI / 25 (obesity severity index)
- **Ponderal Index**: BMI for tall/short individuals
- **Age-adjusted**: For elderly patients (>65)
### 2. BSA Calculation
Multiple formulas for different clinical scenarios:
```python
# Calculate BSA using different formulas
bsa_results = calc.calculate_bsa(
weight_kg=70,
height_cm=175,
formulas=["dubois", "mosteller", "haycock", "gehan_george"]
)
for formula, bsa in bsa_results.items():
print(f"{formula}: {bsa:.2f} m²")
```
**BSA Formulas:**
| Formula | Equation | Best For |
|---------|----------|----------|
| **DuBois** | 0.007184 × W^0.425 × H^0.725 | Adults (most common) |
| **Mosteller** | √(W × H / 3600) | Adults (simplified) |
| **Haycock** | 0.024265 × W^0.5378 × H^0.3964 | Pediatrics |
| **Gehan-George** | 0.0235 × W^0.51456 × H^0.42246 | Oncology |
| **Yu** | 0.015925 × W^0.5 × H^0.5 | Asian populations |
### 3. Drug Dosing Calculations
Apply BSA to medication dosing:
```python
# Calculate chemotherapy dose
dose = calc.calculate_dose(
bsa=bsa_results["dubois"],
drug="carboplatin",
dose_per_m2=400, # mg/m²
max_dose=800 # mg cap
)
print(f"Calculated dose: {dose:.0f} mg")
print(f"BSA used: {bsa_results['dubois']:.2f} m²")
```
**Common BSA-Based Doses:**
- Carboplatin: AUC-based (Calvert formula)
- 5-FU: 400-600 mg/m²
- Doxorubicin: 60-75 mg/m² (lifetime max 450-550 mg/m²)
- Paclitaxel: 135-175 mg/m²
### 4. Pediatric Calculations
Age-appropriate calculations for children:
```python
pediatric = calc.pediatric_mode(
weight_kg=25,
height_cm=120,
age_years=8,
sex="female"
)
print(f"BMI-for-age percentile: {pediatric.bmi_percentile}%")
print(f"Weight status: {pediatric.weight_status}")
print(f"BSA (Haycock): {pediatric.bsa:.2f} m²")
```
**Pediatric Considerations:**
- BMI percentiles (not absolute values)
- Growth chart integration
- Age-specific BSA formulas
- Body composition changes with development
## Common Patterns
### Pattern 1: Chemotherapy Dosing
**Scenario**: Calculate carboplatin dose for cancer patient.
```bash
# Calculate BSA and dose
python scripts/main.py \
--weight 70 \
--height 175 \
--drug carboplatin \
--target-auc 5 \
--creatinine-clearance 80 \
--output dose_calculation.txt
```
**Output:**
```
BSA (DuBois): 1.79 m²
Calvert Formula: Dose = Target AUC × (GFR + 25)
= 5 × (80 + 25)
= 525 mg
Maximum dose check: 525 mg ≤ 800 mg ✓
Recommended dose: 525 mg
```
### Pattern 2: Obesity Screening
**Scenario**: BMI assessment for weight management clinic.
```python
# BMI with full assessment
assessment = calc.assess_bmi(
weight_kg=95,
height_cm=165,
age=52,
sex="female",
waist_cm=98
)
print(f"BMI: {assessment.bmi:.1f} (Obese Class II)")
print(f"Waist-to-height ratio: {assessment.whtr:.2f} (High risk)")
print(f"Comorbidity risk: {assessment.health_risk}")
print(f"Recommended: {assessment.recommendations}")
```
### Pattern 3: Pediatric Growth Assessment
**Scenario**: Calculate child's BSA for medication dosing.
```python
# Pediatric dosing
child = calc.pediatric_assessment(
weight_kg=20,
height_cm=110,
age_years=6,
sex="male"
)
print(f"BSA: {child.bsa:.2f} m² (Haycock formula)")
print(f"BMI percentile: {child.bmi_percentile}th")
print(f"Doxorubicin dose: {child.bsa * 60:.0f} mg")
```
### Pattern 4: Rapid Clinical Assessment
**Scenario**: Quick BMI/BSA for admission vital signs.
```bash
# Quick calculation
python scripts/main.py --weight 80 --height 180 --quick
# Output:
# BMI: 24.7 kg/m² (Normal)
# BSA: 2.00 m² (DuBois)
# Ideal weight: 65-80 kg
```
## Complete Workflow Example
**Comprehensive patient assessment:**
```python
from scripts.calculator import BMIBSACalculator
from scripts.reports import ClinicalReport
# Initialize
calc = BMIBSACalculator()
report = ClinicalReport()
# Patient data
patient = {
"weight_kg": 75,
"height_cm": 170,
"age": 55,
"sex": "female",
"waist_cm": 88
}
# Calculate all metrics
bmi = calc.calculate_bmi(**patient)
bsa = calc.calculate_bsa(**patient, formula="dubois")
assessment = calc.comprehensive_assessment(**patient)
# Generate report
report_data = {
"bmi": bmi,
"bsa": bsa,
"assessment": assessment,
"recommendations": assessment.recommendations
}
report.generate(report_data, output="patient_assessment.pdf")
```
## Quality Checklist
**Input Validation:**
- [ ] Weight realistic (2-300 kg range)
- [ ] Height realistic (50-250 cm range)
- [ ] Units clearly specified (kg/lbs, cm/in)
- [ ] Age appropriate for formulas used
**Calculation Accuracy:**
- [ ] Formula selection appropriate for patient
- [ ] BSA formula matches clinical context
- [ ] Pediatric vs. adult norms correctly applied
- [ ] Rounding appropriate (1-2 decimal places)
**Clinical Interpretation:**
- [ ] **CRITICAL**: BMI is screening tool, not diagnostic
- [ ] Ethnicity-specific cutoffs considered
- [ ] Muscle mass considered (athletes)
- [ ] Age adjustments applied (elderly/children)
**Documentation:**
- [ ] Formula used documented (DuBois vs. Mosteller)
- [ ] Units clearly stated
- [ ] Date of calculation recorded
- [ ] Dose limits verified for chemotherapy
## Common Pitfalls
**Calculation Errors:**
- ❌ **Unit confusion** → Pounds vs. kg, inches vs. cm
- ✅ Always verify units; convert if necessary
- ❌ **Wrong formula** → Using adult BSA for infants
- ✅ Use Haycock for children < 12 years
- ❌ **BMI over-interpretation** → Diagnosing based on BMI alone
- ✅ BMI is screening tool; clinical correlation required
**Clinical Misuse:**
- ❌ **Athletes misclassified** → Muscular patients marked obese
- ✅ Consider waist circumference or body fat %
- ❌ **Elderly inappropriate norms** → Same cutoffs for all ages
- ✅ Use age-adjusted BMI for >65 years
- ❌ **Ignoring ethnicity** → Universal cutoffs applied
- ✅ Asian populations: lower obesity thresholds
**Dosing Errors:**
- ❌ **BSA rounding** → 1.79 m² rounded to 1.8 m²
- ✅ Use precise values for chemotherapy
- ❌ **Max dose ignored** → Exceeding lifetime limits
- ✅ Always check cumulative doses (doxorubicin)
## References
Available in `references/` directory:
- `bsa_formulas_comparison.md` - Formula accuracy by population
- `pediatric_norms.md` - Growth charts and percentiles
- `chemotherapy_dosing.md` - BSA-based drug calculations
- `ethnic_adjustments.md` - Population-specific cutoffs
- `calculator_validation.md` - Comparison with reference standards
## Scripts
Located in `scripts/` directory:
- `main.py` - CLI calculator interface
- `calculator.py` - Core BMI/BSA calculations
- `formulas.py` - Multiple BSA formula implementations
- `pediatric.py` - Child-specific calculations
- `dosing.py` - Medication dose calculations
- `reports.py` - Clinical report generation
## Limitations
- **BMI Limitations**: Doesn't distinguish fat from muscle; varies by ethnicity
- **BSA Estimation**: All formulas are approximations; 10-15% variation normal
- **Extreme Values**: Very short/tall patients may have inaccurate estimates
- **Not for Diagnosis**: BMI/BSA are tools, not clinical diagnoses
- **Amputees**: Standard formulas inaccurate; adjustment needed
- **Pregnancy**: Special considerations not included
## Parameters
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--weight`, `-w` | float | - | Yes | Weight in kilograms |
| `--height`, `-H` | float | - | Yes | Height in centimeters |
| `--dose`, `-d` | float | - | No | Standard drug dose per m² in mg (optional) |
| `--format`, `-f` | string | text | No | Output format (text, json) |
| `--output`, `-o` | string | - | No | Output file path (optional) |
## Usage
### Basic Usage
```bash
# Calculate BMI and BSA
python scripts/main.py --weight 70 --height 175
# Calculate with drug dosing
python scripts/main.py --weight 70 --height 175 --dose 100
# Output as JSON
python scripts/main.py --weight 70 --height 175 --format json --output results.json
```
## Risk Assessment
| Risk Indicator | Assessment | Level |
|----------------|------------|-------|
| Code Execution | Python script executed locally | Low |
| Network Access | No external API calls | Low |
| File System Access | Optional file output only | Low |
| Data Exposure | No sensitive data stored | Low |
| Clinical Risk | Results used for medical decisions | Medium |
## Security Checklist
- [x] No hardcoded credentials or API keys
- [x] No unauthorized file system access
- [x] Input validation for weight/height
- [x] Output does not expose sensitive information
- [x] Error messages sanitized
- [x] Script execution in sandboxed environment
## Prerequisites
```bash
# Python 3.7+
# No additional packages required (uses standard library)
```
## Evaluation Criteria
### Success Metrics
- [x] Successfully calculates BMI using standard formula
- [x] Successfully calculates BSA using DuBois formula
- [x] Correctly categorizes BMI (Underweight, Normal, Overweight, Obese)
- [x] Calculates drug doses based on BSA when provided
### Test Cases
1. **Normal Adult**: 70kg, 175cm → BMI 22.9 (Normal), BSA ~1.85 m²
2. **Drug Dosing**: 70kg, 175cm, 100mg/m² → Dose 185mg
3. **JSON Output**: Valid JSON with all fields
## Lifecycle Status
- **Current Stage**: Draft
- **Next Review Date**: 2026-03-06
- **Known Issues**: None
- **Planned Improvements**:
- Add additional BSA formulas (Haycock, Mosteller)
- Add pediatric BMI percentiles
- Add unit conversion (lbs, ft/in)
---
**⚕️ Clinical Note: BMI and BSA are screening and calculation tools, not substitutes for clinical judgment. Always correlate with physical examination, patient history, and other assessments. Double-check all chemotherapy calculations independently.**Related Skills
aaas-roi-calculator
Calculate ROI for AI-as-a-Service (managed AI agents). Estimates cost savings, efficiency gains, and payback period for deploying AI agents across business operations. Use when evaluating whether managed AI agents make financial sense for a company.
Market Sizing — TAM/SAM/SOM Calculator
Build defensible market sizing for any product, pitch deck, or business case. Top-down and bottom-up methodologies combined.
Amazon FBA Fee Calculator — Know Your REAL Profit
**Stop guessing. Know exactly what you'll make before you sell a single unit.**
valuation-calculator
Fast stock valuation calculator - compute PEG, EV/EBITDA, Rule of 40, DCF and more with simple commands. Inspired by YouTube tutorial and Day1Global Tech Earnings Deepdive Skill.
trust-velocity-calculator
Helps calculate the rate at which trust in a skill or agent is decaying by combining time elapsed since last verification with the rate of change in behavior, permissions, or dependencies — producing a trust velocity score that predicts when a trusted credential will become unreliable.
ebm-calculator
Evidence-Based Medicine calculator for sensitivity, specificity, PPV, NPV, NNT, and likelihood ratios. Essential for clinical decision making and biostatistics education.
date-calculator
Calculates gestational age and follow-up date windows.
cold-chain-risk-calculator
Calculate cold chain transport risks
buffer-calculator
Calculate complex buffer recipes with precise measurements for molecular biology and biochemistry applications. Provides accurate mass/volume calculations, pH considerations, and step-by-step preparation instructions.
Binance Event Contract Signal Calculator
## 1. Scenario Definition
cny-rate-calculator
Auto-fetch Bank of Taiwan CNY exchange rates and calculate tiered pricing (base cost, 10K discount, 50K discount) using the Prairie Grasslands formula. REQUIRED: Channel configuration and Schedule setup must be completed before use. Supports Telegram, Discord, Slack, Signal, WhatsApp, iMessage, IRC, Google Chat, and webhooks.
Sales ROI Calculator
Calculate return on investment for any business initiative — software purchases, hiring, marketing spend, automation projects, or tool adoption.