Agent skill

Market Data

by JoelLewis in JoelLewis/finance_skills

Design and manage market data infrastructure — real-time and delayed feeds, Level 1/2/3 depth, consolidated tape vs direct feeds, vendor selection, licensing, and distribution architecture.

MITAuto-check passedBusiness, Finance & HR

Install Market Data

skills CLI
$ npx skills add JoelLewis/finance_skills --skill market-data -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JoelLewis/finance_skills market-data --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/data-integration/skills/market-data .claude/skills/market-data && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
market-data
GitHub stars
206
Token cost
~3.5k tokens
SKILL.md length
1,599 words
Files
2 (incl. references)
Skills in repo
91
Repo updated
First seen
Licence
MIT

At a glance

Design and manage market data infrastructure — real-time and delayed feeds, Level 1/2/3 depth, consolidated tape vs direct feeds, vendor selection, licensing, and distribution architecture.

  • Works in 8 steps: Market Data Types → Data Levels → Consolidated Tape vs Direct Feeds → …
  • Choosing between real-time and delayed data
  • SKILL.md covers Core Concepts, Worked Examples, Common Pitfalls and Cross-References
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Market Data is an agent skill from JoelLewis/finance_skills. Design and manage market data infrastructure — real-time and delayed feeds, Level 1/2/3 depth, consolidated tape vs direct feeds, vendor selection, licensing, and distribution architecture. Use when choosing between real-time and delayed data, evaluating market data vendors like Bloomberg or Refinitiv, designing ticker plants or fan-out architecture, managing exchange data licensing and entitlements, diagnosing stale quotes or missing ticks, deciding between SIP and direct exchange feeds, or assessing Level 2/3…

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/examples.md`).

It sits in Business, Finance & HR, covering Stock and market analysis. The repository describes itself as: Claude Code skill plugins for financial services — 81 skills across 7 domain plugins covering investment management, compliance, advisory practice, trading, and operations. The licence is MIT.

When your agent uses it

  • Choosing between real-time and delayed data
  • Evaluating market data vendors like Bloomberg
  • Designing ticker plants
  • Fan-out architecture

Example prompts

  • “/market-data”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Market Data Types
  2. Data Levels
  3. Consolidated Tape vs Direct Feeds
  4. Market Data Vendors
  5. Market Data Licensing and Entitlements
  6. Market Data Distribution Architecture
  7. Historical Market Data
  8. Market Data Quality

What it can do on your machine

Read from SKILL.md and the folder at commit 5c498ea. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Market Data loads about 3.5k tokens when it runs, and up to ~5k if it reads all its reference files. Until then it costs about 196 tokens; SKILL.md has 1,599 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~196
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from JoelLewis/finance_skills at commit 5c498ea, republished under its MIT licence (© JoelLewis). 1,599 words, ~3,505 tokens.

Download SKILL.mdSave it as .claude/skills/market-data/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
market-data
description
Design and manage market data infrastructure — real-time and delayed feeds, Level 1/2/3 depth, consolidated tape vs direct feeds, vendor selection, licensing, and distribution architecture. Use when choosing between real-time and delayed data, evaluating market data vendors like Bloomberg or Refinitiv, designing ticker plants or fan-out architecture, managing exchange data licensing and entitlements, diagnosing stale quotes or missing ticks, deciding between SIP and direct exchange feeds, or assessing Level 2/3 depth-of-book requirements for trading. Trigger on: market data, Level 1/2/3, depth of book, consolidated tape, SIP, direct feed, NBBO, ticker plant, B-PIPE, data license, non-display use, market data entitlements, conflation, tick data, real-time feed.

Market Data

Core Concepts

1. Market Data Types
  • Trade data: Last sale price, quantity, timestamp, condition codes (regular, odd lot, opening/closing), cumulative volume, VWAP.
  • Quote data: NBBO (best bid/offer across all exchanges), bid/ask sizes. Quote updates vastly outnumber trade updates in liquid instruments.
  • Depth of book: Multiple price levels beyond the NBBO with resting order quantities. Aggregated depth (size per level) or order-by-order (individual orders visible).
  • Index data: Real-time index values, composition, weightings, total return values. Sources include exchange-calculated (S&P 500 via Cboe) and third-party (MSCI, FTSE Russell).
  • Fixed income pricing: Dealer quotes, evaluated pricing (ICE, Bloomberg BVAL), TRACE trade reports for corporates, EMMA for municipals. Inherently less standardized than equities.
  • Options data: Chains (strikes/expirations), Greeks, implied volatility, volume, open interest. OPRA provides the consolidated options feed.
  • Fundamental data: Earnings, financial statements, corporate actions, analyst estimates. Sourced from vendors (Bloomberg, FactSet, S&P Capital IQ) rather than exchange feeds.
  • News and events: Headlines, economic calendar (FOMC, employment), corporate events (earnings dates, ex-dates), sentiment scores.
2. Data Levels

Level 1 — Top of Book: NBBO, last sale, volume, daily OHLC. Sufficient for portfolio management, client reporting, and order entry. Lowest cost and bandwidth.

Level 2 — Market Depth: Multiple price levels with aggregate size (top 5-20 levels per side). Reveals liquidity beyond the NBBO. Essential for active trading, market impact assessment, and algorithmic execution (TWAP, VWAP). Higher cost and bandwidth.

Level 3 — Full Order Book: Individual order detail (price, size, order ID) enabling complete book reconstruction and order lifecycle tracking. Provided by direct feeds (Nasdaq ITCH, NYSE Arca). Required for market making, HFT, and queue position modeling. Highest cost — hundreds of thousands of messages per second per exchange.

Use CaseLevelRationale
Portfolio management / reportingLevel 1NBBO and last sale sufficient for valuation
Active equity trading deskLevel 2Traders assess depth before large orders
Algorithmic executionLevel 2Algorithms adapt pace based on available liquidity
Market making / HFTLevel 3Requires queue position and order flow modeling
Client-facing app (delayed)Level 1 (delayed)Display only, 15-minute delay acceptable
3. Consolidated Tape vs Direct Feeds

Securities Information Processors (SIPs): CTA/CQS for NYSE-listed (Tape A/B), UTP for Nasdaq-listed (Tape C), OPRA for options. SIPs collect data from all exchanges, compute the NBBO, and disseminate a consolidated stream. Under Reg NMS, the SIP NBBO is the regulatory benchmark for best execution.

Direct exchange feeds: Proprietary feeds from individual exchanges (NYSE Arca, Nasdaq TotalView/ITCH, Cboe PITCH, IEX DEEP) delivering order-by-order data with lower latency than the SIP. A firm must subscribe to multiple feeds and compute NBBO internally. Each exchange uses different protocols requiring per-exchange parsers.

DimensionSIP (Consolidated)Direct Feeds
LatencyHigher (~10-50 microseconds SIP processing)Lower (bypasses SIP)
NBBOProvided directlyMust compute from multiple feeds
Data depthLevel 1 (NBBO + last sale)Level 2/3 (full depth, order-by-order)
CostLower, predictableHigher, scales with exchange count
NormalizationPre-normalizedRequires per-exchange parsers
Typical consumerBuy-side, advisory, retailProp trading, market making, HFT
4. Market Data Vendors

Cost figures throughout this skill reflect 2024-2025 list pricing; verify current pricing with vendors before budgeting.

Bloomberg: Terminal ($20K-$25K/user/year), B-PIPE (enterprise real-time feed), Data License (bulk EOD/reference data), BEAP (cloud API).

Refinitiv (LSEG): Eikon (desktop, lower cost than Bloomberg, strong FX/FI), Elektron/ LSEG Real-Time (enterprise feed), DataScope (bulk EOD), Tick History (historical ticks).

ICE Data Services: Consolidated feeds, evaluated fixed income pricing (widely used for NAV and regulatory reporting), ICE Benchmark Administration.

FactSet: Research-oriented, flexible API delivery, competitive pricing for smaller buy-side, strong Excel/portfolio management integration.

S&P Capital IQ / Market Intelligence: Comprehensive fundamentals, credit ratings, company filings. Morningstar: Fund/ETF data, ratings, Morningstar Direct for research.

Free/open sources: Exchange websites and financial portals provide delayed (15-min) quotes. Useful for non-time-sensitive display but limited reliability and coverage.

Vendor selection criteria: Asset class coverage, latency, reliability/uptime SLA, API quality, total licensing cost (including exchange fees), historical data depth, support, data quality handling.

5. Market Data Licensing and Entitlements

License categories: Non-professional (retail, personal use, lower fees) vs professional (business use, significantly higher). Display (human views on screen) vs non-display (automated systems: algorithms, risk engines, pricing — fees based on application type, not per-user). Derived data (substantially transformed; redistribution may be permitted if original data cannot be reverse-engineered; policies vary by exchange).

Licensing models: Per-user/per-device (exact monthly count required), enterprise (flat fee covering a defined entity), usage-based non-display (fees by application category: trading, risk, valuation).

Reporting obligations: Monthly/quarterly subscriber counts submitted to each exchange or via data vendor. Under-reporting triggers back-billing, penalties, and contract termination.

Redistribution: Raw exchange data requires explicit redistribution agreements and additional fees for client-facing display. Vendors typically handle redistribution for data consumed through their platforms.

Cost management: Audit usage periodically to eliminate unused subscriptions. Use delayed data where real-time is unnecessary. Track non-display use — many firms discover unreported non-display obligations only during exchange audits.

6. Market Data Distribution Architecture

Ticker plant: Central ingestion and normalization layer. Parses exchange protocols (ITCH, PITCH, FIX), normalizes to unified schema, maps symbology, caches latest values, applies conflation, and monitors feed health.

Fan-out patterns: Topic-based pub-sub (dominant pattern; middleware: Solace, TIBCO, 29West, Kafka for lower-latency needs), request-reply (REST for on-demand lookups), multicast (network-level fan-out for ultra-low-latency co-located environments).

Conflation: Throttles update rates for slower consumers. Time-based (deliver latest value every N ms), change-based (suppress duplicates), priority-based (never conflate trades; conflate quotes for slower consumers).

APIs: REST for historical/reference data, WebSocket for real-time streaming to web/mobile applications, proprietary binary APIs for ultra-low-latency consumers.

Cloud services: AWS Data Exchange, Google Cloud Marketplace, Azure Data Share. Adds network latency (unsuitable for latency-sensitive trading) but appropriate for analytics, portfolio management, and client-facing applications.

Show full SKILL.md (675 more words)Show less
7. Historical Market Data

EOD databases: Daily OHLCV. Sufficient for portfolio analytics and long-horizon backtesting. Tick-level data: Every trade/quote with microsecond timestamps. Required for intraday backtesting and microstructure research. A single day of U.S. equity ticks may exceed 10-20 TB. Providers: Refinitiv Tick History, NYSE TAQ, LOBSTER.

Adjusted vs unadjusted prices: Unadjusted for trade-level analysis and regulatory records. Split-adjusted and fully adjusted (splits + dividends) for return calculations.

Survivorship bias: Databases including only current listings inflate backtested returns. Point-in-time databases (showing the universe as it existed historically) are required for unbiased research. Point-in-time data also applies to fundamentals: initial earnings reports may be restated; using restated data introduces look-ahead bias.

8. Market Data Quality

Stale data detection: Flag quotes not updated within expected timeframes during market hours. Suppress stale data from trading and valuation decisions.

Gap detection: Feed-level (sequence number gaps in ITCH/PITCH) and application-level (expected vs actual data frequency).

Erroneous tick filtering: Process exchange trade-bust messages. Filter outlier prints (prices far from NBBO, adjusted for spread and volatility). Distinguish legitimate unusual trades (blocks, auctions, after-hours) from errors.

Monitoring and alerting: Feed health dashboards, latency tracking (exchange-to-receipt), volume monitoring against baselines, automated alerts for disconnections, latency spikes, staleness, and gaps.

Failover: Primary/secondary feed architecture with automatic failover on disconnection, excessive latency, or quality breach. Downstream systems must handle graceful degradation (e.g., losing Level 3 depth when failing from direct feed to SIP).

MetricTarget
Feed uptime (trading hours)> 99.95%
Median latency< 1ms (direct), < 50ms (SIP)
99th percentile latency< 10ms (direct), < 100ms (SIP)
Staleness rate< 0.1% of instruments
Gap rate< 0.01% of expected messages

Worked Examples

Three worked scenarios (vendor selection and licensing for a mid-size RIA, SIP-plus-direct-feed architecture for an electronic trading platform, and entitlement/exchange-audit remediation with cost exposure tables) are in references/examples.md. Load that file when designing a concrete market data stack, comparing vendor costs, or working an entitlement compliance problem.

Common Pitfalls

  1. Conflating SIP NBBO with direct feed best prices. The SIP NBBO is the Reg NMS regulatory benchmark. A firm's internally computed NBBO from direct feeds may differ due to latency. For best execution compliance, the SIP NBBO is authoritative.

  2. Under-reporting exchange subscribers. Estimating rather than counting professional users and non-display applications risks material back-billing during exchange audits.

  3. Ignoring non-display use fees. Any system consuming exchange data for automated purposes (algorithms, risk, pricing) typically requires a separate non-display license.

  4. Treating delayed data as free. Vendor delivery costs and professional-user fees for delayed data through certain platforms still apply. Verify terms per use case.

  5. Over-subscribing to market data. Firms accumulate unused subscriptions over time. Periodic usage audits identify significant cost savings.

  6. Neglecting data quality monitoring. Consuming data without staleness, gap, and erroneous tick monitoring exposes the firm to silent failures. VaR computed on stale prices is dangerously misleading.

  7. Failing to plan for peak data rates. Volumes spike during market events. Size infrastructure for 2-3x typical peak volumes to avoid failures when data matters most.

  8. Ignoring survivorship bias in historical data. Use point-in-time, survivorship-free databases for strategy research to avoid inflated backtest returns.

  9. Distributing raw exchange data without redistribution licenses. Client-facing real-time quotes require explicit redistribution agreements. Violations risk license termination and legal liability.

Cross-References

  • reference-data (data-integration plugin) — Security master and symbology underpin market data infrastructure; market data systems rely on reference data for symbol mapping and corporate action processing.
  • exchange-connectivity (trading-operations plugin) — Physical and logical exchange connections over which market data feeds travel; covers co-location and protocol handling.
  • trade-execution (trading-operations plugin) — Smart order routers and execution algorithms consume Level 2/3 market data for routing decisions and execution pacing.
  • portfolio-management-systems (advisory-practice plugin) — PMS platforms consume market data for position valuation, drift monitoring, and rebalancing triggers.
  • performance-metrics (wealth-management plugin) — EOD pricing feeds provide closing prices for daily return calculations; data quality directly affects computed metrics.
  • volatility-modeling (wealth-management plugin) — Implied volatility derived from OPRA options data; GARCH/EWMA models calibrated on historical price series from market data infrastructure.
  • equities (wealth-management plugin) — Equity market structure and instruments; this skill covers the data infrastructure delivering equity market information to consuming systems.

© JoelLewis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in plugins/data-integration/skills/market-data of JoelLewis/finance_skills.

  • SKILL.md
  • references/examples.md

Open the folder on GitHubat commit 5c498ea

Compare with similar skills

Market Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Market Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Market Data this skillJoelLewis/finance_skills206—~3.5kAutomated safety check: PassMIT
Stock APIzhangxiangliang/stock-api2k—~507Automated safety check: PassMIT
Tushare Datazillionare/zillionare3212 repos~2.3kAutomated safety check: PassNone
Tradingview MCPatilaahmettaner/tradingview-mcp5k—~1.3kAutomated safety check: PassMIT
Digital Oraclekomako-workshop/digital-oracle878—~5.9kAutomated safety check: PassMIT
Longbridge Researchhelsome/folio2713 repos~2.1kAutomated safety check: PassMIT

Similar skills

  • Stock API

    zhangxiangliang/stock-api

    Fetch real-time stock quotes, K-line (candlestick) history, and search symbols for China A-shares, Hong Kong, and US markets.

    2k GitHub stars~507 tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Tushare Data

    zillionare/zillionare

    面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。

    321 GitHub starsUsed in 2 repos~2.3k tokens
    Business, Finance & HRAuto-check passed
  • Tradingview MCP

    atilaahmettaner/tradingview-mcp

    AI Trading Intelligence — live prices, 30+ technical indicators, backtesting (6 strategies), walk-forward overfitting detection, trade logs, equity curves, licensed news sentiment (Marketaux), and…

    5k GitHub stars~1.3k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Digital Oracle

    komako-workshop/digital-oracle

    Answer prediction questions using market trading data, not opinions.

    878 GitHub stars~5.9k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Longbridge Research

    helsome/folio

    Institution ratings, consensus price targets, EPS/revenue forecasts, finance calendar, shareholder data, fund holders, insider trades (SEC Form 4), short interest, industry rankings, peer group…

    271 GitHub starsUsed in 3 repos~2.1k tokens
    Business, Finance & HRAuto-check passed
  • Longbridge Earnings

    helsome/folio

    Earnings analysis — pre- and post-earnings. An agent skill from helsome/folio.

    271 GitHub starsUsed in 1 repo~2.5k tokens
    Business, Finance & HRAuto-check passed

More from JoelLewis/finance_skills

All 91 skills in this repo
  • Asset Allocation

    JoelLewis/finance_skills

    Determine how to distribute capital across asset classes using strategic and tactical allocation frameworks.

    206 GitHub stars~2.5k tokensUpdated 2 mo ago
    Auto-check passed
  • Bet Sizing

    JoelLewis/finance_skills

    Determine how much capital to allocate to individual positions within a portfolio.

    206 GitHub stars~2.5k tokensUpdated 2 mo ago
    Auto-check passed
  • Commodities

    JoelLewis/finance_skills

    Analyze commodity markets including futures curve dynamics, roll yield, and supply/demand fundamentals.

    206 GitHub stars~1.9k tokensUpdated 2 mo ago
    Auto-check passed
  • Currencies And Fx

    JoelLewis/finance_skills

    Analyze currency markets, exchange rate mechanics, and FX risk management for international portfolios.

    206 GitHub stars~1.9k tokensUpdated 2 mo ago
    Auto-check passed
  • Debt Management

    JoelLewis/finance_skills

    Provide frameworks for managing and paying off personal debt effectively.

    206 GitHub stars~2.5k tokensUpdated 2 mo ago
    Auto-check passed
  • Diversification

    JoelLewis/finance_skills

    Build diversified portfolios using correlation analysis, efficient frontier construction, and factor-based diversification.

    206 GitHub stars~2.3k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Market Data

What does Market Data do?

Design and manage market data infrastructure — real-time and delayed feeds, Level 1/2/3 depth, consolidated tape vs direct feeds, vendor selection, licensing, and distribution architecture. Market Data is an agent skill from JoelLewis/finance_skills. Design and manage market data infrastructure — real-time and delayed feeds, Level 1/2/3 depth, consolidated tape vs direct feeds, vendor selection, licensing, and distribution architecture.

When should I use Market Data?

Market Data fits situations like: choosing between real-time and delayed data; evaluating market data vendors like Bloomberg; designing ticker plants; fan-out architecture.

How do I install Market Data in Claude Code?

Run `npx skills add JoelLewis/finance_skills --skill market-data -a claude-code`. Or copy the skill folder (plugins/data-integration/skills/market-data in JoelLewis/finance_skills) into .claude/skills/market-data in your project. Claude Code loads it when a task matches its description.

How do I install Market Data in Codex?

Run `npx skills add JoelLewis/finance_skills --skill market-data -a codex`. Or copy the skill folder (plugins/data-integration/skills/market-data in JoelLewis/finance_skills) into .agents/skills/market-data in your project. Codex loads it when a task matches its description.

Can I use Market Data in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JoelLewis/finance_skills --skill market-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/market-data, .gemini/skills/market-data, .github/skills/market-data and .opencode/skills/market-data in your project.

What does Market Data need to run?

SKILL.md names no scripts, command-line tools or credentials: Market Data is instructions for the agent only.

Does Market Data access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Market Data safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Market Data use?

Market Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Market Data use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.

What are the alternatives to Market Data?

Skills that share tags, products or a category with Market Data: Stock API (zhangxiangliang/stock-api, 2k stars), Tushare Data (zillionare/zillionare, 321 stars), Tradingview MCP (atilaahmettaner/tradingview-mcp, 5k stars) and Digital Oracle (komako-workshop/digital-oracle, 878 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Market Data?

JoelLewis (a GitHub user) maintains it in JoelLewis/finance_skills, which has 206 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on July 18, 2026.

Source: JoelLewis/finance_skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.