Premium apps

Resistor Tolerance Analysis

Sample resistor tolerances and inspect the spread of a DC node voltage.

More options

Try an example: Voltage divider with 5% resistors

More about this tool

How it works

Run a seeded Monte Carlo analysis on up to eight resistors in a SPICE netlist. Inspect nominal, minimum, maximum and mean output voltage.

  • Each selected resistor is sampled independently from a uniform distribution over its nominal value plus or minus the given tolerance.
  • Each sample runs a DC operating point; failed samples are counted and excluded. The seed makes the results repeatable.

A teaching-grade DC simulation and sampled spread, not guaranteed worst-case bounds or a substitute for datasheet and bench verification.

Sources

Part of Ohmforge

  • Ohmforge Virtual electronics workbench

    Draw a circuit, switch it on, and measure it with real-feeling bench instruments.

    Open Ohmforge

How to use Resistor Tolerance Analysis

Sample resistor tolerances in a SPICE circuit and inspect the resulting spread of a DC node voltage.

What it is for

A circuit can behave differently when its resistors are not exactly their nominal values. This tool repeatedly samples selected resistor values and solves the DC operating point, helping you explore how those changes affect a named output node.

Provide a supported SPICE netlist, an output node, and one row per resistor containing its name and tolerance percentage. Choose the number of samples and a random seed. The tool samples each selected resistor independently and uniformly within its stated plus-or-minus range.

The result is a teaching-grade simulation of sampled outcomes. It is not a guaranteed worst-case bound, a production yield prediction or a substitute for datasheet review and bench measurements.

Worked example

Use the built-in divider:

Divider
V1 in 0 10
R1 in out 1k
R2 out 0 1k
.op

Select output node out, enter tolerance rows R1,5 and R2,5, and use 100 samples with seed 1. All 100 samples converge. The nominal voltage is approximately 5.0000 V; the sampled minimum is 4.7971 V, maximum 5.2297 V and mean 4.9875 V.

These values describe this particular repeatable sample. A different seed or number of samples can produce different extrema even when the component tolerances are unchanged.

How to read the result

Nominal is the operating point with the unvaried resistor values. The sampled minimum and maximum are the extremes among successful simulations, not mathematical limits of every possible component combination. The mean averages successful samples.

Check successful and failed counts before interpreting the range. Failed operating-point runs are excluded from the statistics. A nominal circuit that does not converge, or an output node that is absent, must be corrected before the analysis can proceed.

Tips and common mistakes

  • Name each selected resistor exactly as it appears in the netlist; names are matched without case sensitivity.
  • List each resistor only once and use a tolerance below 100%.
  • Use between two and 200 samples and a whole-number seed.
  • Record the seed and inputs when comparing a later change to the same circuit.
  • Remember that uniform independent sampling is an assumption, not a measured manufacturing distribution.
  • Inspect failed samples and verify important designs with component data and measurements.

FAQ

Are the sampled extremes guaranteed worst cases?

No. They are the smallest and largest values seen in the successful random samples.

Can I vary capacitors or sources here?

This analysis varies selected positive-valued resistors only. Other components remain at their nominal values.

Why repeat the seed?

The seed makes the sample sequence reproducible for the same inputs, which helps compare changes.

Does it simulate transients?

No. Each trial solves a DC operating point; time-dependent behavior needs a different analysis.

Guide last updated:

For scripts and AI agents

  • JSON API: POST https://ohmforgecomponenttolerance.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://ohmforgecomponenttolerance.usefulweb.site/mcp · tool name ohmforge_component_tolerance
Example request
curl -s -X POST https://ohmforgecomponenttolerance.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"netlist":"Divider\nV1 in 0 10\nR1 in out 1k\nR2 out 0 1k\n.op","node":"out","tolerances":"R1,5\nR2,5","runs":100,"seed":1}'
Feedback · ideas & bug reports welcome