Financial Analysis logo

Financial Analysis

Community
geogons
financial-analysis

Comprehensive financial analysis skill for stock research, portfolio review, and opportunity discovery. Use this skill when the user wants to: analyze stocks, review a portfolio, scan for new stock ideas, get buy/sell ratings, compute support/resistance levels, check insider or Congress trades, assess sentiment from Reddit/StockTwits/news, pull analyst ratings, or generate entry/exit price targets. Triggers: stock analysis, portfolio review, stock scanner, financial analysis, buy/sell rating, price target, technical analysis, sentiment analysis, insider trading, Congress trades, stock ideas, swing trade, entry levels, exit levels, support resistance, watchlist, deep dive, stock report.

Overview

Publishergeogons
Repositoryskill-financial-analyst
Skill namefinancial-analysis
Stars
61
Forks
22
Bundled files
20
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 20 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by geogons on GitHub. Read the source before you install it.

Installation

Install the Financial Analysis AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/geogons/skill-financial-analyst/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/geogons/skill-financial-analyst.git \
  .claude/skills/financial-analysis
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Financial Analysis in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Financial Analysis on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Financial Analysis is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Financial Analysis Skill

A multi-source financial analysis engine that aggregates data from 14+ free APIs and 20+ RSS feeds to produce professional-grade stock analysis with actionable buy/sell ratings and price targets.

First-Time Setup

Before using this skill, read the API setup guide and configure API keys:

Read references/api_setup_guide.md

Then initialize the config:

bash
python scripts/api_config.py init
python scripts/api_config.py status

Install Python dependencies:

bash
pip install yfinance feedparser pandas pandas-ta requests --break-system-packages

Architecture Overview

financial-analysis/
├── SKILL.md                          # This file — main instructions
├── scripts/
│   ├── api_config.py                 # API registry, keys, fallback chains
│   ├── usage_tracker.py              # Rate limit enforcement, logging, reports
│   ├── api_caller.py                 # Resilient caller with auto-fallback
│   └── rss_feeds.py                  # RSS feed catalog and parser
└── references/
    └── api_setup_guide.md            # Step-by-step key setup + rate limits

How the API System Works

Every API call flows through scripts/api_caller.py which:

  1. Checks rate limits before calling (per-minute, per-day, per-month)
  2. Enforces delays between calls to avoid IP blocks
  3. Logs every call to ~/.financial-analysis/logs/api_usage.jsonl
  4. On failure: logs to error_log.jsonl and tries the next API in the fallback chain
  5. On all failures: returns an error with details of every attempt

The tracker at scripts/usage_tracker.py aggregates usage and generates:

  • Daily usage reports with % of free limit consumed per API
  • Error reports showing which APIs failed and which fallbacks worked
  • Paid tier recommendations when any API exceeds 70% of its free limit

Fallback Chains

Every data category has a prioritized chain of APIs. If the primary fails or is rate-limited, the next one is tried automatically. The chains are defined in scripts/api_config.py → FALLBACK_CHAINS. Key chains:

Data CategoryPrimary → Fallback(s)
Price Historyyfinance → Polygon → Alpha Vantage → FMP
Financial Statementsyfinance + SEC EDGAR → Finnhub → FMP
Analyst RatingsFinnhub → yfinance → SA RapidAPI → Mboum
Insider TradesSEC EDGAR → Finnhub → Mboum → yfinance
Congress TradesMboum → Quiver (paid)
Technical IndicatorsAlpha Vantage → Mboum → Polygon → FMP
News SentimentFinnhub → Alpha Vantage → Alpaca
Reddit SentimentApeWisdom → StockTwits

Three Use Cases

This skill supports three distinct workflows. The user will ask for one of them (or you can suggest the appropriate one based on context).


Use Case 1: Weekly Portfolio Review

Trigger: User provides a PDF, CSV, or list of current holdings and asks for a review, analysis, or buy/hold/sell recommendations.

Input: Portfolio holdings (tickers + optional quantities/cost basis) Output: Per-ticker rating (Buy / Hold / Trim / Sell) with confidence score, 3 entry levels, 3 sell targets, and key reasons. Frequency: Once per week (Sunday/Monday)

Workflow

Execute these phases in order. Use call_with_fallback() from scripts/api_caller.py for every API call to get automatic fallback + logging.

Phase A — Data Collection (for each ticker in portfolio):

  1. Fetch current price + 1yr daily OHLCV history (yfinance)
  2. Pull quarterly financial statements: income, balance sheet, cash flow (yfinance + SEC EDGAR)
  3. Get analyst ratings consensus: buy/hold/sell counts (Finnhub)
  4. Scan insider activity last 90 days: Form 4 filings (SEC EDGAR)
  5. Check insider sentiment score: MSPR (Finnhub)
  6. Pull front-month options chain (yfinance)
  7. Get news sentiment (Finnhub + Alpha Vantage)
  8. Single call: Reddit trending tickers + mention velocity (ApeWisdom)
  9. Single call: recent Congress trades (Mboum)
  10. Single call: upcoming earnings calendar (Finnhub)

