← ClaudeAtlas

choosing-a-data-vendorlisted

Decide whether a data source may legally and factually serve a research question, before any fetch code is written. TRIGGER - need delisted, survivorship-free or point-in-time data and are choosing where to get it; may I store, cache, redistribute or publish what I fetched; is the free tier enough and what does a key cost; comparing vendor terms, licences, rate limits or paid tiers; "there are no delisted names on the free tier"; picking between yfinance, Tiingo, Alpha Vantage, stooq, EODHD, Norgate, CRSP or Polygon. Automated by `python -m fin_skills.data advise`. SKIP once the source is chosen and the question is how to CALL it - adjustment, timezone, calendar and off-by-one traps (market-data-sourcing); storing, partitioning or as-of joining data you already hold (market-data-engineering); EDGAR, XBRL and macro vintages (fundamental-and-macro-data); A-share sources and 退市 lists (china-ashare-data); exchange OHLCV and venue limits (crypto-data-and-execution).
howard-lynn-ye/fin-skills · ★ 1 · AI & Automation · score 77
Install: claude install-skill howard-lynn-ye/fin-skills
# Choosing a data vendor Most of the effort in a data decision goes to the wrong axis. Price, coverage breadth and which Python client is nicest are all tiebreaks. Three flags decide it, and two of them are decided by a vendor's **terms**, not by its API — so no amount of code changes the answer. | Flag | The question it answers | What it costs you to get it wrong | |---|---|---| | `includes_delisted` | Are the companies that DIED in this data? | Every result is an upper bound, silently | | `point_in_time` | Can it say what was known at *t*? | You trade on numbers published years later | | `redistribution` | May you pass on what you fetched? | A licence breach you discover at publication | Run the filters **before** picking a library. A source that lacks the dead names, cannot answer "what was known at *t*", or may not be passed on is not fixable downstream. ## 1. Ask, don't guess ```bash python -m fin_skills.data advise --market US --frequency 1d --history-years 10 python -m fin_skills.data advise --market US --delisted # exits 3: nothing serves it python -m fin_skills.data advise --asset-class crypto --market CRYPTO --no-key python -m fin_skills.data advise --coverage # what each source reaches ``` It reads the same `Declaration` table `python -m fin_skills.data adapters` prints, applies your constraints as **hard filters**, and either ranks what survives — each with what it costs you, what it *cannot* do, and the licence consequence of your