The substance of tools.electe.net: 41 free business tools for small companies, in 21 languages, no sign-up, no upload, no tracking. This repository holds what makes them right — the formulas, the data helpers, the catalog — so anyone can read the arithmetic behind a number, check it, and reuse it.
| Calculators | 29 — a formula, stated on the page, run in the browser (the formulas) |
| Browser data tools | 3 — a table or a series in, a chart or a file out (how they work) |
| Model-backed tools | 9 — a language model structures what you wrote (what runs where) |
| Languages | 21, each tool with its own slug per language |
The catalog lists every tool by category with its live page. catalog.json is the same list as data, with the URL in every language.
src/registry.ts— one typed definition per tool: inputs, outputs, and for the calculators a purecomputewith the textbook formula in its doc comment and the source convention named where more than one exists. It returnsnullfor anything it cannot compute — a missing input, a division by zero — neverNaNorInfinity.src/data.ts— parsing and shaping for the data tools: series parsing, histogram bins (Sturges), delimiter sniffing, quoted-field CSV parsing, header-matched merging.src/*.test.ts— the formulas checked against worked examples with answers somebody can verify by hand, not against rearrangements of themselves.src/slugs.generated.ts,src/locales.ts,src/urls.ts— the per-language slugs (frozen: a shipped slug is a permanent URL) and the URL helpers.docs/— the formula reference with a worked example per calculator, and the notes on the data and model-backed tools.
The pages themselves — the React components, the copy in 21 languages, the styling — are rendered by ELECTE's website app and are not in this repository.
import { toolById } from './src/registry'
const reorder = toolById('reorder-point')!
reorder.compute!({ dailyDemand: 40, leadTime: 7, safetyStock: 60 })
// → { leadTimeDemand: 280, reorderPoint: 340 }Percentages come back as fractions (0.25 for 25%). Every input key and output key is listed in docs/formulas.md.
npm install
npm test # the worked examples
npm run typecheck- Conventions are named, not implied. Where a formula has more than one textbook form (margin vs markup, ROI on cost vs on return, sample vs population variance), the doc comment says which one the tool uses and why.
- Rounding is stated. A reorder point rounds up: 337.2 means ordering at 337 leaves you short. Money is shown to two decimals; ratios destined for a percentage are kept to four.
- Currency is the reader's. Outputs formatted as
currencycarry no symbol; the tool never converts. - The model-backed tools are not calculators. Their pages say so in the first sentence; their answers are a structured second opinion on the reader's own description, not advice, and nothing typed into them is retained.
See CONTRIBUTING.md. Issues are the right door for a wrong formula or a missing convention; fixes land upstream and are re-exported here.
MIT © ELECTE S.R.L. The tools are free to use at tools.electe.net; the ELECTE name and wordmark are not covered by this licence.