A headline start date is not a coverage matrix
A dataset may start years ago while individual tables or columns begin later. A backtest can also need pool creation, migrations, failed swaps or liquidity changes in addition to successful trades. Write the required evidence for the strategy before selecting a dataset.
Build a coverage sheet
| Dimension | Example check |
|---|---|
| Protocol | Exact program/version and market family |
| Events | Swaps, liquidity, creation, migrations or other required records |
| Time | Earliest record, retention and known missing intervals |
| Columns | When each required field began being populated |
| Freshness | Observed lag between chain event and queryability |
| Identity | Keys for deduplication and joins |
Fill this sheet from the provider's current schema and sample queries, then retain the check date.
Use known transactions
- Choose fixtures across the beginning, middle and end of the desired interval.
- Match transaction signatures and exact event identities in the SQL results.
- Test migrated pools and program upgrades separately.
- Check that token units, prices and timestamps mean what the strategy assumes.
Make exclusions part of the result
If one DEX or period is absent, exclude it explicitly or obtain another source. Do not replace missing rows with zeros and treat the backtest as complete. Supanode documents retention per Solana table, so a short-lived transfer table and a longer trade table cannot support the same historical questions. Document observed dataset coverage and exclusions in the backtest report.