Add per-item logistics cost to the appraisal compare page #18

Open
opened 2026-07-08 22:32:49 +02:00 by Sirttas · 0 comments
Owner

Summary

On the compare-by-location page (gemory #17), let the user factor in logistics (freight) cost for a chosen hub, so the comparison reflects delivered value, not just raw market price — e.g. "Amarr buy is higher, but after hauling it to Jita it's actually worse".

This is a pure client-side derivation, enabled by #17's parse-first flow: gemory already holds the parsed typeId+quantity stacks and, via getMarketTypes, each type's volume (packaged m³/unit — present on MarketTypeResponse).

Proposed design

  • Per-item logistics cost = volume × quantity × freightRate, where freightRate is ISK per m³ (typical courier-contract pricing) — a user-editable input, defaulting to a sensible constant.
  • Apply it to one side of the comparison (e.g. "landed at "): show an adjusted column = market value − logistics cost, so hubs are compared on delivered value.
  • Optionally support collateral-based pricing later (rate = isk/m³ + % of value); start with flat isk/m³.
  • Show the logistics cost as its own column/subtotal so it's transparent, not baked silently into the price.

Notes

  • Volume is already available client-side (MarketType.volume); no backend change needed — this stays a gemory-only feature.
  • Keep the freight rate configurable (input field or setting), not hard-coded, since players use different haulers/routes.

Acceptance criteria

  • User can set a freight rate (isk/m³) on the compare page.
  • Each item shows its logistics cost (volume × qty × rate) and a delivered/adjusted value.
  • The best-hub indicator can account for logistics when enabled.
  • npm run build passes.

Depends on

gemory #17 (compare page + parse-first flow). Purely additive on top of it.

## Summary On the compare-by-location page (gemory #17), let the user factor in **logistics (freight) cost** for a chosen hub, so the comparison reflects *delivered* value, not just raw market price — e.g. "Amarr buy is higher, but after hauling it to Jita it's actually worse". This is a pure client-side derivation, enabled by #17's parse-first flow: gemory already holds the parsed `typeId`+`quantity` stacks and, via `getMarketTypes`, each type's **`volume`** (packaged m³/unit — present on `MarketTypeResponse`). ## Proposed design - Per-item logistics cost = `volume × quantity × freightRate`, where `freightRate` is ISK per m³ (typical courier-contract pricing) — a user-editable input, defaulting to a sensible constant. - Apply it to one side of the comparison (e.g. "landed at <hub>"): show an adjusted column = market value − logistics cost, so hubs are compared on delivered value. - Optionally support collateral-based pricing later (rate = isk/m³ + % of value); start with flat isk/m³. - Show the logistics cost as its own column/subtotal so it's transparent, not baked silently into the price. ## Notes - Volume is already available client-side (`MarketType.volume`); no backend change needed — this stays a gemory-only feature. - Keep the freight rate configurable (input field or setting), not hard-coded, since players use different haulers/routes. ## Acceptance criteria - [ ] User can set a freight rate (isk/m³) on the compare page. - [ ] Each item shows its logistics cost (`volume × qty × rate`) and a delivered/adjusted value. - [ ] The best-hub indicator can account for logistics when enabled. - [ ] `npm run build` passes. ## Depends on gemory #17 (compare page + parse-first flow). Purely additive on top of it.
Sirttas added the item-comparison label 2026-07-08 22:36:51 +02:00
Sirttas added a new dependency 2026-07-08 22:43:47 +02:00
Sirttas added the
Status
To Refine
label 2026-07-09 19:30:23 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: eveal/gemory#18