OPEN DATA · CC BY 4.0
LLM API price gap CSV: field descriptions
This page describes every column in /data/llm-api-price-gap.csv so researchers can cite the file. The CSV holds the full daily same-model history from the first collection day through the data cut-off. Days without a snapshot are omitted (not interpolated).
Coverage
- Rows cover every snapshot day from 2026-10-17 through 2026-11-13 (27 days with data). 2026-10-18 has no snapshot file, so that date has no rows.
- Each row is one model on one day, paired only when LanoX and OpenRouter both list the same model that day. The current index page lists 14 models; every available day in this range has those 14 pairs.
- LanoX and OpenRouter prices are taken from that day's price snapshot. Missing days are not filled. Known bad snapshot cells excluded from the index (for example 2026-10-19 gemini-3-flash cache-read mis-capture) are also excluded here when they would appear.
- listed_official_* values are the official-reference prices shown on the LanoX pricing page at snapshot time. They are not an independent hand check of each vendor's pricing page. Separate vendor-page hand checks for the GPT / Gemini / Grok / Claude comparison pages were last done on 2026-11-03; that date is documented on those pages and is not repeated as a per-row column here, because this CSV compares LanoX with OpenRouter.
Columns
Empty cells mean the snapshot did not capture that value that day. Do not treat a blank as zero.
| Field | Meaning | When blank |
|---|---|---|
date | Snapshot day (YYYY-MM-DD, Asia/Dubai calendar day of the price file). | Never blank; days without a file are simply absent. |
model | LanoX model id (the shared "对象" key used to pair platforms). | Never blank. |
openrouter_id | OpenRouter model slug for the same object that day (for example openai/gpt-6-sol). | Never blank on emitted rows; unpaired models are omitted. |
lanox_input | LanoX input price, USD per 1M tokens (default group, first tier). | Omitted row if missing; not written as blank inside a kept row. |
lanox_output | LanoX output price, USD per 1M tokens (default group, first tier). | Same as lanox_input. |
openrouter_input | OpenRouter base input price, USD per 1M tokens, from the public models API that day. | Same as lanox_input. |
openrouter_output | OpenRouter base output price, USD per 1M tokens, from the public models API that day. | Same as lanox_input. |
gap_input_pct | Input gap % = (lanox_input / openrouter_input − 1) × 100, one decimal. Negative means LanoX is cheaper. | Blank only if a price needed for the ratio is missing. |
gap_output_pct | Output gap % = (lanox_output / openrouter_output − 1) × 100, one decimal. Negative means LanoX is cheaper. | Blank only if a price needed for the ratio is missing. |
listed_official_input | Official-reference input price copied from the LanoX pricing page columns that day (USD per 1M tokens). | Blank if that day's snapshot left the official-input cell empty. |
listed_official_output | Official-reference output price copied from the LanoX pricing page columns that day (USD per 1M tokens). | Blank if that day's snapshot left the official-output cell empty. |
snapshot_checked_at | When that day's snapshot was read (ISO 8601 with +04:00). Use this as the per-row capture time for LanoX and OpenRouter prices. | Blank if the snapshot row had no query timestamp. |
lanox_note | First segment of the LanoX snapshot note (for example first-tier / token pricing). | Blank if the snapshot note was empty. |
How to use this file
- Download /data/llm-api-price-gap.csv. Prefer filtering by date rather than assuming a fixed number of rows.
- Cite LanoX, link back to this field-description page or the index page, state the data cut-off date, and keep the CC BY 4.0 notice.
- Do not interpolate missing days. If you need a continuous series, keep explicit gaps for dates with no rows.
- For vendor-official hand-check dates used on the GPT / Gemini / Grok / Claude pages, see those pages; they are outside this LanoX-vs-OpenRouter CSV.
Related: price gap index · Download CSV