Volt & Grain

Methodology

Every number, and where it came from

A calculator that will not show its working is asking to be trusted. This page is the working for all three, including the assumptions that are baked in and the questions each tool refuses to answer.

Canonical unitMillimetres
ImperialDerived at display
Tests78 passing

The rule that governs everything else

Metric is canonical. Every stored figure on this site is a millimetre, a millimetre squared or a metre, and the imperial version is derived when the page renders. Nothing is ever converted, displayed, and then converted back.

This sounds pedantic and it is not. Round-tripping a 580 mm panel through inches and back returns 579.9 mm, and a 3.2 mm kerf comes back as 3.3 mm. Repeat that across a cut list and the sheet count changes. The canonical-unit rule exists because that bug appeared during the build and the fix had to be structural.

The related rule is that nominal sizes are not converted at all. A US sheet called 3/4 in is 18.26 mm and a metric sheet called 18 mm is 18.00 mm. These are two products, not one product with two labels, and the reference tables mark which pairs must never be substituted for each other.

DC wire size

A DC circuit carries current out to the load and back, so the resistive path is twice the run length you measure. Voltage drop is therefore:

Vdrop = 2 · I · L · ρ(T) / A

Rearranged to give the smallest conductor that stays inside a drop budget:

A = 2 · I · L · ρ(T) / Vdrop allowed

A is the true conductor area in mm², L is the one-way run in metres, and ρ is resistivity in Ω·mm²/m. Resistivity is temperature corrected as ρ(T) = ρ20 · (1 + α(T − 20)), because a cable in a hot engine bay carries measurably more resistance than the same cable on a bench.

What the tool does after that

Meeting the drop budget is only half the answer. A conductor also has to survive the current thermally, so the result is checked a second time against a published ampacity, derated when the run is bundled or loomed because a cable in a loom sheds heat poorly.

The answer is then given twice, as an AWG size and as the nearest metric size sold, and they are presented as two separate answers rather than one. 4 AWG is 21.2 mm² and the nearest metric cable you can buy is 25 mm². Four of the AWG sizes in the table are flagged in amber because the nearest metric size below them is smaller, which is the trap that turns a "conversion" into an undersized cable.

Where it stops

  • It sizes a conductor. It does not size the fuse, choose the terminal, or tell you the insulation rating your loom needs.
  • Ampacity figures are typical published values for bundled 12 volt DC use. They are not your jurisdiction's table, and the largest sizes have no rating listed rather than a guessed one.
  • It assumes a single continuous load, not a shared circuit with several draws on it.

Battery bank sizing

The number printed on a battery is not the number you get to use. Three separate reductions sit between nameplate capacity and what actually comes out, and the tool applies all three.

Depth of discharge. Every chemistry has a fraction you can use repeatedly without shortening its life materially.

ChemistryUsablePeukert exponentCharge below 0 °C
LiFePO480%1.02Never
AGM50%1.1Reduced rate
Gel50%1.15Reduced rate
Flooded lead acid50%1.25Reduced rate

Temperature. Capacity falls as it gets colder. The tool interpolates between published anchor points per chemistry and caps the factor at 1.0, because a warm battery does not give you more than its rating.

Discharge rate. Lead acid delivers less than its rating when you pull hard on it. That is Peukert's law:

t = H · (C / (I · H))k

with H as the 20 hour rating period. Because the required capacity depends on the discharge rate and the rate depends on the capacity, the tool solves it by fixed-point iteration rather than in one pass. LiFePO4 sits at k = 1.02, which is close enough to immune that the correction barely moves, and that is itself the useful finding.

Where it stops

  • It sizes a bank against a daily load. It does not size your charging, your solar array or your alternator, and a bank that never gets fully recharged fails regardless of capacity.
  • Peukert exponents vary by manufacturer and by age. The values used sit mid-range in the published bands and reproduce the commonly cited worked examples, which makes them indicative rather than exact for your specific cells.

Plywood cut list

The nesting is guillotine only, meaning every cut runs edge to edge across whatever piece is on the saw. That is a deliberate restriction and it produces slightly worse yields than full 2D packing.

Full bin packing generates nests with parts tucked into interior pockets. They score better and nobody with a track saw can cut them. A tighter number you cannot execute is a worse answer than a looser number you can, so the tool solves the problem you actually have.

Grain runs along the sheet length, which is how plywood is manufactured, so any part marked as grain-critical is never rotated. Kerf is a real subtraction, not an afterthought, and it is held in millimetres for the reason given at the top of this page.

Why it runs twelve packers

No single heuristic wins across every parts list. The tool runs a portfolio of twelve deterministic strategies, combining three sort orders with two free-rectangle selection rules and two split rules, and keeps the best result. This is not sophistication for its own sake: the first version shipped one strategy and produced three sheets at 53% yield with one sheet holding a single drawer front. The portfolio returns two sheets at 79.8% on the same input, and that case is now a regression test.

Everything is deterministic. Strategies run in fixed order and ties break on a stable comparison, so the same parts list always returns the same nest.

The cross-market comparison

The tool nests your list onto American, British, European, Australian and Baltic birch stock at the same time, because the sheet you can buy depends on where you are and the differences are large enough to change the sheet count. A market is only reported as impossible when every stock size sold there fails, not when one does.

Where it stops

  • It counts sheets and shows a nest. It does not sequence your cuts for you.
  • It assumes full sheets of a single thickness at a time, and does not price anything.
  • It has an upper bound of 400 part instances, above which it declines rather than crawls.

Testing

The calculation cores are pure functions with no DOM and no framework, which exists so they can be tested directly. There are 78 tests, and the ones that matter are not the worked examples but the property tests: doubling the run length doubles the voltage drop, a bigger conductor never drops more than a smaller one, every nested part stays inside its sheet, and no two parts overlap. Those are checked across pseudo-random inputs from a seeded generator rather than a handful of cases somebody chose.

The build also fails if a guide is published without at least one cited source. That is enforced in the content schema rather than left to discipline.

Sources

SourceWhat it is used for
Victron Energy, Battery capacity and Peukert exponentPeukert exponents and the discharge-rate correction
Battle Born, Lead acid vs AGM vs lithiumUsable depth of discharge and cycle life by chemistry
RELiON, LiFePO4 performance in cold temperaturesCapacity derate below freezing, and the no-charge rule
ABYC E-11, AC and DC electrical systems on boatsThe 3% and 10% voltage drop conventions used as presets

Guides carry their own sources at the foot of each page. If you find a figure here that contradicts a standard you work to, tell me and cite it, and it gets changed or the page gets a note explaining the discrepancy.