fundamentals

$npx mdskill add staskh/trading_skills/fundamentals

Fetches fundamental financial data and calculates Piotroski F-Score for stocks.

  • Retrieves financials, earnings, and key metrics for any ticker symbol.
  • Uses Yahoo Finance data via the trading-skills dependency.
  • Determines data type (all, financials, earnings, info) from user request.
  • Returns JSON with info, financials, earnings, and optional F-Score analysis.

SKILL.md

.github/skills/fundamentalsView on GitHub ↗
---
name: fundamentals
description: Get fundamental financial data including financials, earnings, and key metrics. Use when user asks about financials, earnings, revenue, profit, balance sheet, income statement, or company fundamentals.
dependencies: ["trading-skills"]
---

# Fundamentals

Fetch fundamental financial data from Yahoo Finance.

## Instructions

> **Note:** If `uv` is not installed or `pyproject.toml` is not found, replace `uv run python` with `python` in all commands below.

```bash
uv run python scripts/fundamentals.py SYMBOL [--type TYPE]
```

## Arguments

- `SYMBOL` - Ticker symbol
- `--type` - Data type: all, financials, earnings, info (default: all)

## Output

Returns JSON with:
- `info` - Key metrics (market cap, PE, EPS, dividend, etc.)
- `financials` - Recent quarterly/annual income statement data
- `earnings` - Historical and estimated earnings

Present key metrics clearly. Compare actual vs estimated earnings if relevant.

---

## Piotroski F-Score

Calculate Piotroski's F-Score to evaluate a company's financial strength using 9 fundamental criteria.

### Instructions

```bash
uv run python scripts/piotroski.py SYMBOL
```

### What is Piotroski F-Score?

Piotroski's F-Score is a fundamental analysis tool developed by Joseph Piotroski that evaluates a company's financial strength using 9 criteria. Each criterion scores 1 point if passed, 0 if failed, for a maximum score of 9.

### The 9 Criteria

1. **Positive Net Income** - Company is profitable
2. **Positive ROA** - Assets are generating returns
3. **Positive Operating Cash Flow** - Company generates cash from operations
4. **Cash Flow > Net Income** - High-quality earnings (cash exceeds accounting profit)
5. **Lower Long-Term Debt** - Decreasing leverage (improving financial position)
6. **Higher Current Ratio** - Improving liquidity
7. **No New Shares Issued** - No dilution (or share buybacks)
8. **Higher Gross Margin** - Improving profitability efficiency
9. **Higher Asset Turnover** - More efficient use of assets

### Score Interpretation

- **8-9:** Excellent - Very strong financial health
- **6-7:** Good - Strong financial health
- **4-5:** Fair - Moderate financial health
- **0-3:** Poor - Weak financial health

### Output

Returns JSON with:
- `score` - F-Score (0-9)
- `max_score` - Maximum possible score (9)
- `criteria` - Detailed breakdown of each criterion with pass/fail status and values
- `interpretation` - Text description of financial health level
- `data_available` - Boolean indicating if year-over-year comparison data is available for criteria 5-9

### Implementation Details

- Criteria 1-4 use quarterly financial data (most recent year)
- Criteria 5-9 use annual financial data for year-over-year comparisons
- Compares most recent fiscal year vs previous fiscal year

### Use Cases

Use Piotroski F-Score when:
- Evaluating fundamental financial strength
- Screening for value stocks with improving fundamentals
- Assessing financial health trends
- Comparing financial strength across companies
- Identifying companies with strong fundamentals but undervalued prices

## Dependencies

- `pandas`
- `yfinance`


## Timezone

All timestamps and time-based calculations must use the `America/New_York` timezone. All JSON output must include `generated_at` (NY time string) and `data_delay` fields.

More from staskh/trading_skills

SkillDescription
earnings-calendarGet upcoming earnings dates with timing (before/after market) and EPS estimates. Use when user asks about earnings dates, earnings calendar, when a company reports, or upcoming earnings.
greeksCalculate option Greeks (delta, gamma, theta, vega) and implied volatility for specific options. Use when user asks about Greeks, delta, gamma, theta, vega, IV, or option sensitivity analysis.
ib-accountGet account summary from Interactive Brokers including cash balance, buying power, and account value. Use when user asks about their account, balance, buying power, or available cash. Requires TWS or IB Gateway running locally.
ib-collarGenerate tactical collar strategy reports for protecting PMCC positions through earnings or high-risk events. Requires TWS or IB Gateway running locally.
ib-create-consolidated-reportConsolidate IBRK trade CSV files from a directory into a summary report. Groups trades by symbol, underlying, date, strike, buy/sell, and open/close. Outputs both markdown and CSV.
ib-find-short-rollFind roll options for existing short positions OR find best covered call/put to open against long stock. Use when user asks about rolling shorts, finding roll candidates, writing covered calls, or managing option positions. Requires TWS or IB Gateway running locally.
ib-option-chainGet option chain data from Interactive Brokers for equities, ETFs, and futures (FOP), including calls and puts with strikes, bids, asks, volume, implied volatility, and model Greeks. Use when user asks about options using IBKR data, futures options (NQ/ES/CL/GC...), or needs real-time option quotes from their broker. Requires TWS or IB Gateway running locally.
ib-pmcc-advisorAnalyze PMCC (Poor Man's Covered Call / diagonal spread) positions from IB portfolio. For each diagonal spread, reports short leg risk (delta, IV, assignment probability), daily P&L projections, top-3 roll candidates, and a side-by-side comparison table. Requires TWS or IB Gateway running locally.
ib-portfolioGet portfolio positions from Interactive Brokers. Use when user asks about their portfolio, positions, holdings, or what stocks they own. Requires TWS or IB Gateway running locally.
ib-portfolio-action-reportGenerate a comprehensive portfolio action report with earnings dates and risk assessment. Use when user asks for portfolio review, action items, earnings risk, or position management across IB accounts. Requires TWS or IB Gateway running locally.