N NoBullshit.wiki 中文

Seafood stall buyer - the pre-dawn order calculator: order-volume ranges under three hard constraints - what sells, what the tanks can hold, what today's price justifies

Works with:Claude / GPT-4 classCategories:Seafood StallLevel:Intermediate Updated

Build me a single-file HTML order calculator for seafood buying, opened
in a phone browser at the wholesale market before dawn, no network
required.

Background: seafood order volume is pinned by three constraints, and
gut-feel ordering fails one of two ways - tanks overstocked (ordered
too much, can't keep it alive, mortality) or counters empty (sold out
shortly after opening):
1. What sells: yesterday's sales + same weekday last week + a
   correction I enter (weather, holiday)
2. What survives: live stock bounded by tank capacity and a density
   ceiling; iced/frozen bounded by ice bed and freezer space
3. What's worth it: today's wholesale price - unusually high says buy
   less or substitute; unusually low still doesn't mean unlimited
   (unsold stock is still mortality)

Input (per item, paste CSV or form entry):
- Item / category (live | iced | shellfish | frozen) / yesterday's
  sales / same weekday last week / stock on hand / remaining tank or
  freezer capacity (in my own units) / today's wholesale price
- My "days correction" defaults to 1; I bump it to 2-3 myself when a
  supply gap is expected (typhoon, etc.)

Computation rules (all visible and editable, no black box):
- Base volume = (yesterday and last-week sales weighted by
  [history weight]) x days correction - stock on hand, floored at 0
- The three constraints check in sequence:
  * Live stock must not exceed remaining capacity x [density ceiling
    coefficient] - when this binds, flag it red "can't hold it" with
    the hint "split tanks or cut volume"
  * Iced has no overnight logic: base volume is today's volume; if
    stock on hand > 0, show "clear the counter before ordering" first
  * When today's price exceeds my [alert price] for that item, show
    a "cut volume or substitute" notice - notice only, never silently
    edits the number
- Output is a range: base x [floor coefficient] to base x
  [ceiling coefficient], not a single number

Output:
- Suggestion table: item / suggested range / binding constraint
  (won't sell | can't hold | price too high) / notice text,
  copyable as plain text to message the market stall
- Data in localStorage, exportable and importable as JSON

Hard requirements:
- Single file, no build step, no external CDN or fonts
- No sales forecasting: no model, the base is just the two historical
  days weighted times my correction - the tool invents no numbers
- All coefficients (history weight, density ceiling, alert prices,
  floor/ceiling) start empty and compute nothing until I fill them -
  no preset "typical seafood density" or "industry reference prices":
  filtration, aeration, and customer base differ so much between
  stalls that borrowed numbers get executed as truth
- The density ceiling's meaning is stated as "the ceiling my own
  equipment keeps alive," calibrated backward from recent mortality;
  the tool does not judge "scientific density"

Why it is written this way

The one constraint that separates seafood ordering from ordinary fresh ordering is "what survives": over-order vegetables and they discount out over two days; over-order live fish into an over-dense tank and you are throwing money into the water - mortality bites harder than slow sales, and it dies in tomorrow's tank from a decision made this morning. Queuing the three constraints explicitly splits "ordered too much" into three distinct deaths: won't sell, can't hold, paid too much. Each has a different remedy (cut volume, split tanks or cut, substitute or wait) - blurred together, there is no remedy at all.

The suggestion is a range, never a point, because the market eye before dawn is a human asset: the same suggested range gets taken toward its ceiling when the market is soft and hugged to its floor when it is firm - freshness at the stalls, today's boat volumes, what the next dealer will quote: not one of those signals reaches a tool. The tool's job is to move the arithmetic of "how much" out of the buyer's head; the person's job is to pour the "what's the market today" experience back in. Each side does its own work.

"Coefficients start empty, no industry defaults" is the same bottom line as the other tools: a model will happily supply "grass carp per cubic meter" numbers that sound professional - but those are farm numbers, not retail holding-tank numbers that start killing fish the moment density crosses the line. The only trustworthy calibration is back-solving from this stall's own recent mortality: deaths ran high at some density, so the ceiling comes down. Writing that feedback loop into the tool's semantics keeps the numbers this stall's numbers.

"Iced has no overnight logic" is its own category because iced and live run on different clocks: iced stock is an asset that must clear today. Yesterday's iced fish still on the counter means ordering more iced today is competing with yourself for your own shelf - "clear before ordering" is a notice worth more than any arithmetic in the tool.

Variables

Variable Notes
History weight The blend of yesterday vs. same weekday last week; steady-traffic stores lean weekly, volatile ones lean yesterday
Density ceiling coefficient Back-solved from your own equipment: mortality ran high at some density, lower the ceiling - the only calibration that can be trusted
Per-item alert price The market line above which it's "cut volume or substitute"; set by each item's margin structure

order volumesingle-file toolbuying decisions