'How should I price X' page (/uses/price) - follow-up E from #98 [depends on #99 hub; full value on C] #104

Closed
opened 2026-07-07 06:54:05 +00:00 by coilysiren · 2 comments
Owner

The "How should I price <THING>" page from the #98 design: the flagship use-case page and eco-app's answer to Eco Gnome / Eco Calc / Eco Price Calculator. This is follow-up E, sitting under the /uses hub that follow-up F (#99) stands up.

Depends on: the /uses hub from #99 (in flight). Full value depends on #98-C (the cost engine) for the cost-breakdown + margin panels. The market-side panels below are buildable as soon as the hub lands, so this can ship in two passes.

Scope - /uses/price, input is an item (deep-linkable ?item=<id>)

Panels, each degrading independently via fetchJsonOrNull:

  • Fair-price band (buildable now). For any item, the in-game market median +/- IQR from market.py price buckets (median/min/max per day). For the 5 FRED-pegged commodities, overlay fair_price.py's real-world benchmark and over/under/fair verdict as a bonus. Works for every item, not just the 5.
  • Current market comparison (buildable now). Cheapest sell + best buy from logistics.py (cheapest / resale), plus trend / trendDeltaPct from market.py for direction.
  • Cost breakdown (Phase 2, gated on #98-C). Recursive ingredient + labor + calorie cost from the cost engine. Until C lands, show a clear "cost model pending" note and lead with the market panels.
  • Suggested price + margin. Phase 1: suggest the market median, show volume/liquidity so the player can undercut or hold. Phase 2 (after C): suggest cost x target markup and show the resulting margin against the market band - the true Eco Gnome parity feature.

Conventions & done

URL-only page reached from the /uses hub (no separate homepage card - the hub is the family's one card). One heading tier, minimal prose, Layout/Hero, vitest tests including the degraded branch and the cost-model-pending state. Update docs/uses.md + docs/FEATURES.md. Green on ward exec test + lint. Full design on #98.

The "How should I price &lt;THING&gt;" page from the #98 design: the flagship use-case page and eco-app's answer to Eco Gnome / Eco Calc / Eco Price Calculator. This is follow-up **E**, sitting under the `/uses` hub that follow-up **F** (#99) stands up. **Depends on:** the `/uses` hub from #99 (in flight). **Full value depends on #98-C** (the cost engine) for the cost-breakdown + margin panels. The market-side panels below are buildable as soon as the hub lands, so this can ship in two passes. ## Scope - `/uses/price`, input is an item (deep-linkable `?item=<id>`) Panels, each degrading independently via `fetchJsonOrNull`: - **Fair-price band (buildable now).** For any item, the in-game market median +/- IQR from `market.py` price `buckets` (median/min/max per day). For the 5 FRED-pegged commodities, overlay `fair_price.py`'s real-world benchmark and over/under/fair verdict as a bonus. Works for every item, not just the 5. - **Current market comparison (buildable now).** Cheapest sell + best buy from `logistics.py` (`cheapest` / `resale`), plus `trend` / `trendDeltaPct` from `market.py` for direction. - **Cost breakdown (Phase 2, gated on #98-C).** Recursive ingredient + labor + calorie cost from the cost engine. Until C lands, show a clear "cost model pending" note and lead with the market panels. - **Suggested price + margin.** Phase 1: suggest the market median, show volume/liquidity so the player can undercut or hold. Phase 2 (after C): suggest cost x target markup and show the resulting margin against the market band - the true Eco Gnome parity feature. ## Conventions & done URL-only page reached from the `/uses` hub (no separate homepage card - the hub is the family's one card). One heading tier, minimal prose, `Layout`/`Hero`, vitest tests including the degraded branch and the cost-model-pending state. Update `docs/uses.md` + `docs/FEATURES.md`. Green on `ward exec` test + lint. Full design on #98.
Member

🔒 Reserved by ward agent --harness codex — container engineer-codex-eco-app-104 on host kais-macbook-pro-2.local is carrying this issue (reserved 2026-07-08T17:10:25Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).

run seed context — what this run is carrying (ward#609)
  • Resolved: coilyco-gaming/eco-app#104 · branch issue-104 · harness codex · workflow direct-main
  • Run: engineer-codex-eco-app-104 · ward v0.451.0 · dispatched 2026-07-08T17:10:25Z
  • Comment thread: 0 included in the pre-flight read, 0 stripped (ward's own automated comments).

Issue body as seeded:

The "How should I price &lt;THING&gt;" page from the #98 design: the flagship use-case page and eco-app's answer to Eco Gnome / Eco Calc / Eco Price Calculator. This is follow-up **E**, sitting under the `/uses` hub that follow-up **F** (#99) stands up.

**Depends on:** the `/uses` hub from #99 (in flight). **Full value depends on #98-C** (the cost engine) for the cost-breakdown + margin panels. The market-side panels below are buildable as soon as the hub lands, so this can ship in two passes.

## Scope - `/uses/price`, input is an item (deep-linkable `?item=<id>`)

Panels, each degrading independently via `fetchJsonOrNull`:

- **Fair-price band (buildable now).** For any item, the in-game market median +/- IQR from `market.py` price `buckets` (median/min/max per day). For the 5 FRED-pegged commodities, overlay `fair_price.py`'s real-world benchmark and over/under/fair verdict as a bonus. Works for every item, not just the 5.
- **Current market comparison (buildable now).** Cheapest sell + best buy from `logistics.py` (`cheapest` / `resale`), plus `trend` / `trendDeltaPct` from `market.py` for direction.
- **Cost breakdown (Phase 2, gated on #98-C).** Recursive ingredient + labor + calorie cost from the cost engine. Until C lands, show a clear "cost model pending" note and lead with the market panels.
- **Suggested price + margin.** Phase 1: suggest the market median, show volume/liquidity so the player can undercut or hold. Phase 2 (after C): suggest cost x target markup and show the resulting margin against the market band - the true Eco Gnome parity feature.

## Conventions & done

URL-only page reached from the `/uses` hub (no separate homepage card - the hub is the family's one card). One heading tier, minimal prose, `Layout`/`Hero`, vitest tests including the degraded branch and the cost-model-pending state. Update `docs/uses.md` + `docs/FEATURES.md`. Green on `ward exec` test + lint. Full design on #98.

Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.451.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent --harness codex` — container `engineer-codex-eco-app-104` on host `kais-macbook-pro-2.local` is carrying this issue (reserved 2026-07-08T17:10:25Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. **Do not comment on or edit this issue to steer the run while it is reserved.** The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a **new issue, dispatched fresh** — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494). <details><summary>run seed context — what this run is carrying (ward#609)</summary> - **Resolved:** `coilyco-gaming/eco-app#104` · branch `issue-104` · harness `codex` · workflow `direct-main` - **Run:** `engineer-codex-eco-app-104` · ward `v0.451.0` · dispatched `2026-07-08T17:10:25Z` - **Comment thread:** 0 included in the pre-flight read, 0 stripped (ward's own automated comments). **Issue body as seeded:** ``` The "How should I price &lt;THING&gt;" page from the #98 design: the flagship use-case page and eco-app's answer to Eco Gnome / Eco Calc / Eco Price Calculator. This is follow-up **E**, sitting under the `/uses` hub that follow-up **F** (#99) stands up. **Depends on:** the `/uses` hub from #99 (in flight). **Full value depends on #98-C** (the cost engine) for the cost-breakdown + margin panels. The market-side panels below are buildable as soon as the hub lands, so this can ship in two passes. ## Scope - `/uses/price`, input is an item (deep-linkable `?item=<id>`) Panels, each degrading independently via `fetchJsonOrNull`: - **Fair-price band (buildable now).** For any item, the in-game market median +/- IQR from `market.py` price `buckets` (median/min/max per day). For the 5 FRED-pegged commodities, overlay `fair_price.py`'s real-world benchmark and over/under/fair verdict as a bonus. Works for every item, not just the 5. - **Current market comparison (buildable now).** Cheapest sell + best buy from `logistics.py` (`cheapest` / `resale`), plus `trend` / `trendDeltaPct` from `market.py` for direction. - **Cost breakdown (Phase 2, gated on #98-C).** Recursive ingredient + labor + calorie cost from the cost engine. Until C lands, show a clear "cost model pending" note and lead with the market panels. - **Suggested price + margin.** Phase 1: suggest the market median, show volume/liquidity so the player can undercut or hold. Phase 2 (after C): suggest cost x target markup and show the resulting margin against the market band - the true Eco Gnome parity feature. ## Conventions & done URL-only page reached from the `/uses` hub (no separate homepage card - the hub is the family's one card). One heading tier, minimal prose, `Layout`/`Hero`, vitest tests including the degraded branch and the cost-model-pending state. Update `docs/uses.md` + `docs/FEATURES.md`. Green on `ward exec` test + lint. Full design on #98. ``` Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.451.0). </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Member

WARD-OUTCOME: done - landed /uses/price with market band, shelf comparison, fair-price bonus, and craft-cost roll-up

PR-BODY-NOTE: ADVISORY-ONLY REVIEW: no heterogeneous reviewer family was available besides the worker (codex), so the adversarial panel could not run and did NOT gate this diff. Dropped: opencode (unavailable: opencode not on PATH); codex (worker's own family - never reviews its own diff). A human should review this change with the extra scrutiny an unrun panel would have applied.

The page landed cleanly, but the merge surfaced one unrelated type regression in Jobs that I had to fix before the tree would build. Confidence is high on the pricing surface itself, and the main rough edge left is that the adversarial panel could not actually run.

WARD-OUTCOME: done - landed /uses/price with market band, shelf comparison, fair-price bonus, and craft-cost roll-up PR-BODY-NOTE: ADVISORY-ONLY REVIEW: no heterogeneous reviewer family was available besides the worker (codex), so the adversarial panel could not run and did NOT gate this diff. Dropped: opencode (unavailable: opencode not on PATH); codex (worker's own family - never reviews its own diff). A human should review this change with the extra scrutiny an unrun panel would have applied. The page landed cleanly, but the merge surfaced one unrelated type regression in Jobs that I had to fix before the tree would build. Confidence is high on the pricing surface itself, and the main rough edge left is that the adversarial panel could not actually run.
Sign in to join this conversation.
No description provided.