Spot Intelligence

AZ-level arbitrage · Historical volatility · Capacity risk

{{ updateMessage }}

Arbitrage Matrix

{{ displayEstimates.length }} results
AZ {{ sortKey === 'az' ? (sortAsc ? '↑' : '↓') : '' }} Instance {{ sortKey === 'instance' ? (sortAsc ? '↑' : '↓') : '' }} Avg $/hr {{ sortKey === 'hourly_estimate' ? (sortAsc ? '↑' : '↓') : '' }} P95 Bid {{ sortKey === 'recommended_max_bid' ? (sortAsc ? '↑' : '↓') : '' }} Window {{ sortKey === 'optimal_window' ? (sortAsc ? '↑' : '↓') : '' }} Volatility {{ sortKey === 'volatility_risk' ? (sortAsc ? '↑' : '↓') : '' }} Risk {{ sortKey === 'capacity_constraint_score' ? (sortAsc ? '↑' : '↓') : '' }} Total ({{ computeHours }}h) {{ sortKey === 'total_estimate' ? (sortAsc ? '↑' : '↓') : '' }}
Select regions and instances to build the matrix.

Demand Curve Capacity Risk vs Spot Price

Each bubble = one AZ. Size & color = volatility (green→red). Dashed lines = regional demand curves.

Low vol
High vol
SAFE/AVOID
Demand Curves: {{ item.region }}
No data yet — select regions and instances above.
📐 How to Read the Demand Curve
The Score
capacity_risk = (σ / μ) × interruption_rate
Where σ / μ is the coefficient of variation (price standard deviation ÷ mean price) — how erratically the market behaves — and interruption_rate is AWS's own Spot Advisor metric for how frequently they reclaim instances in that region (a direct proxy for demand exceeding supply).

X-Axis: Price

The average hourly spot price for that AZ + instance. Further right = more expensive. Compare horizontally to find cheaper alternatives.

Y-Axis: Demand Pressure

The capacity constraint score. Higher = more demand pressure, meaning tighter supply and higher interruption likelihood. Stay below the 0.05 threshold line.

Regression Lines

Each dashed line shows the price↔demand relationship for a region. A steep upward slope means price rises correlate with tighter capacity — the region is supply-constrained. Flat = uniform supply.

✓ Ideal: Lower-Left Quadrant
Small green bubbles in the bottom-left are cheap, stable, and have low demand. These are your best targets for long-running or critical workloads.
✗ Danger: Upper-Right Quadrant
Large red bubbles in the upper-right are expensive, volatile, and under heavy demand. You're paying more AND more likely to be interrupted.

Intraday Risk Surface Hourly Volatility Heatmap

Spike ratio = hour's σ ÷ daily σ. Values > 1.5× are danger zones for long compute jobs.

Safest Window
{{ currentHeatmap.safest_window }}
{{ currentHeatmap.safest_window_hours }}h of low-risk runtime
Danger Hours
{{ currentHeatmap.danger_hours.length > 0 ? currentHeatmap.danger_hours.map(h => h.toString().padStart(2,'0') + ':00').join(', ') : 'None detected' }}
Hours with spike ratio > 1.5×
Baseline σ
${{ currentHeatmap.overall_std }}
{{ (h-1).toString().padStart(2,'0') }}
{{ currentHeatmap.spike_ratio[h-1] }}×
Spike Ratio: ≤ 1.0× (calm) 1.0–1.5× (elevated) > 1.5× (danger) Ratio = this hour's σ ÷ overall daily σ. A 2.0× means twice the normal price swing.
Select regions and instances to see hourly risk patterns.
📖 Strategy Guide How to read this data

Cheap ≠ Stable

If the cheapest AZ has volatility over 20%, you will get interrupted. Use it only for stateless, checkpointable workloads.

Tip: Compare the "Best per Region" view to quickly find the sweet spot between price and stability.

P95 Max Bid

Set your bid to the P95 price. This absorbs normal daily fluctuations without overpaying. A massive bid won't prevent capacity evictions.

Tip: If P95 is much higher than the average, that AZ has unpredictable price spikes.

AZ Arbitrage

Prices vary significantly between Availability Zones in the same region. Always compare AZs — the cheapest can be 30%+ less than the most expensive.

Tip: Check the next instance size up too — "herd behavior" often makes smaller instances cost more.

Historical Prices Daily Mean by AZ

Volatility Daily Standard Deviation

Higher bars = bigger intraday price swings