Backlog: price-history direction — P0 relay archive (start now) → P1 Favourites Trends graph → P2 avg/min-max overlay → P3 prediction arrow + widget sparkline
This commit is contained in:
+30
-2
@@ -9,6 +9,17 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## P0 — Next build
|
||||||
|
|
||||||
|
- [ ] **Price history archive (start now — warm the data for Trends)** — relay-api
|
||||||
|
appends one daily snapshot (digest-change-triggered, once per calendar day) using
|
||||||
|
the existing `relay_snapshot.py` shape; prune to ~90 days (~18 MB). No UI
|
||||||
|
dependency: accumulating TODAY means the Trends graph launches with weeks of real
|
||||||
|
history instead of an empty chart. Optional first-weeks tweak: hourly snapshots to
|
||||||
|
build history faster, then settle to daily. Later add
|
||||||
|
`/api/v1/history?station=&fuel=&days=` (keyless, X-Client-tagged like
|
||||||
|
`/api/v1/stations`).
|
||||||
|
|
||||||
## P1 — Soon
|
## P1 — Soon
|
||||||
|
|
||||||
- [x] **Siri: "Cheapest [fuel] near me"** — `AppShortcutsProvider` + `CheapestFuelIntent`
|
- [x] **Siri: "Cheapest [fuel] near me"** — `AppShortcutsProvider` + `CheapestFuelIntent`
|
||||||
@@ -23,6 +34,15 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
|||||||
Directions-to-cheapest `caadf18` + spoken hand-off `aed99e3`.*
|
Directions-to-cheapest `caadf18` + spoken hand-off `aed99e3`.*
|
||||||
- [ ] **Siri: "Closest [fuel] station"** — same plumbing as cheapest, sort by
|
- [ ] **Siri: "Closest [fuel] station"** — same plumbing as cheapest, sort by
|
||||||
distance instead of price. Free second phrase in the same `AppShortcutsProvider`.
|
distance instead of price. Free second phrase in the same `AppShortcutsProvider`.
|
||||||
|
- [ ] **Favourites Trends graph** — price history chart for starred stations.
|
||||||
|
Swift Charts (iOS 26 target) line chart in the Favourites tab; one series per
|
||||||
|
favourite, fuel-scoped (station, fuel) pairs map 1:1 to the archive. Default =
|
||||||
|
absolute price lines; toggle "vs cheapest favourite" re-baselines to 0 as signed
|
||||||
|
pence (mirrors the Cheapest/Closest delta pattern users already know). Reuse the
|
||||||
|
capsule fuel picker; range control 7/30/90 days; respects the price-display
|
||||||
|
toggle; honest empty-state copy in Localizable.strings ("Prices are recorded from
|
||||||
|
each refresh — check back in a few days"). No widget in v1 (one-kind rule).
|
||||||
|
Depends on the P0 archive.
|
||||||
|
|
||||||
## P2 — Later
|
## P2 — Later
|
||||||
|
|
||||||
@@ -69,6 +89,9 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
|||||||
- [ ] **Localization** — UK English only today; audit string catalog for l10n.
|
- [ ] **Localization** — UK English only today; audit string catalog for l10n.
|
||||||
- [ ] **Dark mode polish** — verify brand logos (white-circle clips) and RAG dot
|
- [ ] **Dark mode polish** — verify brand logos (white-circle clips) and RAG dot
|
||||||
contrast under dark appearance on-device.
|
contrast under dark appearance on-device.
|
||||||
|
- [ ] **Trends: national average overlay + per-day min/max** — the full dump is
|
||||||
|
already held, so the UK/regional average line is computable locally; archive can
|
||||||
|
store per-day min/max so the chart shows intraday spikes, not just the daily point.
|
||||||
|
|
||||||
## P3 — Ideas / Research
|
## P3 — Ideas / Research
|
||||||
|
|
||||||
@@ -84,8 +107,13 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
|||||||
Public repo required for App Review (reviewer must fetch the data themselves);
|
Public repo required for App Review (reviewer must fetch the data themselves);
|
||||||
HTTPS/ATS fine; plain JSON data is not "remote code" (2.5.2-safe); bundle a small
|
HTTPS/ATS fine; plain JSON data is not "remote code" (2.5.2-safe); bundle a small
|
||||||
fallback dump so the app never demos empty. Needs GitHub PAT (aptonline account).
|
fallback dump so the app never demos empty. Needs GitHub PAT (aptonline account).
|
||||||
- [ ] **Fuel-price prediction** — trend from historical dumps (relay could keep a
|
- [ ] **Fuel-price prediction** — "price tends up/down" arrow derived from the
|
||||||
rolling archive) to show "price tends up/down".
|
price-history archive (P0). Cheap once the archive + Trends graph exist; keep a
|
||||||
|
separate phase. Backlog ancestry: this was the original "relay could keep a
|
||||||
|
rolling archive" idea — the archive is now P0 and the Trends graph (P1) is its
|
||||||
|
visible half.
|
||||||
|
- [ ] **Widget sparkline** — medium-widget mini sparkline of a favourite's 30-day
|
||||||
|
trend, after the Trends UI lands (one-kind rule preserved).
|
||||||
- [ ] **Price alerts for a specific station** — notify when a starred station's
|
- [ ] **Price alerts for a specific station** — notify when a starred station's
|
||||||
price drops below a user threshold.
|
price drops below a user threshold.
|
||||||
- [ ] **Share sheet** — share "Cheapest Unleaded near me" as text/image card.
|
- [ ] **Share sheet** — share "Cheapest Unleaded near me" as text/image card.
|
||||||
|
|||||||
Reference in New Issue
Block a user