Every asset is scored against its 200-week moving average (200W MA): the average closing price over the last 200 weeks. The 200W MA smooths out short-term noise and gives a long-cycle baseline. The ratio of current price ÷ 200W MA determines the zone. Bands are tuned per asset class because crypto, metals, energy and agricultural commodities have very different volatility profiles.
Adapted from the well-known "BTC 200W MA Heatmap" framework. Crypto cycle tops have historically printed at 3–5× the 200W MA, and bottoms below 1×.
| Price ÷ 200W MA | Zone |
|---|---|
| < 1.0× | Very Cheap |
| 1.0× – 1.5× | Cheap |
| 1.5× – 2.5× | Fair Value |
| 2.5× – 4.0× | Expensive |
| > 4.0× | Very Expensive |
Metals are middle-volatility — they trend up more steadily than crypto, so the bands are tighter. The gold-to-silver ratio (gold price ÷ silver price) is also shown on the silver card. Historical average is ~60. Above 80 implies silver is cheap relative to gold; below 50 implies silver is expensive relative to gold.
| Price ÷ 200W MA | Zone |
|---|---|
| < 0.95× | Very Cheap |
| 0.95× – 1.05× | Cheap |
| 1.05× – 1.15× | Fair Value |
| 1.15× – 1.30× | Expensive |
| > 1.30× | Very Expensive |
Energy is the most volatile of the commodity classes. Oil can swing 40–60% in a year, and natural gas has historically seen 2–3× moves. Bands are widened accordingly so the gauge isn't pinned to one extreme.
| Price ÷ 200W MA | Zone |
|---|---|
| < 0.80× | Very Cheap |
| 0.80× – 1.00× | Cheap |
| 1.00× – 1.20× | Fair Value |
| 1.20× – 1.50× | Expensive |
| > 1.50× | Very Expensive |
Copper, coffee, sugar, cocoa, cotton, wheat, corn, soybeans — medium-wide bands reflecting cyclical supply/demand and weather sensitivity.
| Price ÷ 200W MA | Zone |
|---|---|
| < 0.85× | Very Cheap |
| 0.85× – 1.00× | Cheap |
| 1.00× – 1.15× | Fair Value |
| 1.15× – 1.40× | Expensive |
| > 1.40× | Very Expensive |
Scored the same way as everything else — current price ÷ its 200-week moving average — but with tighter bands, because broad equity indices structurally trade above their 4-year average. At or below the 200-week MA is crash territory (Cheap → Very Cheap); a market that has run well ahead of its long-run trend reads Expensive, and the frothiest names read Very Expensive.
| Price ÷ 200W MA | Zone |
|---|---|
| < 1.05× | Very Cheap |
| 1.05× – 1.15× | Cheap |
| 1.15× – 1.30× | Fair Value |
| 1.30× – 1.50× | Expensive |
| > 1.50× | Very Expensive |
Single-factor model — for individual high-growth names especially, the 200-week reading is a rough cue, not a verdict, and "expensive" can keep climbing. Not financial advice.
fairprice.fyi only ever shows a genuine 200-week moving average. If an asset doesn't have at least 200 weeks (~4 years) of price history, its card says "not enough history" rather than falling back to a shorter, misleading window.
Crypto, commodities and stocks all use the same 200-week moving average methodology. Crypto prices: CoinGecko (via the "Add coin" search and as fallback). Daily history for the 200W MA (crypto + everything else): Yahoo Finance /v8/finance/chart (BTC-USD, ETH-USD, GC=F, SPY, etc.) — five years of daily candles, resampled to weekly client-side. Requests are routed through a same-origin proxy on this site (public CORS proxies as localhost fallback). Historical data is cached in your browser for 6 hours; click Reload to force-refresh.
This is a single-factor model. Real markets care about fundamentals (supply schedules, geopolitics, weather, demand cycles) and regime changes (post-halving crypto, oil shocks, dollar strength). "Cheap" by 200W MA can stay cheap for years. Use this as one input, not the only input. Not financial advice.
Search any coin tracked by CoinGecko (BTC, ETH, SOL, ADA, LINK, …). Coins need ~4 years of history to show a 200-week reading; newer coins will say "not enough history".
Pick a preset, or enter any Yahoo Finance ticker.
=F (e.g. CL=F WTI, NG=F nat gas, KC=F coffee, GC=F gold). Grains use Z-prefixed symbols (ZW=F, ZC=F, ZS=F). Any Yahoo symbol works (ETFs, indices, stocks) — just preserve case.Pick a preset or enter any Yahoo Finance ticker. Each stock is scored against its 200-week moving average; needs ~4 years of history for a reading.