$npx -y skills add mphinance/alpha-skills --skill dividend-growth-pullback-screenerUse this skill to find high-quality dividend growth stocks (12%+ annual dividend growth, 1.5%+ yield) that are experiencing temporary pullbacks, identified by RSI oversold conditions (RSI ≤40). This skill combines fundamental dividend analysis with technical timing indicators to
| 1 | # Dividend Growth Pullback Screener |
| 2 | |
| 3 | ## Overview |
| 4 | |
| 5 | This skill screens for dividend growth stocks that exhibit strong fundamental characteristics but are experiencing temporary technical weakness. It targets stocks with exceptional dividend growth rates (12%+ CAGR) that have pulled back to RSI oversold levels (≤40), creating potential entry opportunities for long-term dividend growth investors. |
| 6 | |
| 7 | **Investment Thesis:** High-quality dividend growth stocks (often yielding 1-2.5%) compound wealth through dividend increases rather than high current yield. Buying these stocks during temporary pullbacks (RSI ≤40) can enhance total returns by combining strong fundamental growth with favorable technical entry timing. |
| 8 | |
| 9 | ## When to Use This Skill |
| 10 | |
| 11 | Use this skill when: |
| 12 | - Looking for dividend growth stocks with exceptional compounding potential (12%+ dividend CAGR) |
| 13 | - Seeking entry opportunities in quality stocks during temporary market weakness |
| 14 | - Willing to accept lower current yields (1.5-3%) for higher dividend growth |
| 15 | - Focusing on total return over 5-10 years rather than current income |
| 16 | - Market conditions show sector rotations or broad pullbacks affecting quality names |
| 17 | |
| 18 | **Do NOT use when:** |
| 19 | - Seeking high current income (use value-dividend-screener instead) |
| 20 | - Requiring immediate dividend yields >3% |
| 21 | - Looking for deep value plays with strict P/E or P/B requirements |
| 22 | - Short-term trading focus (<6 months) |
| 23 | |
| 24 | ## Prerequisites |
| 25 | |
| 26 | - **FMP API key** (required): Set `FMP_API_KEY` environment variable or pass `--fmp-api-key`. Free tier (250 calls/day) is sufficient for FMP-only mode (≤40 stocks). [Sign up](https://site.financialmodelingprep.com/developer/docs). |
| 27 | - **FINVIZ Elite API key** (optional, recommended): Set `FINVIZ_API_KEY` environment variable or pass `--finviz-api-key`. Reduces execution time from 10–15 min to 2–3 min. [Sign up](https://elite.finviz.com/). |
| 28 | - Python 3.8+ with `requests` and `pandas` libraries installed. |
| 29 | |
| 30 | ## Screening Workflow |
| 31 | |
| 32 | ### Step 1: Set API Keys |
| 33 | |
| 34 | #### Two-Stage Approach (RECOMMENDED) |
| 35 | |
| 36 | For optimal performance, use FINVIZ Elite API for pre-screening + FMP API for detailed analysis: |
| 37 | |
| 38 | ```bash |
| 39 | # Set both API keys as environment variables |
| 40 | export FMP_API_KEY=your_fmp_key_here |
| 41 | export FINVIZ_API_KEY=your_finviz_key_here |
| 42 | ``` |
| 43 | |
| 44 | **Why Two-Stage?** |
| 45 | - **FINVIZ**: Fast pre-screening with RSI filter (1 API call → ~10-50 candidates) |
| 46 | - **FMP**: Detailed fundamental analysis only on pre-screened candidates |
| 47 | - **Result**: Analyze more stocks with fewer FMP API calls (stays within free tier limits) |
| 48 | |
| 49 | #### FMP-Only Approach (Original Method) |
| 50 | |
| 51 | If you don't have FINVIZ Elite access: |
| 52 | |
| 53 | ```bash |
| 54 | export FMP_API_KEY=your_key_here |
| 55 | ``` |
| 56 | |
| 57 | **Limitation**: FMP free tier (250 requests/day) limits analysis to ~40 stocks. Use `--max-candidates 40` to stay within limits. |
| 58 | |
| 59 | ### Step 2: Execute Screening |
| 60 | |
| 61 | **Two-Stage Screening (RECOMMENDED):** |
| 62 | |
| 63 | ```bash |
| 64 | python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py --use-finviz |
| 65 | ``` |
| 66 | |
| 67 | This executes: |
| 68 | 1. FINVIZ pre-screen: Dividend yield 0.5-3%, Dividend growth 10%+, EPS growth 5%+, Sales growth 5%+, RSI <40 |
| 69 | 2. FMP detailed analysis: Verify 12%+ dividend CAGR, calculate exact RSI, analyze fundamentals |
| 70 | |
| 71 | **FMP-Only Screening:** |
| 72 | |
| 73 | ```bash |
| 74 | python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py --max-candidates 40 |
| 75 | ``` |
| 76 | |
| 77 | **Customization Options:** |
| 78 | |
| 79 | ```bash |
| 80 | # Two-stage with custom parameters |
| 81 | python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py \ |
| 82 | --use-finviz --min-yield 2.0 --min-div-growth 15.0 --rsi-max 35 |
| 83 | |
| 84 | # FMP-only with custom parameters |
| 85 | python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py \ |
| 86 | --min-yield 2.0 --min-div-growth 10.0 --max-candidates 30 |
| 87 | |
| 88 | # Provide API keys as arguments (instead of environment variables) |
| 89 | python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py \ |
| 90 | --use-finviz --fmp-api-key YOUR_FMP_KEY --finviz-api-key YOUR_FINVIZ_KEY |
| 91 | ``` |
| 92 | |
| 93 | ### Step 3: Review Results |
| 94 | |
| 95 | The script generates two outputs: |
| 96 | |
| 97 | 1. **JSON file:** `dividend_growth_pullback_results_YYYY-MM-DD.json` |
| 98 | - Structured data with all metrics for further analysis |
| 99 | - Includes dividend growth rates, RSI values, financial health metrics |
| 100 | |
| 101 | 2. **Markdown report:** `dividend_growth_pullback_screening_YYYY-MM-DD.md` |
| 102 | - Human-readable analysis with stock profiles |
| 103 | - Scenario-based probability assessments |
| 104 | - Entry timing recommendations |
| 105 | |
| 106 | ### Step 4: Analyze Qualified Stocks |
| 107 | |
| 108 | For each qualified stock, the report includes: |
| 109 | |
| 110 | **Dividend Growth Profile:** |
| 111 | - Curr |