module.exports = { slug: "brine-solution-by-percent", title: "Brine solution by salt percent", deck_category: "cooking", description: "Computes the salt weight needed for a brine at a given salt percentage of the water weight.", inputs: [ { name: "water_weight_g", type: "number", unit: "g", required: true, description: "Weight of the water used in the brine (1 mL water weighs 1 g)", min: 0 }, { name: "salt_percent", type: "number", unit: "%", required: true, description: "Salt weight as a percentage of the water weight", min: 0 } ], outputs: [ { name: "salt_weight_g", unit: "g", description: "Weight of salt to dissolve in the water" } ], steps: [ "Brine strength here is expressed as salt weight relative to water weight (a common food-science convention).", "salt_weight_g = water_weight_g * salt_percent / 100.", "Round the result to 1 decimal place." ], constants: [ { name: "water_density", value: 1, unit: "g/mL", source: 0 } ], sources: [ { kind: "edition_page", value: "Baldwin D. Sous Vide for the Home Cook, chapter on brining, salt-to-water percentage method.", title: "Brine strength by percent of water weight", publisher: "Douglas Baldwin (self-published, widely cited food-science reference on brining)", retrieved_utc: "2026-09-30T20:05:00Z", note: "Source for expressing brine strength as salt weight as a percentage of water weight, and for treating 1 mL of water as 1 g." } ], disclaimer: null, questionText(inputs) { return `For a ${inputs.salt_percent}% brine made with ${inputs.water_weight_g} g of water, how much salt is needed?`; }, run(inputs) { const { water_weight_g, salt_percent } = inputs; if (typeof water_weight_g !== "number" || water_weight_g <= 0) throw new Error("water_weight_g must be a positive number"); if (typeof salt_percent !== "number" || salt_percent < 0) throw new Error("salt_percent must be a non-negative number"); const saltRaw = water_weight_g * (salt_percent / 100); const salt = Math.round(saltRaw * 10) / 10; return { answer: `${salt} g salt`, values: { salt_weight_g: salt } }; }, examples: [ { name: "worked example", inputs: { water_weight_g: 1000, salt_percent: 5 }, expected: { answer: "50 g salt" }, check: "1000 * 0.05 = 50." }, { name: "test vector: smaller batch, decimal percent", inputs: { water_weight_g: 750, salt_percent: 3.5 }, expected: { answer: "26.3 g salt" }, check: "750 * 0.035 = 26.25, rounds to 26.3 (half rounds up at 1 decimal: 26.25 -> 26.3 in standard rounding, verified by checker)." } ] };