Proposal: forecast-based reorder points and shortage allocation ("Replenishment Planner")
メンテナーはふだん 4 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 活発
- 領域
- analytics, data, full-stack
調査の方向性
Start by reading the proposal, the linked docs/replenishment.md write-up, and the prototype under app/services/replenishment/. Review the proposed service objects, controller, views, sidebar link, and specs, then seek maintainer decisions on scope and the PR breakdown. Done would mean an agreed feature direction and an approved, testable implementation plan.
索引モデルが issue の本文から書いたものです。
説明
Hi, I'm Arnav, a developer interested in Ruby for Good's mission. I've built a prototype feature on a fork and would love feedback on whether it's something Human Essentials would want, and how you'd like it broken into PRs.
Problem
Today banks set on_hand_minimum_quantity by hand and LowInventoryQuery flags items below it. That number doesn't update as demand changes, so slow items can have high minimums (cash and shelf space tied up) while fast movers have none (surprise stockouts). There's also no help deciding how to split an item across partners when requests exceed what's on hand.
What the prototype does
- Demand forecast per item: builds a monthly series from the last 24 complete months of distributions (or partner requests). It tries a few simple models (moving average, exponential smoothing, damped-trend Holt, seasonal naive) and picks the one with the lowest out-of-sample error on a rolling backtest.
- Reorder point + suggested order: a standard periodic-review inventory policy. Safety stock scales with forecast error, lead time and a chosen service level (e.g. 95%). Items are flagged "Order now / Reorder / OK", shown next to the bank's existing manual minimum for comparison.
- Shortage allocation: on an item page, if open requests exceed stock, it shows two suggested splits (proportional vs. max-min fair) with fill rates. It's advisory only and never changes requests or distributions.
It's read-only: no migrations, no changes to existing models or inventory events. New code lives in app/services/replenishment/, plus one controller, two views, a sidebar link, and specs.
- Write-up with the math: https://github.com/arnavt687/human-essentials/blob/main/docs/replenishment.md
- Code: https://github.com/arnavt687/human-essentials/tree/main/app/services/replenishment

Proposed PR plan (small pieces)
- Forecasting / reorder / allocation service objects + unit specs (no UI)
- Replenishment page behind a Flipper flag + request specs
- Item detail page with the allocation suggestion
Questions for maintainers
- Is this a direction you'd want in the app? Should it start behind a feature flag?
- Is there a better place in the nav (e.g. under Inventory or Reports)?
- Would any banks be willing to try it and give feedback?
- 主要言語
- Ruby
- スター
- 593
- フォーク
- 594
- 平均マージ
- 6日 21時間
- マージ済み PR(30日)
- 35
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
rubyforgood/human-essentials のほかの issue
-
Export button on annual report should revert to "Export Report" from "Please Wait..." once report generated.対応中かも @costajohnt が 4 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
rubyforgood/human-essentials#5691 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 4 日以内に返信
-
stale
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
rubyforgood/human-essentials#5603 · コメント 6 件 ·
メンテナーはふだん 4 日以内に返信
-
Add link to email samples from the User Guide再び着手できるかも @StephanieFarid が 31 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンRuby for Good 2026 DC stale
rubyforgood/human-essentials#5694 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 4 日以内に返信
-
Difficulty—Intermediate Ruby for Good 2026 DC
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
rubyforgood/human-essentials#5687 ·
メンテナーはふだん 4 日以内に返信
-
Re audit status from "Confirmed" to "Pending"再び着手できるかも @ashvarpe が 31 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンDifficulty—Beginner Ruby for Good 2026 DC
rubyforgood/human-essentials#5683 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 4 日以内に返信
rubyforgood/human-essentials の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
メンテナーはふだん 3 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
jetrockets/jet_ui#47 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
FreeCAD/homebrew-freecad#870 ·
メンテナーはふだん 1 日以内に返信