← All resources

How the Box Builder Fills Every Box: Preferences, Dials, and the Compromise List

How the Box Builder Fills Every Box: Preferences, Dials, and the Compromise List

Every box the same is easy. Ninety-six boxes that respect what ninety-six households actually eat is the hard problem, and it's the one the box builder exists to solve.

CSA → Build the boxes (/portal/box-builder), then pick the pickup day. One screen, top to bottom, in the order the work happens.

Build the boxes: one screen, four moves1. What did you pick? — One row per crop, starting from what your stock says. Correct anything wrong — the field is right and the shelf is not — and tick "won't keep" for what has to go out this week.; 2. How should it be shared out? — Each dial is a sentence with named stops and a unit, not a number to guess at. A per-box setting tells you what it comes to across the whole run.; 3. What that would do — The preview updates as you turn a dial. Under it: the compromise list — what had to be given up, with a button beside each one that fixes it and says what that costs elsewhere.; 4. Build — Replaces the contents of every box not yet locked. Locked boxes are untouched. You can still edit any box by hand and undo, right up until you lock the run.Build the boxes: one screen, four moves11. What did you pick?One row per crop, starting from what your stock says. Correctanything wrong — the field is right and the shelf is not — and tick"won't keep" for what has to go out this week.22. How should it be shared out?Each dial is a sentence with named stops and a unit, not a number toguess at. A per-box setting tells you what it comes to across thewhole run.33. What that would doThe preview updates as you turn a dial. Under it: the compromiselist — what had to be given up, with a button beside each one thatfixes it and says what that costs elsewhere.44. BuildReplaces the contents of every box not yet locked. Locked boxes areuntouched. You can still edit any box by hand and undo, right upuntil you lock the run.

Preferences: the level and the note

A member's opinion of a crop is one of five levels: never · less · ok · more · love. An unrated crop counts as ok, so you only ever store the opinions people actually have.

Never is a hard constraint the builder may not trade away, because the reason people mark a crop Never is usually an allergy.

Each preference can also carry a free-text note — "makes me itch", "my daughter is the one who eats these".

Here's the important part, and it's a deliberate line: the note never reaches the builder. It's packer-facing. It appears on the pack screen and on the customer record, where a human reads it.

That's not an oversight, it's a safety decision. A free-text allergy note that software claims to "consider" is a liability — a farmer would reasonably believe it had been honoured, and the software cannot read English. So the level is machine input and the note is human output. One record, two audiences, one boundary.

If a member's constraint genuinely matters, it has to be a level, not a sentence.

The dials

Every dial has named stops and a unit. No bare number to guess at.

Dial Stops What it does
Clear the glut Not now · Some · Aggressively How hard to push a crop you have too much of
How short a box may come in Tight · Balanced · Forgiving The value tolerance under target
How far over a box may go Tight · Balanced · Forgiving The value tolerance over target
Most of any one item A count, per box Caps repetition in a single box
Fewest different items A count, per box Floors the variety in a single box

A per-box setting states its total across the run, so "no more than 6 of any one item per box" also tells you what that is across ninety-six boxes.

There is deliberately no "honour preferences" dial. The builder's preference weights are fixed, and a control that changed nothing would be worse than no control. The nearest honest lever is Clear the glut, which at full tilt does outrank what members asked for — and the help text on it says exactly that.

The preview is a sample, and it says so

On a big run the preview is worked out on a sample of about fifty boxes so that dragging a dial answers in under a second. It tells you it's a sample.

Treat it as a direction, not the final answer. The full run happens once, when you build.

The compromise list

Under the preview is the list of what had to be given up: a box under value, a crop that ran out, something that wouldn't fit. Leftovers are listed too.

Beside each line is a button that moves the dial that would fix it — and tells you what that costs elsewhere before you take it. Clicking a compromise line also filters the box grid to the boxes it affected, so you can go and look.

This is the screen's most useful feature and the one people miss. You are not supposed to get a clean run. You're supposed to read what it gave up and decide whether you care.

What building actually writes

Building replaces the contents of every box not yet locked, and leaves locked ones exactly as they are.

It changes the contents, not the money. The member bought one share at one price; the share line and its total are untouched. A heavy week doesn't cost them more and a thin week doesn't cost them less.

No stock moves. Stock comes off the shelf when a box is rung up, not when it's built.

You can still open any box and edit it by hand afterwards, and undo, right up until you lock the run.

Read the counts at the top

Three numbers matter:

  • Already locked — these take no share of the harvest.
  • On hold, unclaimed or cancelled — not boxes; nothing is set aside for them.
  • Not a box — an order that doesn't have exactly one share line.

That last one is the trap. An order with two or more products on it is never filled and never packed, and this tally is the only signal you get. Nothing errors. If you take orders by hand, put exactly one product on each.

When a crop fails

Change the harvest counts in step 1 and build the run again, before you lock it. There is no control that swaps one crop for another across a whole run — a member can swap an item in their own box, but that's a per-member change, not a run-wide one.


Next: locking the run and pack day. Or start at the beginning.

Create a free account — CSA is included on every plan, no credit card required.

Reconnecting…
One moment — we're restoring your session.