Skip to content
Skillpedia
Analysis & spreadsheets51k · #1997

uncertainty-and-units

Helps your agent track units and uncertainties in scientific calculations. It's useful for ensuring accuracy in scientific experiments and reports.

What it does

This tool helps ensure your scientific calculations are correct regarding units (like meters, seconds) and uncertainties (how reliable a number is). It converts units, calculates error propagation, and presents results clearly.

When to use it

  • ✓When converting units in scientific calculations.
  • ✓When calculating the uncertainty of a result from multiple measurements.
  • ✓When presenting measurement results so the uncertainty is understood.

Example of what to ask your AI

“Convert 10 kilometers per hour to meters per second and tell me the uncertainty.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/uncertainty-and-units/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/uncertainty-and-units/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool uses specialized libraries to track units and uncertainties throughout calculations. It ensures units are handled correctly and uncertainty is propagated according to established scientific methods.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add K-Dense-AI/scientific-agent-skills --skill uncertainty-and-units

Or download just the file:

curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/uncertainty-and-units/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Uncertainty and units

Scope

Use this skill whenever a calculation carries physical units or a reported number needs an uncertainty. Concretely:

  • converting between units, including conversions that need a physical context (wavelength to photon energy, mass to amount of substance, energy to temperature);
  • propagating uncertainty through a measurement model, with or without correlated inputs;
  • building a GUM uncertainty budget from calibration certificates, specifications, and repeatability data;
  • choosing a coverage factor and deciding whether k = 2 is defensible;
  • rounding and writing a result so a reader knows what the ± means;
  • extracting parameter uncertainties from a curve fit without discarding correlations;
  • reviewing existing analysis code for silent unit and uncertainty defects;
  • checking that a dimensionally consistent answer is also physically possible — the order of magnitude, the dimensionless group, and the regime it implies.

This skill covers the metrology and the two libraries that implement it. It does not cover statistical inference, model selection, or study design — see statistical-analysis, statistical-power, and experimental-design.

Current release and installation

Verified 2026-10-01:

  • pint 0.26.1, released 2026-09-10; requires Python 3.12+.
  • uncertainties 3.2.3, released 2025-04-21; requires Python 3.8+.
  • NumPy 2.5.3 and SciPy 1.18.1; both require Python 3.12+.
  • scipy.constants in SciPy 1.18.1 serves CODATA 2022. SciPy 1.11 and earlier served CODATA 2018; the switch to CODATA 2022 occurred in SciPy 1.15.
uv venv --python 3.13
source .venv/bin/activate
uv pip install "pint==0.26.1" "uncertainties==3.2.3" "numpy==2.5.3" "scipy==1.18.1"

pint-pandas and pint-xarray add unit-aware columns and arrays and are separate installs.

Non-negotiable workflow

  1. Attach units at input and strip them only at output. Convert at function boundaries with ureg.wraps or m_as("unit"), never mid-calculation.
  2. Write the measurement model explicitly before computing anything, including corrections whose estimated value is zero. A correction left out of the model leaves its uncertainty out of the budget.
  3. Give every input four things: an estimate, a standard uncertainty, the distribution the uncertainty came from, and its degrees of freedom.
  4. Convert Type B statements with the right divisor. A certificate's expanded uncertainty divides by its stated k; rectangular limits divide by sqrt(3).
  5. Identify correlations before combining. A shared calibration, instrument correction, or fit can induce correlation; quantify shared components instead of assuming every pair is correlated.
  6. Compute sensitivity coefficients, and read the budget from c_i * u(x_i) rather than from the raw uncertainties.
  7. Check the linearization. Compare propagated distributions with the GUM interval when in doubt. Establish Monte Carlo numerical stability before a JCGM 101 clause 8 claim; neither method validates the measurement model or the assigned input PDFs.
  8. Justify coverage. A Student-t factor from effective degrees of freedom is an approximation requiring suitable distributional assumptions.
  9. Round the uncertainty first, then the value to the same decimal place.
  10. State what the ± is — standard or expanded, with k, the coverage probability, and the method.
  11. Sanity-check the magnitude before reporting. A dimensionally consistent result can still be impossible. Compare it against a known scale or a dimensionless group, and confirm every assumption you relied on still holds in that regime.

The failures this skill exists to prevent

Each of the following runs without error and produces a plausible number.

A unit stripped at an unknown scale

length = (12.7 * ureg.mm).magnitude          # 12.7 -- of what?
length = (12.7 * ureg.mm).m_as("m")          # 0.0127 metres, stated

.magnitude returns whatever the quantity happened to be carrying. Name the unit at the point of extraction, every time.

Offset temperature arithmetic

Q(20, "degC") + Q(5, "degC")     # OffsetUnitCalculusError -- correctly refused
Q(20, "degC") + Q(5, "delta_degC")   # 25 degree_Celsius
Q(25, "degC") - Q(20, "degC")        # 5 delta_degree_Celsius

…

FAQ

What are physical units?

They are standards for measuring quantities like length (meters), time (seconds), or mass (kilograms).

What is measurement uncertainty?

It's an indication of the range around a measured value, within which the true value is expected to lie with a certain probability.

Why is tracking units and uncertainties important?

To ensure the accuracy, comparability, and reliability of scientific results, avoiding common errors in complex calculations.

Details

Original description by the author

Tracks physical units and propagates measurement uncertainty in scientific calculations using pint and uncertainties. Use for unit conversion and dimensional checking, GUM uncertainty budgets, Type A and Type B evaluation, coverage factors and expanded uncertainty, Monte Carlo propagation, significant-figure and plus-minus reporting, error propagation through curve fits, CODATA constants, auditing

repo: K-Dense-AI/scientific-agent-skills

Popularity

GitHub stars
51k
Ranking position
#1997
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills