Transparency
How PoE2 Economy Radar works
PoE2 Economy Radar turns public poe.ninja market data into item-level research signals. The dashboard is not a price oracle and it does not know your stash, your entry price, private trades, or whether an item will sell instantly. Its job is to surface market setups worth checking manually before you trade.
System overview
1. Market snapshots
A worker fetches public poe.ninja overview data and item detail history for the active Path of Exile 2 league. Each successful run stores the item list, latest quote price, volume, daily price history, quote currency, and run metadata.
2. Price basis
The displayed rate starts from poe.ninja market data. We do not invent a hidden fair value. The system calculates signals around that observed quote price, and flags items when the price basis is thin, missing, converted, or too noisy to trust.
3. Item scoring
Each item receives a deterministic score from current momentum, liquidity, volatility, pullback behavior, category-relative strength, and caution flags. This is the first ranking layer and stays explainable by design.
4. Historical context
The current league day is compared with the same stage of the configured prior league. Exact item matches are preferred; category baselines are used with lower trust when the exact item did not exist or did not have enough history.
5. Feedback and gating
After a scrape, the system records predictions for multiple horizons, waits for future market snapshots, measures what actually happened, recalibrates similar future signals, and only exposes public verified signals when the decision-quality gate passes.
What the displayed rate means
The item rate shown in the dashboard is based on the latest available poe.ninja quote for that item and quote currency. The score is not the rate itself. The score is our confidence-weighted interpretation of the item around that rate: whether the observed price, recent history, volume, risk, and prior evidence make it a useful candidate.
poe.ninja quote price + current volume + recent item history + category peer context + prior-league evidence + settled-outcome calibration + shadow-model confirmation -> public recommendation
Current-market score
The first score is deliberately explainable. It rewards items with constructive momentum and usable liquidity, then reduces trust for instability, sharp spikes, weak history, or questionable price basis. After that, the item is compared with peers in the same category so a category-wide move does not automatically make every item look equally attractive.
Recent movement
1d, 3d, and 7d price changes show whether demand is building or fading.
Liquidity
Volume is converted into a bounded liquidity score. Higher liquidity makes price moves easier to trust.
Volatility
Unstable daily returns lower confidence and can push an item into watch or avoid.
Pullbacks
A short dip inside a stronger trend can help, but only when the wider setup remains healthy.
Category position
Items are compared against peers in the same category for momentum, liquidity, volume, price percentile, and consistency.
Risk flags
Low volume, thin history, sharp spikes, high volatility, or converted price basis reduce trust before any recommendation is shown.
Prior-league context
Historical context asks a simple question: at the same stage of a prior league, did this item or its category tend to outperform or underperform afterward? Exact item matches count more than category fallbacks. Prior returns are compared against the category median, then discounted when the old setup was volatile or the current shape does not resemble the prior setup.
This context can nudge a score up or down, but it is not treated as proof. Patch changes, build popularity, boss access, streamer attention, and supply shocks can all make a prior league misleading.
Recommendations
The public dashboard uses three recommendation states: Signal, Watch, and Avoid. A verified signal is intentionally hard to reach. A candidate must clear expected edge, calibrated score, liquidity, volatility, risk checks, shadow-model confirmation, and the public precision lower-bound check. If the live setup looks positive but the decision-quality gate does not confirm enough edge, the public call becomes Watch.
- Signal: the setup passed the decision-quality public checks for the displayed horizon.
- Watch: there may be a useful setup, but the evidence is not strong enough for a public investment call.
- Avoid: price basis, history, liquidity, volatility, or trend quality is too weak for a trade shortcut.
Sell logic is handled more carefully. The system can detect sell-watch or exit-risk setups, but broad public sell actions stay gated until settled sell outcomes show reliable positive utility. Position pages can still use those signals as exit context for items you already hold.
Feedback loop
Prediction horizons
The system tracks short and long horizons, currently 24h, 48h, 7d, and 14d. Short horizons have tighter movement thresholds; longer horizons need larger net moves before they count as wins or losses.
Outcome settlement
When the target time has passed, the prediction is matched with the next available successful market snapshot. The result is measured from the individual item price, not just whether the whole category moved.
Net utility
Returns are adjusted for an estimated friction cost based on liquidity and price-basis risk. Very volatile outcomes are penalized, because a signal that wins on paper but is hard to trade should not be treated as equally reliable.
Calibration
Settled outcomes update global, category, and prediction-label calibration. Recent outcomes receive more weight, and a calibration only becomes active after it has enough samples. This can raise or lower future scores and confidence.
Why trust the signal?
- Public inputs
- The source data is public poe.ninja data. The app does not use hidden trade access, private stash data, or manual secret picks.
- Explainable first pass
- The base ranking is still rule-based and inspectable. Each candidate carries reasons, risk flags, price movement, liquidity, volatility, and prior-league context.
- Measured after the fact
- Predictions are stored before the outcome is known. Later scrapes settle those predictions so we can see whether the system was actually useful.
- Conservative public checks
- A public verified signal needs expected edge, liquidity, risk checks, shadow-model confirmation, meta-validator confidence, and a historical Wilson lower-bound precision gate. Positive-but-unconfirmed setups stay in Watch.
- Shadow model is a check, not a shortcut
- The ML shadow model is trained only on settled outcomes after data gates are met. It estimates expected utility and win probability, but it cannot silently replace the deterministic score.
How we want to improve it
- Grow the settled-outcome dataset across more runs, categories, and league phases before trusting narrower category rules.
- Add more prior-league context so one historical league cannot dominate the interpretation of a setup.
- Improve liquidity and friction estimates, especially for low-volume items where listed price and executable price can diverge.
- Keep sell logic separated as exit-watch context until settled sell utility is strong enough for public trade actions.
- Publish clearer performance summaries for actionable picks, including win rate, net return, and risk-adjusted utility by horizon.
Known limits
- poe.ninja can lag live listings and can miss early item-day history.
- Listed price, actual executable price, and sell speed can diverge, especially on thin markets.
- One item can look statistically strong and still fail because of patch notes, meta shifts, or sudden supply.
- The dashboard is a research tool, not trading automation and not a guarantee of profit.
For item-level evidence, open a candidate in the dashboard and inspect price movement, risk flags, and prior context before acting. Back to dashboard.