Phase B — Technical Analysis (computed locally with pandas-ta, no API calls):

  • SMA/EMA suite (10/20/50/100/200)
  • RSI (14), MACD (12,26,9), Bollinger Bands (20,2)
  • Stochastic Oscillator, ADX
  • Volume analysis + OBV
  • Pivot points (Classic + Fibonacci)
  • Fibonacci retracement + extensions from recent swing
  • ATR for position sizing

Phase C — Scoring (all local compute):

  • Fundamental score (0-100): revenue growth, margins, FCF, ratios, peer comparison
  • Technical score (0-100): trend, momentum, volatility, S/R positioning
  • Sentiment score (0-100): analyst + insider + Congress + news + social
  • Composite score: 40% fundamental + 30% technical + 30% sentiment
  • Rating: 75-100 = Buy · 40-74 = Hold · 0-39 = Trim/Sell

Phase D — Output Generation (per ticker):

FieldDescription
RatingBuy / Hold / Trim / Sell
Composite Score0-100
ConfidenceStrong / Moderate / Weak (based on phase alignment)
Entry 1 (Aggressive)Current price (high conviction)
Entry 2 (Moderate)Nearest support / Fib 38.2%
Entry 3 (Conservative)Strong support / Fib 61.8%
Target 1 (T1)Nearest resistance / Fib ext 127.2%
Target 2 (T2)Major resistance / Fib ext 161.8%
Target 3 (T3)Full extension / Fib ext 261.8%
Stop LossBelow key support or 1.5× ATR
Key CatalystsTop 3-5 bullish drivers
Key RisksTop 3-5 bearish risks

After all tickers are analyzed, run the usage report:

python
from scripts.usage_tracker import get_tracker
get_tracker().print_daily_report()
get_tracker().save_daily_summary()

Use Case 2: Daily Opportunity Scanner

Trigger: User asks to find new stock ideas, scan for opportunities, or identify swing trades.

Input: User's portfolio focus (e.g., "growth", "value", "income") and optional current holdings to avoid duplicates. Output: Top 5 Portfolio Adds + Top 5 Swing Trades, each with score, 3 entries, 3 exits. Frequency: Daily (before market open)

Workflow

Phase A — Source Aggregation (cast a wide net):

  1. Scan all Tier 1+2 RSS feeds using scripts/rss_feeds.py → scan_all_feeds(). Extract tickers mentioned across all feeds.
  2. Pull Seeking Alpha per-ticker RSS for top 5 tickers from step 1.
  3. Get Reddit trending tickers (ApeWisdom) — cross-reference with RSS mentions.
  4. StockTwits sentiment scan for top 10 overlapping tickers.
  5. Check new Congress trades (Mboum).
  6. Pull upcoming earnings in next 5 days (Finnhub).

Phase B — Screening (narrow down to top 20 candidates): 7. News sentiment on top 20 candidates (Finnhub). 8. SA quant ratings + factor grades for top 5 (SA RapidAPI). 9. AI sentiment score for top 5 (Alpha Vantage — 5 of 25/day). 10. Price + volume screening (yfinance) — 52wk range positioning, volume vs avg. 11. Financial health check for top 10 (yfinance) — revenue growth, margins, PE. 12. Analyst consensus for top 10 (Finnhub). 13. Insider activity for top 10 (SEC EDGAR).

Phase C — Analysis (for top 10 survivors): 14. Compute S/R levels + entry/exit targets (pandas-ta locally). 15. Check unusual options activity for top 5 (Mboum). 16. Multi-factor scoring + final ranking (local compute).

Phase D — Output:

Present two lists:

Portfolio Adds (growth-aligned, longer horizon):

  • Ticker, Score, Rating, 3 Entries, 3 Exits, Stop Loss, R:R, Catalysts

Swing Trades (momentum-based, shorter horizon):

  • Ticker, Score, Rating, 3 Entries, 3 Exits, Stop Loss, R:R, Catalysts, Time Horizon

Use Case 3: On-Demand Stock Deep Dive

Trigger: User asks to analyze a specific stock, do a deep dive on a ticker, or asks "should I buy X?"

Input: 1-10 tickers Output: Full analyst-grade report per ticker with Buy / Watch·Hold / Sell rating, 3 entries, 3 exits, and comprehensive analysis.

Workflow

This is the most thorough analysis — every available data source is queried. Four phases, ~30 API calls per ticker.

