quantwise 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/README.md +80 -0
- package/.claude/skills/backtest-expert/SKILL.md +206 -0
- package/.claude/skills/backtest-expert/references/failed_tests.md +236 -0
- package/.claude/skills/backtest-expert/references/methodology.md +227 -0
- package/.claude/skills/breadth-chart-analyst/SKILL.md +583 -0
- package/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/canslim-screener/SKILL.md +599 -0
- package/.claude/skills/canslim-screener/references/canslim_methodology.md +606 -0
- package/.claude/skills/canslim-screener/references/fmp_api_endpoints.md +707 -0
- package/.claude/skills/canslim-screener/references/interpretation_guide.md +516 -0
- package/.claude/skills/canslim-screener/references/scoring_system.md +597 -0
- package/.claude/skills/canslim-screener/scripts/calculators/earnings_calculator.py +343 -0
- package/.claude/skills/canslim-screener/scripts/calculators/growth_calculator.py +334 -0
- package/.claude/skills/canslim-screener/scripts/calculators/institutional_calculator.py +347 -0
- package/.claude/skills/canslim-screener/scripts/calculators/leadership_calculator.py +380 -0
- package/.claude/skills/canslim-screener/scripts/calculators/market_calculator.py +244 -0
- package/.claude/skills/canslim-screener/scripts/calculators/new_highs_calculator.py +194 -0
- package/.claude/skills/canslim-screener/scripts/calculators/supply_demand_calculator.py +221 -0
- package/.claude/skills/canslim-screener/scripts/finviz_stock_client.py +227 -0
- package/.claude/skills/canslim-screener/scripts/fmp_client.py +393 -0
- package/.claude/skills/canslim-screener/scripts/report_generator.py +405 -0
- package/.claude/skills/canslim-screener/scripts/scorer.py +625 -0
- package/.claude/skills/canslim-screener/scripts/screen_canslim.py +361 -0
- package/.claude/skills/canslim-screener/scripts/test_institutional_endpoint.py +109 -0
- package/.claude/skills/chart/SKILL.md +20 -0
- package/.claude/skills/dividend-growth-pullback-screener/SKILL.md +322 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/dividend_growth_compounding.md +400 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/fmp_api_guide.md +642 -0
- package/.claude/skills/dividend-growth-pullback-screener/references/rsi_oversold_strategy.md +333 -0
- package/.claude/skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py +1155 -0
- package/.claude/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/ftd-detector/SKILL.md +147 -0
- package/.claude/skills/ftd-detector/references/ftd_methodology.md +188 -0
- package/.claude/skills/ftd-detector/references/post_ftd_guide.md +185 -0
- package/.claude/skills/ftd-detector/scripts/fmp_client.py +158 -0
- package/.claude/skills/ftd-detector/scripts/ftd_detector.py +280 -0
- package/.claude/skills/ftd-detector/scripts/post_ftd_monitor.py +404 -0
- package/.claude/skills/ftd-detector/scripts/rally_tracker.py +508 -0
- package/.claude/skills/ftd-detector/scripts/report_generator.py +341 -0
- package/.claude/skills/ftd-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/ftd-detector/scripts/tests/helpers.py +107 -0
- package/.claude/skills/ftd-detector/scripts/tests/test_post_ftd_monitor.py +311 -0
- package/.claude/skills/ftd-detector/scripts/tests/test_rally_tracker.py +302 -0
- package/.claude/skills/institutional-flow-tracker/README.md +362 -0
- package/.claude/skills/institutional-flow-tracker/SKILL.md +357 -0
- package/.claude/skills/institutional-flow-tracker/references/13f_filings_guide.md +383 -0
- package/.claude/skills/institutional-flow-tracker/references/institutional_investor_types.md +580 -0
- package/.claude/skills/institutional-flow-tracker/references/interpretation_framework.md +573 -0
- package/.claude/skills/institutional-flow-tracker/scripts/analyze_single_stock.py +457 -0
- package/.claude/skills/institutional-flow-tracker/scripts/track_institution_portfolio.py +108 -0
- package/.claude/skills/institutional-flow-tracker/scripts/track_institutional_flow.py +450 -0
- package/.claude/skills/macro-regime-detector/SKILL.md +86 -0
- package/.claude/skills/macro-regime-detector/references/historical_regimes.md +124 -0
- package/.claude/skills/macro-regime-detector/references/indicator_interpretation_guide.md +144 -0
- package/.claude/skills/macro-regime-detector/references/regime_detection_methodology.md +138 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/concentration_calculator.py +165 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/credit_conditions_calculator.py +124 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/equity_bond_calculator.py +198 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/sector_rotation_calculator.py +123 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/size_factor_calculator.py +131 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/utils.py +347 -0
- package/.claude/skills/macro-regime-detector/scripts/calculators/yield_curve_calculator.py +279 -0
- package/.claude/skills/macro-regime-detector/scripts/fmp_client.py +134 -0
- package/.claude/skills/macro-regime-detector/scripts/macro_regime_detector.py +278 -0
- package/.claude/skills/macro-regime-detector/scripts/report_generator.py +327 -0
- package/.claude/skills/macro-regime-detector/scripts/scorer.py +574 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_concentration.py +78 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_credit_conditions.py +59 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_equity_bond.py +74 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_helpers.py +90 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_scorer.py +439 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_sector_rotation.py +78 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_size_factor.py +59 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_utils.py +126 -0
- package/.claude/skills/macro-regime-detector/scripts/tests/test_yield_curve.py +64 -0
- package/.claude/skills/market-breadth-analyzer/SKILL.md +121 -0
- package/.claude/skills/market-breadth-analyzer/references/breadth_analysis_methodology.md +168 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/bearish_signal_calculator.py +150 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/cycle_calculator.py +168 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/divergence_calculator.py +119 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/historical_context_calculator.py +120 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/ma_crossover_calculator.py +115 -0
- package/.claude/skills/market-breadth-analyzer/scripts/calculators/trend_level_calculator.py +103 -0
- package/.claude/skills/market-breadth-analyzer/scripts/csv_client.py +225 -0
- package/.claude/skills/market-breadth-analyzer/scripts/market_breadth_analyzer.py +307 -0
- package/.claude/skills/market-breadth-analyzer/scripts/report_generator.py +330 -0
- package/.claude/skills/market-breadth-analyzer/scripts/scorer.py +271 -0
- package/.claude/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/market-top-detector/SKILL.md +159 -0
- package/.claude/skills/market-top-detector/references/distribution_day_guide.md +100 -0
- package/.claude/skills/market-top-detector/references/historical_tops.md +142 -0
- package/.claude/skills/market-top-detector/references/market_top_methodology.md +167 -0
- package/.claude/skills/market-top-detector/scripts/calculators/__init__.py +17 -0
- package/.claude/skills/market-top-detector/scripts/calculators/breadth_calculator.py +116 -0
- package/.claude/skills/market-top-detector/scripts/calculators/defensive_rotation_calculator.py +127 -0
- package/.claude/skills/market-top-detector/scripts/calculators/distribution_day_calculator.py +161 -0
- package/.claude/skills/market-top-detector/scripts/calculators/index_technical_calculator.py +254 -0
- package/.claude/skills/market-top-detector/scripts/calculators/leading_stock_calculator.py +198 -0
- package/.claude/skills/market-top-detector/scripts/calculators/sentiment_calculator.py +213 -0
- package/.claude/skills/market-top-detector/scripts/fmp_client.py +158 -0
- package/.claude/skills/market-top-detector/scripts/market_top_detector.py +349 -0
- package/.claude/skills/market-top-detector/scripts/report_generator.py +314 -0
- package/.claude/skills/market-top-detector/scripts/scorer.py +473 -0
- package/.claude/skills/market-top-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/market-top-detector/scripts/tests/helpers.py +49 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_breadth.py +62 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_defensive_rotation.py +56 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_distribution_day.py +92 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_index_technical.py +73 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_leading_stock.py +57 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_scorer.py +180 -0
- package/.claude/skills/market-top-detector/scripts/tests/test_sentiment.py +64 -0
- package/.claude/skills/options-strategy-advisor/README.md +469 -0
- package/.claude/skills/options-strategy-advisor/SKILL.md +959 -0
- package/.claude/skills/options-strategy-advisor/scripts/black_scholes.py +495 -0
- package/.claude/skills/pair-trade-screener/README.md +389 -0
- package/.claude/skills/pair-trade-screener/SKILL.md +622 -0
- package/.claude/skills/pair-trade-screener/references/cointegration_guide.md +745 -0
- package/.claude/skills/pair-trade-screener/references/methodology.md +853 -0
- package/.claude/skills/pair-trade-screener/scripts/analyze_spread.py +394 -0
- package/.claude/skills/pair-trade-screener/scripts/find_pairs.py +535 -0
- package/.claude/skills/portfolio-manager/README.md +394 -0
- package/.claude/skills/portfolio-manager/SKILL.md +750 -0
- package/.claude/skills/portfolio-manager/references/alpaca-mcp-setup.md +367 -0
- package/.claude/skills/portfolio-manager/references/asset-allocation.md +502 -0
- package/.claude/skills/portfolio-manager/references/diversification-principles.md +553 -0
- package/.claude/skills/portfolio-manager/references/portfolio-risk-metrics.md +603 -0
- package/.claude/skills/portfolio-manager/references/position-evaluation.md +477 -0
- package/.claude/skills/portfolio-manager/references/rebalancing-strategies.md +715 -0
- package/.claude/skills/portfolio-manager/references/risk-profile-questionnaire.md +608 -0
- package/.claude/skills/portfolio-manager/references/target-allocations.md +558 -0
- package/.claude/skills/portfolio-manager/scripts/test_alpaca_connection.py +286 -0
- package/.claude/skills/scenario-analyzer/SKILL.md +317 -0
- package/.claude/skills/scenario-analyzer/references/headline_event_patterns.md +264 -0
- package/.claude/skills/scenario-analyzer/references/scenario_playbooks.md +320 -0
- package/.claude/skills/scenario-analyzer/references/sector_sensitivity_matrix.md +217 -0
- package/.claude/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/stock/NOTION_SETUP.md +33 -0
- package/.claude/skills/stock/SKILL.md +38 -0
- package/.claude/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/theme-detector/SKILL.md +320 -0
- package/.claude/skills/theme-detector/assets/report_template.md +155 -0
- package/.claude/skills/theme-detector/references/cross_sector_themes.md +252 -0
- package/.claude/skills/theme-detector/references/finviz_industry_codes.md +403 -0
- package/.claude/skills/theme-detector/references/thematic_etf_catalog.md +333 -0
- package/.claude/skills/theme-detector/references/theme_detection_methodology.md +430 -0
- package/.claude/skills/theme-detector/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/theme-detector/scripts/calculators/heat_calculator.py +123 -0
- package/.claude/skills/theme-detector/scripts/calculators/industry_ranker.py +98 -0
- package/.claude/skills/theme-detector/scripts/calculators/lifecycle_calculator.py +172 -0
- package/.claude/skills/theme-detector/scripts/calculators/theme_classifier.py +195 -0
- package/.claude/skills/theme-detector/scripts/calculators/theme_discoverer.py +280 -0
- package/.claude/skills/theme-detector/scripts/config_loader.py +142 -0
- package/.claude/skills/theme-detector/scripts/default_theme_config.py +254 -0
- package/.claude/skills/theme-detector/scripts/etf_scanner.py +609 -0
- package/.claude/skills/theme-detector/scripts/finviz_performance_client.py +131 -0
- package/.claude/skills/theme-detector/scripts/report_generator.py +490 -0
- package/.claude/skills/theme-detector/scripts/representative_stock_selector.py +673 -0
- package/.claude/skills/theme-detector/scripts/scorer.py +87 -0
- package/.claude/skills/theme-detector/scripts/tests/README.md +21 -0
- package/.claude/skills/theme-detector/scripts/tests/conftest.py +9 -0
- package/.claude/skills/theme-detector/scripts/tests/test_config_loader.py +239 -0
- package/.claude/skills/theme-detector/scripts/tests/test_etf_scanner.py +810 -0
- package/.claude/skills/theme-detector/scripts/tests/test_heat_calculator.py +245 -0
- package/.claude/skills/theme-detector/scripts/tests/test_industry_ranker.py +256 -0
- package/.claude/skills/theme-detector/scripts/tests/test_lifecycle_calculator.py +301 -0
- package/.claude/skills/theme-detector/scripts/tests/test_report_generator.py +624 -0
- package/.claude/skills/theme-detector/scripts/tests/test_representative_stock_selector.py +898 -0
- package/.claude/skills/theme-detector/scripts/tests/test_scorer.py +185 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_classifier.py +534 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_detector_e2e.py +467 -0
- package/.claude/skills/theme-detector/scripts/tests/test_theme_discoverer.py +458 -0
- package/.claude/skills/theme-detector/scripts/tests/test_uptrend_client.py +76 -0
- package/.claude/skills/theme-detector/scripts/theme_detector.py +815 -0
- package/.claude/skills/theme-detector/scripts/themes.yaml +168 -0
- package/.claude/skills/theme-detector/scripts/uptrend_client.py +241 -0
- package/.claude/skills/uptrend-analyzer/SKILL.md +108 -0
- package/.claude/skills/uptrend-analyzer/references/uptrend_methodology.md +215 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/historical_context_calculator.py +122 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/market_breadth_calculator.py +145 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/momentum_calculator.py +183 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_participation_calculator.py +204 -0
- package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_rotation_calculator.py +218 -0
- package/.claude/skills/uptrend-analyzer/scripts/data_fetcher.py +236 -0
- package/.claude/skills/uptrend-analyzer/scripts/report_generator.py +329 -0
- package/.claude/skills/uptrend-analyzer/scripts/scorer.py +276 -0
- package/.claude/skills/uptrend-analyzer/scripts/uptrend_analyzer.py +219 -0
- package/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.claude/skills/value-dividend-screener/SKILL.md +562 -0
- package/.claude/skills/value-dividend-screener/references/fmp_api_guide.md +348 -0
- package/.claude/skills/value-dividend-screener/references/screening_methodology.md +315 -0
- package/.claude/skills/value-dividend-screener/scripts/screen_dividend_stocks.py +1138 -0
- package/.claude/skills/vcp-screener/SKILL.md +79 -0
- package/.claude/skills/vcp-screener/references/fmp_api_endpoints.md +45 -0
- package/.claude/skills/vcp-screener/references/scoring_system.md +154 -0
- package/.claude/skills/vcp-screener/references/vcp_methodology.md +124 -0
- package/.claude/skills/vcp-screener/scripts/calculators/__init__.py +1 -0
- package/.claude/skills/vcp-screener/scripts/calculators/pivot_proximity_calculator.py +139 -0
- package/.claude/skills/vcp-screener/scripts/calculators/relative_strength_calculator.py +161 -0
- package/.claude/skills/vcp-screener/scripts/calculators/trend_template_calculator.py +228 -0
- package/.claude/skills/vcp-screener/scripts/calculators/vcp_pattern_calculator.py +322 -0
- package/.claude/skills/vcp-screener/scripts/calculators/volume_pattern_calculator.py +121 -0
- package/.claude/skills/vcp-screener/scripts/fmp_client.py +162 -0
- package/.claude/skills/vcp-screener/scripts/report_generator.py +317 -0
- package/.claude/skills/vcp-screener/scripts/scorer.py +155 -0
- package/.claude/skills/vcp-screener/scripts/screen_vcp.py +536 -0
- package/.claude/skills/vcp-screener/scripts/tests/__init__.py +0 -0
- package/.claude/skills/vcp-screener/scripts/tests/conftest.py +9 -0
- package/.claude/skills/vcp-screener/scripts/tests/test_vcp_screener.py +834 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/druckenmiller-strategy-planner.md +300 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/market-news-analyzer.md +239 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/technical-market-analyst.md +187 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/us-market-analyst.md +218 -0
- package/.claude/skills/weekly-trade-strategy/.claude/agents/weekly-trade-blog-writer.md +318 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/SKILL.md +662 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.claude/skills/weekly-trade-strategy/CLAUDE.md +454 -0
- package/.claude/skills/weekly-trade-strategy/README.md +287 -0
- package/.claude/skills/weekly-trade-strategy/blogs/.gitkeep +0 -0
- package/.claude/skills/weekly-trade-strategy/charts/.gitkeep +0 -0
- package/.claude/skills/weekly-trade-strategy/earnings_data.json +10054 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/SKILL.md +662 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
- package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/SKILL.md +721 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
- package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/generate_report.py +366 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/SKILL.md +365 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
- package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/SKILL.md +139 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/indicators.md +99 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/scripts/market_utils.py +127 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/SKILL.md +714 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/market_event_patterns.md +393 -0
- package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/SKILL.md +206 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
- package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/references/sector_rotation.md +170 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
- package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/SKILL.md +238 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/assets/analysis_template.md +183 -0
- package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/SKILL.md +545 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/SKILL.md +294 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/financial-metrics.md +172 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/report-template.md +207 -0
- package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/technical-analysis.md +93 -0
- package/.mcp.json +3 -0
- package/cli.mjs +16 -16
- package/package.json +4 -2
package/.claude/skills/dividend-growth-pullback-screener/references/dividend_growth_compounding.md
ADDED
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
# The Power of Dividend Growth Compounding
|
|
2
|
+
|
|
3
|
+
## Core Concept: Yield on Cost vs. Current Yield
|
|
4
|
+
|
|
5
|
+
**Current Yield:** What a stock yields today based on today's price
|
|
6
|
+
**Yield on Cost (YOC):** What a stock yields based on YOUR purchase price
|
|
7
|
+
|
|
8
|
+
**Example:**
|
|
9
|
+
```
|
|
10
|
+
Stock A purchased 10 years ago:
|
|
11
|
+
- Purchase price: $50
|
|
12
|
+
- Annual dividend at purchase: $1.00
|
|
13
|
+
- Initial yield on cost: 2.0%
|
|
14
|
+
|
|
15
|
+
Stock A today:
|
|
16
|
+
- Current price: $120
|
|
17
|
+
- Annual dividend today: $2.50
|
|
18
|
+
- Current yield: 2.1% (for new buyers)
|
|
19
|
+
- YOUR yield on cost: 5.0% (based on your $50 cost)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Key Insight:** Your yield on cost grows every time the dividend increases, regardless of stock price movement. This is the magic of dividend growth investing.
|
|
23
|
+
|
|
24
|
+
## The Mathematics of Dividend Growth
|
|
25
|
+
|
|
26
|
+
### 12% Annual Dividend Growth (Screening Minimum)
|
|
27
|
+
|
|
28
|
+
Starting with 1.5% yield:
|
|
29
|
+
|
|
30
|
+
| Year | Annual Dividend | Yield on Cost | Cumulative Dividends | Total Value |
|
|
31
|
+
|------|----------------|---------------|---------------------|-------------|
|
|
32
|
+
| 0 | $1.50 | 1.50% | $0 | $100 |
|
|
33
|
+
| 1 | $1.68 | 1.68% | $1.68 | $101.68 |
|
|
34
|
+
| 3 | $2.11 | 2.11% | $5.51 | $105.51 |
|
|
35
|
+
| 5 | $2.64 | 2.64% | $10.18 | $110.18 |
|
|
36
|
+
| 10 | $4.66 | 4.66% | $26.20 | $126.20 |
|
|
37
|
+
| 15 | $8.22 | 8.22% | $53.98 | $153.98 |
|
|
38
|
+
| 20 | $14.50 | 14.50% | $102.45 | $202.45 |
|
|
39
|
+
|
|
40
|
+
**Key Milestones:**
|
|
41
|
+
- Year 6: Dividend doubles (3% yield on cost)
|
|
42
|
+
- Year 12: Dividend quadruples (6% yield on cost)
|
|
43
|
+
- Year 18: Dividend grows 8x (12% yield on cost)
|
|
44
|
+
|
|
45
|
+
### 15% Annual Dividend Growth (Excellent Tier)
|
|
46
|
+
|
|
47
|
+
Starting with 1.8% yield:
|
|
48
|
+
|
|
49
|
+
| Year | Annual Dividend | Yield on Cost | Cumulative Dividends | Total Value |
|
|
50
|
+
|------|----------------|---------------|---------------------|-------------|
|
|
51
|
+
| 0 | $1.80 | 1.80% | $0 | $100 |
|
|
52
|
+
| 1 | $2.07 | 2.07% | $2.07 | $102.07 |
|
|
53
|
+
| 3 | $2.74 | 2.74% | $7.02 | $107.02 |
|
|
54
|
+
| 5 | $3.62 | 3.62% | $13.86 | $113.86 |
|
|
55
|
+
| 10 | $7.28 | 7.28% | $40.57 | $140.57 |
|
|
56
|
+
| 15 | $14.65 | 14.65% | $93.11 | $193.11 |
|
|
57
|
+
| 20 | $29.47 | 29.47% | $195.57 | $295.57 |
|
|
58
|
+
|
|
59
|
+
**Key Milestones:**
|
|
60
|
+
- Year 5: Dividend doubles (3.6% yield on cost)
|
|
61
|
+
- Year 10: Dividend quadruples (7.3% yield on cost)
|
|
62
|
+
- Year 15: Dividend grows 8x (14.7% yield on cost)
|
|
63
|
+
- Year 20: Dividend grows 16x (29.5% yield on cost)
|
|
64
|
+
|
|
65
|
+
### 20% Annual Dividend Growth (Exceptional Tier)
|
|
66
|
+
|
|
67
|
+
Starting with 2.0% yield:
|
|
68
|
+
|
|
69
|
+
| Year | Annual Dividend | Yield on Cost | Cumulative Dividends | Total Value |
|
|
70
|
+
|------|----------------|---------------|---------------------|-------------|
|
|
71
|
+
| 0 | $2.00 | 2.00% | $0 | $100 |
|
|
72
|
+
| 1 | $2.40 | 2.40% | $2.40 | $102.40 |
|
|
73
|
+
| 3 | $3.46 | 3.46% | $8.66 | $108.66 |
|
|
74
|
+
| 5 | $4.98 | 4.98% | $18.67 | $118.67 |
|
|
75
|
+
| 10 | $12.38 | 12.38% | $63.10 | $163.10 |
|
|
76
|
+
| 15 | $30.77 | 30.77% | $181.74 | $281.74 |
|
|
77
|
+
| 20 | $76.49 | 76.49% | $479.76 | $579.76 |
|
|
78
|
+
|
|
79
|
+
**Key Milestones:**
|
|
80
|
+
- Year 4: Dividend doubles (4% yield on cost)
|
|
81
|
+
- Year 8: Dividend quadruples (8.6% yield on cost)
|
|
82
|
+
- Year 12: Dividend grows 8x (17.8% yield on cost)
|
|
83
|
+
- Year 16: Dividend grows 16x (36.6% yield on cost)
|
|
84
|
+
|
|
85
|
+
## Growth vs. Yield Trade-Off
|
|
86
|
+
|
|
87
|
+
### Scenario Comparison: 20-Year Investment
|
|
88
|
+
|
|
89
|
+
**Stock A: High Yield, Low Growth**
|
|
90
|
+
- Initial Yield: 4.0%
|
|
91
|
+
- Dividend Growth: 3% annually
|
|
92
|
+
- Year 20 Yield on Cost: 7.2%
|
|
93
|
+
- Total Dividends Collected: $109.11
|
|
94
|
+
- Final Position Value (with dividends): $209.11
|
|
95
|
+
|
|
96
|
+
**Stock B: Low Yield, High Growth**
|
|
97
|
+
- Initial Yield: 1.5%
|
|
98
|
+
- Dividend Growth: 15% annually
|
|
99
|
+
- Year 20 Yield on Cost: 24.5%
|
|
100
|
+
- Total Dividends Collected: $146.79
|
|
101
|
+
- Final Position Value (with dividends): $246.79
|
|
102
|
+
|
|
103
|
+
**Winner: Stock B by 18% higher total return**
|
|
104
|
+
|
|
105
|
+
**Key Insight:** Lower starting yield + higher growth beats higher starting yield + lower growth over long periods (10+ years). This is why we screen for 12%+ dividend growth, not maximum current yield.
|
|
106
|
+
|
|
107
|
+
## Real-World Examples
|
|
108
|
+
|
|
109
|
+
### Microsoft (MSFT): 2010-2020
|
|
110
|
+
|
|
111
|
+
**2010 Entry:**
|
|
112
|
+
- Price: $28
|
|
113
|
+
- Annual Dividend: $0.55
|
|
114
|
+
- Yield on Cost: 2.0%
|
|
115
|
+
- Dividend Growth Rate: ~15% annually
|
|
116
|
+
|
|
117
|
+
**2020 Result:**
|
|
118
|
+
- Price: $220 (7.9x)
|
|
119
|
+
- Annual Dividend: $2.24
|
|
120
|
+
- Yield on Cost: 8.0% (4x)
|
|
121
|
+
- Total Return: ~900% including dividends
|
|
122
|
+
|
|
123
|
+
**Lesson:** A "boring" 2% yielder in 2010 became an 8% yielder on cost in 10 years. Investors who bought for the 2% yield stayed for the dividend growth and compounded massive returns.
|
|
124
|
+
|
|
125
|
+
### Visa (V): 2012-2022
|
|
126
|
+
|
|
127
|
+
**2012 Entry (Post-IPO):**
|
|
128
|
+
- Price: $20 (split-adjusted)
|
|
129
|
+
- Annual Dividend: $0.10
|
|
130
|
+
- Yield on Cost: 0.5%
|
|
131
|
+
- Dividend Growth Rate: ~20% annually
|
|
132
|
+
|
|
133
|
+
**2022 Result:**
|
|
134
|
+
- Price: $210 (10.5x)
|
|
135
|
+
- Annual Dividend: $1.50
|
|
136
|
+
- Yield on Cost: 7.5% (15x)
|
|
137
|
+
- Total Return: ~1,100% including dividends
|
|
138
|
+
|
|
139
|
+
**Lesson:** Even a 0.5% yielder can become a high-yield position through sustained dividend growth. The starting yield is less important than the growth rate.
|
|
140
|
+
|
|
141
|
+
### Apple (AAPL): 2012-2022 (After Dividend Reinstatement)
|
|
142
|
+
|
|
143
|
+
**2012 Entry:**
|
|
144
|
+
- Price: $19 (split-adjusted)
|
|
145
|
+
- Annual Dividend: $0.38 (split-adjusted)
|
|
146
|
+
- Yield on Cost: 2.0%
|
|
147
|
+
- Dividend Growth Rate: ~10% annually
|
|
148
|
+
|
|
149
|
+
**2022 Result:**
|
|
150
|
+
- Price: $150 (7.9x)
|
|
151
|
+
- Annual Dividend: $0.92 (split-adjusted)
|
|
152
|
+
- Yield on Cost: 4.8% (2.4x)
|
|
153
|
+
- Total Return: ~850% including dividends
|
|
154
|
+
|
|
155
|
+
**Lesson:** Even "modest" 10% dividend growth creates significant income growth over a decade, especially when combined with price appreciation.
|
|
156
|
+
|
|
157
|
+
## Quality Characteristics of Dividend Growth Stocks
|
|
158
|
+
|
|
159
|
+
### Why Do Companies Grow Dividends 12%+?
|
|
160
|
+
|
|
161
|
+
**Business Growth:**
|
|
162
|
+
- Revenue growing 10%+ annually
|
|
163
|
+
- Earnings per share (EPS) growing 12%+ annually
|
|
164
|
+
- Market share expansion or pricing power
|
|
165
|
+
|
|
166
|
+
**Capital Efficiency:**
|
|
167
|
+
- High Return on Equity (ROE >15%)
|
|
168
|
+
- Strong profit margins (>15%)
|
|
169
|
+
- Excess cash generation
|
|
170
|
+
|
|
171
|
+
**Capital Allocation Priority:**
|
|
172
|
+
- Management committed to dividend growth
|
|
173
|
+
- Payout ratios low enough to sustain growth (30-70%)
|
|
174
|
+
- Balance between dividends, buybacks, and reinvestment
|
|
175
|
+
|
|
176
|
+
**Competitive Advantages:**
|
|
177
|
+
- Economic moats (brand, network effects, switching costs)
|
|
178
|
+
- Pricing power to pass through inflation
|
|
179
|
+
- Secular growth tailwinds
|
|
180
|
+
|
|
181
|
+
### Typical Profiles
|
|
182
|
+
|
|
183
|
+
**Technology (Software/Payments):**
|
|
184
|
+
- Example: Microsoft, Visa, Mastercard
|
|
185
|
+
- Characteristics: High margins (30-50%), low capex, scalable
|
|
186
|
+
- Dividend Growth: 15-20% annually
|
|
187
|
+
- Starting Yield: 0.5-1.5%
|
|
188
|
+
- Payout Ratio: 20-40%
|
|
189
|
+
|
|
190
|
+
**Financials (Banks/Insurers):**
|
|
191
|
+
- Example: JPMorgan, Progressive
|
|
192
|
+
- Characteristics: ROE 12-18%, regulatory capital requirements
|
|
193
|
+
- Dividend Growth: 10-15% annually
|
|
194
|
+
- Starting Yield: 2-3%
|
|
195
|
+
- Payout Ratio: 30-50%
|
|
196
|
+
|
|
197
|
+
**Consumer (Brands/Retail):**
|
|
198
|
+
- Example: Nike, Costco, Starbucks
|
|
199
|
+
- Characteristics: Brand loyalty, pricing power
|
|
200
|
+
- Dividend Growth: 12-18% annually
|
|
201
|
+
- Starting Yield: 1-2.5%
|
|
202
|
+
- Payout Ratio: 30-50%
|
|
203
|
+
|
|
204
|
+
**Healthcare (Pharma/Devices):**
|
|
205
|
+
- Example: Abbott, Johnson & Johnson
|
|
206
|
+
- Characteristics: Patent protection, aging demographics
|
|
207
|
+
- Dividend Growth: 8-15% annually
|
|
208
|
+
- Starting Yield: 1.5-2.5%
|
|
209
|
+
- Payout Ratio: 40-60%
|
|
210
|
+
|
|
211
|
+
## Sustainability: Can 12%+ Growth Continue?
|
|
212
|
+
|
|
213
|
+
### Payout Ratio Dynamics
|
|
214
|
+
|
|
215
|
+
**Low Payout Ratios (20-50%) = Sustainable Growth:**
|
|
216
|
+
|
|
217
|
+
If a company pays out only 40% of earnings as dividends:
|
|
218
|
+
- EPS needs to grow 12% → Dividend can grow 12% (payout ratio stable)
|
|
219
|
+
- EPS grows 8% → Dividend can still grow 12% by increasing payout ratio
|
|
220
|
+
- Creates multi-year runway for high dividend growth
|
|
221
|
+
|
|
222
|
+
**Example: Microsoft 2010-2020**
|
|
223
|
+
```
|
|
224
|
+
2010: EPS $2.50, Dividend $0.55, Payout Ratio 22%
|
|
225
|
+
2020: EPS $6.20, Dividend $2.24, Payout Ratio 36%
|
|
226
|
+
|
|
227
|
+
EPS CAGR: 9.5%
|
|
228
|
+
Dividend CAGR: 15.0%
|
|
229
|
+
Payout ratio expanded from 22% → 36%, enabling higher dividend growth
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**High Payout Ratios (70-90%) = Unsustainable:**
|
|
233
|
+
|
|
234
|
+
If a company pays out 80% of earnings:
|
|
235
|
+
- EPS must grow 12%+ to sustain 12% dividend growth
|
|
236
|
+
- No room for payout ratio expansion
|
|
237
|
+
- Risk of dividend cut if earnings decline
|
|
238
|
+
|
|
239
|
+
### The Growth Ceiling
|
|
240
|
+
|
|
241
|
+
**Mathematical Reality:**
|
|
242
|
+
- A 1.5% yielding stock growing dividends 15%/year will eventually yield 10%+ on cost
|
|
243
|
+
- At that point, payout ratios force dividend growth to slow
|
|
244
|
+
- Typical ceiling: After 10-15 years, dividend growth slows to 5-10%
|
|
245
|
+
|
|
246
|
+
**Why This Is OK:**
|
|
247
|
+
```
|
|
248
|
+
Years 1-10: Dividend growth 15%, total return 18-20%/year
|
|
249
|
+
Years 11-20: Dividend growth 8%, total return 10-12%/year
|
|
250
|
+
Years 21+: Dividend growth 5%, total return 7-9%/year
|
|
251
|
+
|
|
252
|
+
Your yield on cost is now 15-20%, generating massive income
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Lesson:** High dividend growth cannot last forever, but it doesn't need to. The compounding in the first 10-15 years creates permanently elevated income streams.
|
|
256
|
+
|
|
257
|
+
## Portfolio Construction with Dividend Growth
|
|
258
|
+
|
|
259
|
+
### Diversification Across Growth Tiers
|
|
260
|
+
|
|
261
|
+
**Balanced Approach (Recommended):**
|
|
262
|
+
- 40% in 12-15% growers (sustainable, moderate risk)
|
|
263
|
+
- 40% in 15-20% growers (excellent growth, higher valuation risk)
|
|
264
|
+
- 20% in 20%+ growers (exceptional but may slow down)
|
|
265
|
+
|
|
266
|
+
**Rationale:**
|
|
267
|
+
- 12-15% growers provide stable compounding
|
|
268
|
+
- 15-20% growers drive outsized returns
|
|
269
|
+
- 20%+ growers add "lottery ticket" upside
|
|
270
|
+
|
|
271
|
+
**Result:** Portfolio-level dividend growth ~15%/year, balancing risk and reward
|
|
272
|
+
|
|
273
|
+
### Entry Timing with RSI
|
|
274
|
+
|
|
275
|
+
**Without RSI Timing:**
|
|
276
|
+
- Buy 2% yielder at fair value
|
|
277
|
+
- Year 10 yield on cost: 8.0% (15% CAGR)
|
|
278
|
+
|
|
279
|
+
**With RSI ≤35 Timing:**
|
|
280
|
+
- Buy same stock 12% cheaper during pullback
|
|
281
|
+
- Effective yield: 2.27% (vs 2.0%)
|
|
282
|
+
- Year 10 yield on cost: 9.1% (13.7% improvement)
|
|
283
|
+
- Plus: Better total return from lower entry price
|
|
284
|
+
|
|
285
|
+
**Lesson:** RSI timing enhances already strong dividend growth returns. Even modest entry price improvements (10-15%) compound significantly over time.
|
|
286
|
+
|
|
287
|
+
### Reinvestment vs. Income
|
|
288
|
+
|
|
289
|
+
**Reinvestment (Accumulation Phase):**
|
|
290
|
+
- Reinvest all dividends into more shares
|
|
291
|
+
- Accelerates compounding through DRIP
|
|
292
|
+
- Effective dividend growth rate includes share accumulation
|
|
293
|
+
- Example: 15% dividend growth + 2% yield reinvested ≈ 17% total dividend income growth
|
|
294
|
+
|
|
295
|
+
**Income (Distribution Phase):**
|
|
296
|
+
- Spend dividends as income
|
|
297
|
+
- Rely on dividend growth for inflation protection
|
|
298
|
+
- 12% dividend growth = doubling income every 6 years
|
|
299
|
+
|
|
300
|
+
## Common Misconceptions
|
|
301
|
+
|
|
302
|
+
### "I Need High Yield NOW for Income"
|
|
303
|
+
|
|
304
|
+
**Reality:** If your time horizon is 10+ years, starting yield matters far less than growth rate.
|
|
305
|
+
|
|
306
|
+
**Math:**
|
|
307
|
+
```
|
|
308
|
+
Stock A: 5% yield, 3% growth
|
|
309
|
+
Year 10 income: 5% × 1.03^10 = 6.7% on cost
|
|
310
|
+
|
|
311
|
+
Stock B: 1.5% yield, 15% growth
|
|
312
|
+
Year 10 income: 1.5% × 1.15^10 = 6.1% on cost
|
|
313
|
+
|
|
314
|
+
Year 15 income:
|
|
315
|
+
Stock A: 7.8% on cost
|
|
316
|
+
Stock B: 12.1% on cost (55% more income!)
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Takeaway:** Patience with dividend growth beats immediate high yield.
|
|
320
|
+
|
|
321
|
+
### "Low Payout Ratio Means Company Is Cheap"
|
|
322
|
+
|
|
323
|
+
**Reality:** Low payout ratios (20-40%) in dividend growers are GOOD, not a sign of stinginess.
|
|
324
|
+
|
|
325
|
+
**Why:**
|
|
326
|
+
- Provides runway for sustained 12-15% dividend growth
|
|
327
|
+
- Signals management confidence (room to increase)
|
|
328
|
+
- Enables dividend growth even if earnings slow slightly
|
|
329
|
+
|
|
330
|
+
**Contrast:** High payout ratios (80-100%) limit dividend growth and signal risk.
|
|
331
|
+
|
|
332
|
+
### "Dividend Growth Will Slow When Stock Gets Expensive"
|
|
333
|
+
|
|
334
|
+
**Partial Truth:** Valuation and dividend growth are separate.
|
|
335
|
+
|
|
336
|
+
**Reality:**
|
|
337
|
+
- Expensive stocks (high P/E) CAN sustain high dividend growth if earnings grow
|
|
338
|
+
- Cheap stocks (low P/E) can have slow dividend growth if business is mature
|
|
339
|
+
|
|
340
|
+
**Focus:** Business growth (revenue, EPS) drives dividend growth, not valuation multiples. However, expensive stocks have lower total returns if multiples compress, even if dividends grow.
|
|
341
|
+
|
|
342
|
+
## Practical Application
|
|
343
|
+
|
|
344
|
+
### Stock Selection Checklist
|
|
345
|
+
|
|
346
|
+
For screening, require:
|
|
347
|
+
- [ ] Current Yield ≥ 1.5% (provides income floor)
|
|
348
|
+
- [ ] 3-Year Dividend CAGR ≥ 12% (proven growth)
|
|
349
|
+
- [ ] Payout Ratio < 80% (sustainable)
|
|
350
|
+
- [ ] Revenue CAGR > 0% (business growing)
|
|
351
|
+
- [ ] EPS CAGR > 0% (profitability growing)
|
|
352
|
+
- [ ] RSI ≤ 40 (timing opportunity)
|
|
353
|
+
|
|
354
|
+
### Position Monitoring
|
|
355
|
+
|
|
356
|
+
**Quarterly Reviews:**
|
|
357
|
+
- [ ] Dividend increased in past 12 months?
|
|
358
|
+
- [ ] Dividend growth rate still ≥10%? (Allow slight slowdown)
|
|
359
|
+
- [ ] Payout ratio stable or declining?
|
|
360
|
+
- [ ] Revenue and EPS growing?
|
|
361
|
+
|
|
362
|
+
**Action:** If all checks pass, hold indefinitely. If 2+ fail, consider trimming.
|
|
363
|
+
|
|
364
|
+
### Exit Triggers
|
|
365
|
+
|
|
366
|
+
**Fundamental Deterioration:**
|
|
367
|
+
- Dividend growth slows below 5%/year for 2+ years
|
|
368
|
+
- Payout ratio approaches 100%
|
|
369
|
+
- Revenue or EPS declining for 2+ quarters
|
|
370
|
+
- Management signals dividend growth pause
|
|
371
|
+
|
|
372
|
+
**Do NOT Exit For:**
|
|
373
|
+
- Stock price volatility (ignore noise)
|
|
374
|
+
- Valuation expansion (P/E rising)
|
|
375
|
+
- RSI overbought (>70)
|
|
376
|
+
- Market corrections
|
|
377
|
+
|
|
378
|
+
**Lesson:** You're holding for dividend growth, not price appreciation. Price volatility is irrelevant if dividends keep growing.
|
|
379
|
+
|
|
380
|
+
## Conclusion
|
|
381
|
+
|
|
382
|
+
Dividend growth investing is about patience and compounding. The strategy is:
|
|
383
|
+
|
|
384
|
+
1. **Find Quality:** Screen for 12%+ dividend CAGR, 1.5%+ yield
|
|
385
|
+
2. **Time Entry:** Use RSI ≤40 to buy during temporary weakness
|
|
386
|
+
3. **Hold Forever:** Let dividends compound for 10-20 years
|
|
387
|
+
4. **Reinvest (Optional):** Accelerate compounding in accumulation phase
|
|
388
|
+
5. **Enjoy Income:** Eventually yield on cost becomes 10-20%+, providing massive income
|
|
389
|
+
|
|
390
|
+
The magic is NOT in picking individual winners - it's in systematically buying quality dividend growers at good entry prices (RSI ≤40) and holding long enough for compounding to work.
|
|
391
|
+
|
|
392
|
+
**Remember:**
|
|
393
|
+
- A 1.5% yielder growing 15%/year becomes a 6% yielder in 10 years and 24% yielder in 20 years
|
|
394
|
+
- Entry price matters - RSI ≤40 improves cost basis by 10-15% typically
|
|
395
|
+
- Time horizon is critical - Need 10+ years for full compounding effect
|
|
396
|
+
- Business quality trumps everything - 12%+ dividend growth requires strong fundamentals
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
**Disclaimer:** Past dividend growth does not guarantee future performance. Dividend policies can change. Conduct thorough due diligence and consult a financial advisor before making investment decisions.
|