<!-- GENERATED by benchmarks/charts/generate.ts from benchmarks/results/latest.actual.json. Do not edit by hand; run `yarn benchmark && yarn benchmark:charts`. -->
# Benchmark results

These are **measured** results produced by the Neuron-JS benchmark harness
(`yarn benchmark`). They compare `@sebasoft/neuron-js` against `json-rules-engine`,
`json-logic-js`, a hand-coded TypeScript baseline, and `rule-engine-js` across the
pricing, eligibility, and workflow-routing scenarios. See the
[methodology](./methodology) for how each metric is collected.

Numbers reflect a single machine, Node version, and commit; reproduce locally before
citing. No value on this page is hand-entered — charts and the table below are generated
from the same source file.

## Provenance

| Field | Value |
| --- | --- |
| Generated | `2026-09-26T00:22:19.273Z` |
| Node | `v24.15.0` |
| Commit | `470bee60e69375dd2c3738a393ac3670b6132c53` |
| Neuron-JS version | `0.7.5` |
| Command | `yarn benchmark` |
| Raw source | `benchmarks/results/latest.actual.json` |

## Throughput comparison

metric: `throughput_decisions_per_second` · decisions / second · _higher is better_

![Throughput comparison by engine, measured Neuron-JS benchmark output.](./assets/generated/benchmark-chart-throughput.svg)

## Cold-start comparison

metric: `cold_start_ms` · milliseconds · _lower is better_

![Cold-start comparison by engine, measured Neuron-JS benchmark output.](./assets/generated/benchmark-chart-cold-start.svg)

## Bundle-size comparison

metric: `bundle_size_minified_bytes` · minified bytes (esbuild, node platform) · _lower is better_

![Bundle-size comparison by engine, measured Neuron-JS benchmark output.](./assets/generated/benchmark-chart-bundle-size.svg)

## Validation overhead

metric: `validation_overhead_ms` · milliseconds per decision · _lower is better_

![Validation overhead by engine, measured Neuron-JS benchmark output.](./assets/generated/benchmark-chart-validation-overhead.svg)

Neuron-JS differentiator: competitors provide no schema-validation step (0).

## Explanation overhead

metric: `explanation_overhead_ms` · milliseconds per decision · _lower is better_

![Explanation overhead by engine, measured Neuron-JS benchmark output.](./assets/generated/benchmark-chart-explanation-overhead.svg)

Neuron-JS differentiator: competitors provide no explanation trace (0).

## Full results (medium · 10,000 decisions)

Throughput is decisions/second (higher is better); all latency, cold-start, and overhead
columns are milliseconds (lower is better); bundle size is minified bytes.

| Engine | Scenario | Throughput | p50 ms | p95 ms | Cold start ms | Bundle B | Validation ms | Explanation ms |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| `@sebasoft/neuron-js` | pricing-discount | 464,909 | 0.001969 | 0.003387 | 22.986 | 27,286 | 0.000188 | 0 |
| `@sebasoft/neuron-js` | eligibility-approval | 394,174 | 0.001749 | 0.004835 | 22.986 | 27,286 | 0.001081 | 0.000393 |
| `@sebasoft/neuron-js` | workflow-routing | 298,923 | 0.001967 | 0.009111 | 22.986 | 27,286 | 0.001381 | 0.000276 |
| `json-rules-engine` | pricing-discount | 89,624 | 0.009577 | 0.022511 | 22.438 | 81,550 | 0 | 0 |
| `json-rules-engine` | eligibility-approval | 79,717 | 0.010422 | 0.0303 | 22.438 | 81,550 | 0 | 0 |
| `json-rules-engine` | workflow-routing | 108,205 | 0.007748 | 0.015985 | 22.438 | 81,550 | 0 | 0 |
| `json-logic-js` | pricing-discount | 2,713,016 | 0.000268 | 0.000629 | 3.2 | 5,544 | 0 | 0 |
| `json-logic-js` | eligibility-approval | 3,403,083 | 0.000206 | 0.000476 | 3.2 | 5,544 | 0 | 0 |
| `json-logic-js` | workflow-routing | 3,154,011 | 0.000211 | 0.000439 | 3.2 | 5,544 | 0 | 0 |
| `hand-coded-typescript` | pricing-discount | 7,284,398 | 0.00009 | 0.00017 | 2.603 | 0 | 0 | 0 |
| `hand-coded-typescript` | eligibility-approval | 8,851,790 | 0.000085 | 0.000227 | 2.603 | 0 | 0 | 0 |
| `hand-coded-typescript` | workflow-routing | 9,071,990 | 0.000085 | 0.000159 | 2.603 | 0 | 0 | 0 |
| `rule-engine-js` | pricing-discount | 404,301 | 0.002541 | 0.003793 | 4.68 | 46,165 | 0 | 0 |
| `rule-engine-js` | eligibility-approval | 469,306 | 0.00193 | 0.003207 | 4.68 | 46,165 | 0 | 0 |
| `rule-engine-js` | workflow-routing | 434,523 | 0.002177 | 0.003482 | 4.68 | 46,165 | 0 | 0 |

Validation and explanation overhead are Neuron-JS capabilities (`validateScript`,
`explainExecution`); the other engines provide no equivalent step, so their measured
delta is `0`.
