水产档采购:凌晨进货速算工具——缸容、销量、行情三线约束下的进货量建议区间
给我做一个单文件 HTML 的水产进货速算工具,凌晨在批发市场用
手机浏览器打开就能用,不依赖网络。
背景:水产进货量被三个约束卡死,拍脑袋订货的结果只有两种——
压缸(订多了养不住,死损)和断货(订少了开档没多久卖完):
1. 卖得掉:昨日销量 + 上周同日销量 + 我填的修正(天气、节假日)
2. 养得住:活鲜受缸容和密度上限约束,冰鲜冻品受冰台冰柜容量约束
3. 划得来:当日行情价——行情异常高的品该少进或换品,行情低
也不能无限囤(卖不掉还是死损)
输入(逐品录入,支持粘贴 CSV 或表单):
- 品名 / 分类(活鲜|冰鲜|贝类|冻品)/ 昨日销量 / 上周同日销量
/ 现有存量 / 缸或柜剩余容量(按本店的容量单位)/ 今日批发价
- 我填的「天数修正」默认 1 天,断供预期(台风等)我手动改 2-3
计算规则(全部可见可改,不黑盒):
- 基准量 =(昨日销量 与 上周同日销量 按【历史权重】加权)
× 天数修正 − 现有存量,最小为 0
- 三条约束逐条卡:
· 活鲜不得超过剩余缸容 ×【密度上限系数】——这条卡住时标红
「养不住」,提示「分缸或减量」
· 冰鲜不做过夜逻辑:基准量即当日量,现有存量若 > 0 优先
提示「先清台面再订」
· 今日价高于我为该品设的【警戒价】时,给出「减量或换品」
提示——只提示,不改数
- 输出是区间:基准量 ×【下限系数】~ 基准量 ×【上限系数】,
不是单点数
输出:
- 建议量表:品名 / 建议区间 / 卡了哪条约束(卖不掉|养不住|
行情高)/ 提示语,可一键复制成文字发给市场档口报货
- 数据存 localStorage,可导出导入 JSON
硬性要求:
- 单文件、无构建、不引外部 CDN 或字体
- 不做销量预测:没有模型,基准就是两天历史销量的加权乘我填的
修正,工具不发明数字
- 所有系数(历史权重、密度上限、警戒价、上下限系数)初始为空,
我填了才计算——不预置任何「水产常用密度」「行业参考价」,
各家缸的过滤增氧能力和客群差得很远,抄来的数会被当真理执行
- 密度上限的语义写明是「我的设备养得活的上限」,由近期死亡率
反推校准,工具不判断「科学密度」
为什么这样写
水产订货和普通生鲜最大的不同是「养得住」这条约束:蔬菜订多了放两天打折还能卖,活鱼订多了超密度就是往水里扔钱——死损比滞销狠,而且死在明天的缸里、亏在今天凌晨的决定里。工具把三条约束显式排队,是把「订多了」拆成三种死法:卖不掉、养不活、买贵了——三种死的解法不同(减量、分缸或减量、换品或观望),混在一起就没有解法。
建议给区间而不是单点数,是承认凌晨批发市场的行情眼是人的价值:同一个建议区间,行情软的时候往上限拿,行情硬的时候贴下限拿——鱼贩子看货的新鲜度、当天的到货量、下一家给什么价,这些信号没有一个是工具能拿到的。工具负责把「订多少」的算术从脑子里挪出来,人负责把「今天市场什么行情」的经验放进去,两边各干各的。
「系数初始为空、不预置行业常用值」和别的工具是同一条底线:模型很乐意给出「草鱼每立方米多少公斤」这类听起来很专业的数,但那个数是养殖场的数,不是过密度就死给你看的零售暂养缸的数。唯一可靠的校准方式是拿本店近期的死亡率反推:某密度下死亡偏高,上限就往下调——这条反馈回路写进工具语义里,数值才始终是这家店的数值。
「冰鲜不做过夜逻辑」单独一档,是因为冰鲜和活鲜的时间单位不同:冰鲜的存量是当天就要清的资产,昨天的冰鲜还在台面上,今天再订冰鲜等于自己跟自己抢货架——先清再订,这一条提示比任何算术都值钱。
变量
| 变量 | 说明 |
|---|---|
| 历史权重 | 昨日与上周同日销量的加权比;客流稳定的店偏上周,波动大的店偏昨日 |
| 密度上限系数 | 按本店设备反推:近期某密度下死亡偏高就下调,这是唯一可靠的校准法 |
| 各品警戒价 | 高于它就该「减量或换品」的行情线,按各品毛利结构定 |