Phase A — Fundamentals (11 steps per ticker): Company profile, 5yr income statement, quarterly income trends, balance sheet, cash flow, XBRL cross-validation from SEC EDGAR, key ratio computation (PE/PB/PS/PEG/EV-EBITDA/ROE/ROA/D-E/FCF yield), peer comparison (5 peers), earnings history + surprises, upcoming earnings date, dividend history.

Phase B — Technicals (17 steps, mostly local via pandas-ta): 2yr daily + 6mo intraday price history, SMA/EMA suite, RSI, MACD, Bollinger Bands, Stochastic, ADX, Volume + OBV, VWAP, Pivot Points, Fibonacci Retracement, Fibonacci Extensions, Volume Profile, ATR, Ichimoku Cloud. Cross-validate 2 indicators via Alpha Vantage API.

Phase C — Sentiment & Alternative Data (16 steps): Analyst ratings consensus (Finnhub), price targets (yfinance), insider Form 4 filings (SEC EDGAR), insider MSPR (Finnhub), Congress trades (Mboum), institutional holders (yfinance), short interest, news sentiment (Finnhub + AV AI), Reddit mentions (ApeWisdom), StockTwits sentiment, SA quant ratings + factor grades (SA RapidAPI), SA per-ticker articles (RSS), options flow (yfinance), unusual options (Mboum), recent SEC filings scan.

Phase D — Scoring & Output (12 steps, all local): Fundamental score (0-100), Technical score (0-100), Sentiment score (0-100), Composite score (weighted 40/30/30), Rating assignment (Buy ≥75 / Watch·Hold 40-74 / Sell <40), 3 Entry levels, 3 Exit targets, Stop Loss, Risk:Reward ratio, Confidence level, Key Catalysts, Key Risks.

Output a comprehensive per-ticker report with all findings. Only recommend trades where R:R ≥ 2:1.


Error Handling

When any API call fails, the system:

  1. Logs the error to ~/.financial-analysis/logs/error_log.jsonl with timestamp, API, category, and error message
  2. Tries the fallback — next API in the chain for that data category
  3. Logs fallback result — records which fallback was used and whether it succeeded
  4. If all fallbacks fail, continues with available data and notes the gap in the output

Viewing Errors

bash
python scripts/usage_tracker.py errors      # Last 7 days
python scripts/usage_tracker.py errors 30   # Last 30 days

Common Errors and Fixes

ErrorAPIFix
429 Too Many RequestsyfinanceIncrease delay to 5s. Reduce batch size.
429 Rate LimitedAlpha Vantage25/day limit hit. Wait or use pandas-ta locally.
403 ForbiddenSEC EDGARSet User-Agent email in config.
API key invalidAnyCheck ~/.financial-analysis/api_keys.json
Connection timeoutAnyAutomatic fallback triggers. Check internet.

Usage Reports & Paid Tier Recommendations

After each workflow run, the usage tracker saves a daily summary. When any API exceeds 70% of its free limit, it generates a paid tier recommendation:

bash
python scripts/usage_tracker.py daily    # See today's report
python scripts/usage_tracker.py summary  # Save JSON summary

The summary includes per-API: calls today/this month, % of free limit, error count, and a severity rating (SAFE / WARNING / CRITICAL).

The APIs most likely to need upgrading (in order):

  1. Alpha Vantage (25/day) — first to hit limits. Upgrade: $29.99/mo
  2. Mboum (600/mo) — tight if running all 3 use cases daily. Upgrade: $9.95/mo
  3. SA RapidAPI (1K/mo) — tight with heavy deep dive usage. Check RapidAPI pricing.

Important Notes

  • This skill provides data-driven analysis, not financial advice. Always do your own due diligence.
  • yfinance is an unofficial library — data may be delayed or temporarily unavailable.
  • SEC EDGAR data is authoritative but requires parsing.
  • All timestamps are in the timezone of the market being analyzed (US Eastern for US stocks).
  • The scoring system weights can be adjusted based on user preference.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Financial Analysis AI skill do?

Comprehensive financial analysis skill for stock research, portfolio review, and opportunity discovery. Use this skill when the user wants to: analyze stocks, review a portfolio, scan for new stock ideas, get buy/sell ratings, compute support/resistance levels, check insider or Congress trades, assess sentiment from Reddit/StockTwits/news, pull analyst ratings, or generate entry/exit price targets. Triggers: stock analysis, portfolio review, stock scanner, financial analysis, buy/sell rating, price target, technical analysis, sentiment analysis, insider trading, Congress trades, stock ideas...

Why use Financial Analysis on TypingMind?

Because you install it once and use it with any model. Financial Analysis is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Financial Analysis in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/geogons/skill-financial-analyst/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Financial Analysis?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Financial Analysis?

As many as you like. As long as a model supports skills, you can use Financial Analysis with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Financial Analysis AI skill free?

Yes. It is published on GitHub by geogons under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