MarcusLammers/vast-rtx3090-market-6mo
Vast.ai RTX 3090 Spot Market, February-August 2026 Panel data from the vast.ai GPU rental marketplace, restricted to NVIDIA RTX 3090 offers. The public offer listing was polled every 10 minutes between 2026-02-13 and 2026-08-15. Each observation records price, hardware specifications, host reliability, and location. A derived lifecycle table gives the listing duration of every offer. Vast.ai does not publish historical listing data; this dataset was collected independently.… See the full description on the dataset page: https://huggingface.co/datasets/MarcusLammers/vast-rtx3090-market-6mo.
Vast.ai RTX 3090 Spot Market, February-August 2026
Panel data from the vast.ai GPU rental marketplace, restricted to NVIDIA RTX 3090 offers. The public offer listing was polled every 10 minutes between 2026-02-13 and 2026-08-15. Each observation records price, hardware specifications, host reliability, and location. A derived lifecycle table gives the listing duration of every offer. Vast.ai does not publish historical listing data; this dataset was collected independently.
Summary
Median listed price per month:
Files
data/snapshots.parquet (1,624,024 rows)
The raw panel: one row per visible offer per scan.
data/ask_lifecycle.parquet (26,425 rows)
Per-offer lifecycle: one row per unique offer, maintained incrementally by the logger.
data/snapshot_meta.parquet (25,955 rows)
One row per scan attempt: status (ok/error), row_count, fetch_ms, http_status, error details, and logger version. Useful for verifying data completeness.
Methodology
A logger queried the public vast.ai offer listing every 600 seconds with a GPU filter of RTX 3090, appending every visible offer to the snapshot log. The lifecycle table was derived incrementally: an offer's survival_minutes is the time between its first and last appearance across scans.
Known limitations
- Each scan returns at most ~64 offers (the query's result cap), so the dataset covers the visible top of the listing rather than the full RTX 3090 supply at every moment.
- Only offers matching the RTX 3090 filter were captured.
- An offer leaving the listing can mean it was rented or that it was delisted or went offline. The two cases can often be separated using
machine_id: a machine that disappears and later relists was likely rented in between. survival_minutesmeasures how long an offer stayed listed, not machine uptime.- Offers still active at the end of the capture (
is_active = true) are right-censored.
Usage
import pandas as pd
snap = pd.read_parquet("data/snapshots.parquet")
life = pd.read_parquet("data/ask_lifecycle.parquet")
# Daily median price index
idx = snap.set_index("timestamp")["price_usd_hour"].resample("D").median()
# Host-level listing survival
hosts = life.merge(
snap.drop_duplicates("ask_id")[["ask_id", "host_id"]], on="ask_id"
).groupby("host_id")["survival_minutes"].median()Or with the datasets library:
from datasets import load_dataset
ds = load_dataset("MarcusLammers/vast-rtx3090-market-6mo", "snapshots")Possible uses
- Spot-market price dynamics: how listing prices respond to supply changes over time.
- Survival analysis: predicting how long an offer stays listed. As a reference point, a baseline model using only host history reaches AUC 0.90 out-of-sample for 24-hour survival.
- Reconstructing rental demand from
machine_iddisappearance and relisting patterns. - Studying the persistence of host behavior over multiple months.
License and attribution
CC BY 4.0. Free to use, share, and adapt with attribution.
Collected and published by Marc Lammers (augustus.cloud). Please credit "Marc Lammers, Vast.ai RTX 3090 Spot Market dataset" when using this data.
