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.
Files changed (362) hide show
  1. package/.claude/skills/README.md +80 -0
  2. package/.claude/skills/backtest-expert/SKILL.md +206 -0
  3. package/.claude/skills/backtest-expert/references/failed_tests.md +236 -0
  4. package/.claude/skills/backtest-expert/references/methodology.md +227 -0
  5. package/.claude/skills/breadth-chart-analyst/SKILL.md +583 -0
  6. package/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  7. package/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  8. package/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  9. package/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  10. package/.claude/skills/canslim-screener/SKILL.md +599 -0
  11. package/.claude/skills/canslim-screener/references/canslim_methodology.md +606 -0
  12. package/.claude/skills/canslim-screener/references/fmp_api_endpoints.md +707 -0
  13. package/.claude/skills/canslim-screener/references/interpretation_guide.md +516 -0
  14. package/.claude/skills/canslim-screener/references/scoring_system.md +597 -0
  15. package/.claude/skills/canslim-screener/scripts/calculators/earnings_calculator.py +343 -0
  16. package/.claude/skills/canslim-screener/scripts/calculators/growth_calculator.py +334 -0
  17. package/.claude/skills/canslim-screener/scripts/calculators/institutional_calculator.py +347 -0
  18. package/.claude/skills/canslim-screener/scripts/calculators/leadership_calculator.py +380 -0
  19. package/.claude/skills/canslim-screener/scripts/calculators/market_calculator.py +244 -0
  20. package/.claude/skills/canslim-screener/scripts/calculators/new_highs_calculator.py +194 -0
  21. package/.claude/skills/canslim-screener/scripts/calculators/supply_demand_calculator.py +221 -0
  22. package/.claude/skills/canslim-screener/scripts/finviz_stock_client.py +227 -0
  23. package/.claude/skills/canslim-screener/scripts/fmp_client.py +393 -0
  24. package/.claude/skills/canslim-screener/scripts/report_generator.py +405 -0
  25. package/.claude/skills/canslim-screener/scripts/scorer.py +625 -0
  26. package/.claude/skills/canslim-screener/scripts/screen_canslim.py +361 -0
  27. package/.claude/skills/canslim-screener/scripts/test_institutional_endpoint.py +109 -0
  28. package/.claude/skills/chart/SKILL.md +20 -0
  29. package/.claude/skills/dividend-growth-pullback-screener/SKILL.md +322 -0
  30. package/.claude/skills/dividend-growth-pullback-screener/references/dividend_growth_compounding.md +400 -0
  31. package/.claude/skills/dividend-growth-pullback-screener/references/fmp_api_guide.md +642 -0
  32. package/.claude/skills/dividend-growth-pullback-screener/references/rsi_oversold_strategy.md +333 -0
  33. package/.claude/skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py +1155 -0
  34. package/.claude/skills/earnings-calendar/SKILL.md +721 -0
  35. package/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  36. package/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  37. package/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  38. package/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
  39. package/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
  40. package/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  41. package/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  42. package/.claude/skills/ftd-detector/SKILL.md +147 -0
  43. package/.claude/skills/ftd-detector/references/ftd_methodology.md +188 -0
  44. package/.claude/skills/ftd-detector/references/post_ftd_guide.md +185 -0
  45. package/.claude/skills/ftd-detector/scripts/fmp_client.py +158 -0
  46. package/.claude/skills/ftd-detector/scripts/ftd_detector.py +280 -0
  47. package/.claude/skills/ftd-detector/scripts/post_ftd_monitor.py +404 -0
  48. package/.claude/skills/ftd-detector/scripts/rally_tracker.py +508 -0
  49. package/.claude/skills/ftd-detector/scripts/report_generator.py +341 -0
  50. package/.claude/skills/ftd-detector/scripts/tests/conftest.py +9 -0
  51. package/.claude/skills/ftd-detector/scripts/tests/helpers.py +107 -0
  52. package/.claude/skills/ftd-detector/scripts/tests/test_post_ftd_monitor.py +311 -0
  53. package/.claude/skills/ftd-detector/scripts/tests/test_rally_tracker.py +302 -0
  54. package/.claude/skills/institutional-flow-tracker/README.md +362 -0
  55. package/.claude/skills/institutional-flow-tracker/SKILL.md +357 -0
  56. package/.claude/skills/institutional-flow-tracker/references/13f_filings_guide.md +383 -0
  57. package/.claude/skills/institutional-flow-tracker/references/institutional_investor_types.md +580 -0
  58. package/.claude/skills/institutional-flow-tracker/references/interpretation_framework.md +573 -0
  59. package/.claude/skills/institutional-flow-tracker/scripts/analyze_single_stock.py +457 -0
  60. package/.claude/skills/institutional-flow-tracker/scripts/track_institution_portfolio.py +108 -0
  61. package/.claude/skills/institutional-flow-tracker/scripts/track_institutional_flow.py +450 -0
  62. package/.claude/skills/macro-regime-detector/SKILL.md +86 -0
  63. package/.claude/skills/macro-regime-detector/references/historical_regimes.md +124 -0
  64. package/.claude/skills/macro-regime-detector/references/indicator_interpretation_guide.md +144 -0
  65. package/.claude/skills/macro-regime-detector/references/regime_detection_methodology.md +138 -0
  66. package/.claude/skills/macro-regime-detector/scripts/calculators/__init__.py +1 -0
  67. package/.claude/skills/macro-regime-detector/scripts/calculators/concentration_calculator.py +165 -0
  68. package/.claude/skills/macro-regime-detector/scripts/calculators/credit_conditions_calculator.py +124 -0
  69. package/.claude/skills/macro-regime-detector/scripts/calculators/equity_bond_calculator.py +198 -0
  70. package/.claude/skills/macro-regime-detector/scripts/calculators/sector_rotation_calculator.py +123 -0
  71. package/.claude/skills/macro-regime-detector/scripts/calculators/size_factor_calculator.py +131 -0
  72. package/.claude/skills/macro-regime-detector/scripts/calculators/utils.py +347 -0
  73. package/.claude/skills/macro-regime-detector/scripts/calculators/yield_curve_calculator.py +279 -0
  74. package/.claude/skills/macro-regime-detector/scripts/fmp_client.py +134 -0
  75. package/.claude/skills/macro-regime-detector/scripts/macro_regime_detector.py +278 -0
  76. package/.claude/skills/macro-regime-detector/scripts/report_generator.py +327 -0
  77. package/.claude/skills/macro-regime-detector/scripts/scorer.py +574 -0
  78. package/.claude/skills/macro-regime-detector/scripts/tests/conftest.py +9 -0
  79. package/.claude/skills/macro-regime-detector/scripts/tests/test_concentration.py +78 -0
  80. package/.claude/skills/macro-regime-detector/scripts/tests/test_credit_conditions.py +59 -0
  81. package/.claude/skills/macro-regime-detector/scripts/tests/test_equity_bond.py +74 -0
  82. package/.claude/skills/macro-regime-detector/scripts/tests/test_helpers.py +90 -0
  83. package/.claude/skills/macro-regime-detector/scripts/tests/test_scorer.py +439 -0
  84. package/.claude/skills/macro-regime-detector/scripts/tests/test_sector_rotation.py +78 -0
  85. package/.claude/skills/macro-regime-detector/scripts/tests/test_size_factor.py +59 -0
  86. package/.claude/skills/macro-regime-detector/scripts/tests/test_utils.py +126 -0
  87. package/.claude/skills/macro-regime-detector/scripts/tests/test_yield_curve.py +64 -0
  88. package/.claude/skills/market-breadth-analyzer/SKILL.md +121 -0
  89. package/.claude/skills/market-breadth-analyzer/references/breadth_analysis_methodology.md +168 -0
  90. package/.claude/skills/market-breadth-analyzer/scripts/calculators/__init__.py +1 -0
  91. package/.claude/skills/market-breadth-analyzer/scripts/calculators/bearish_signal_calculator.py +150 -0
  92. package/.claude/skills/market-breadth-analyzer/scripts/calculators/cycle_calculator.py +168 -0
  93. package/.claude/skills/market-breadth-analyzer/scripts/calculators/divergence_calculator.py +119 -0
  94. package/.claude/skills/market-breadth-analyzer/scripts/calculators/historical_context_calculator.py +120 -0
  95. package/.claude/skills/market-breadth-analyzer/scripts/calculators/ma_crossover_calculator.py +115 -0
  96. package/.claude/skills/market-breadth-analyzer/scripts/calculators/trend_level_calculator.py +103 -0
  97. package/.claude/skills/market-breadth-analyzer/scripts/csv_client.py +225 -0
  98. package/.claude/skills/market-breadth-analyzer/scripts/market_breadth_analyzer.py +307 -0
  99. package/.claude/skills/market-breadth-analyzer/scripts/report_generator.py +330 -0
  100. package/.claude/skills/market-breadth-analyzer/scripts/scorer.py +271 -0
  101. package/.claude/skills/market-environment-analysis/SKILL.md +139 -0
  102. package/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  103. package/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
  104. package/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  105. package/.claude/skills/market-news-analyst/SKILL.md +714 -0
  106. package/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  107. package/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  108. package/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  109. package/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  110. package/.claude/skills/market-top-detector/SKILL.md +159 -0
  111. package/.claude/skills/market-top-detector/references/distribution_day_guide.md +100 -0
  112. package/.claude/skills/market-top-detector/references/historical_tops.md +142 -0
  113. package/.claude/skills/market-top-detector/references/market_top_methodology.md +167 -0
  114. package/.claude/skills/market-top-detector/scripts/calculators/__init__.py +17 -0
  115. package/.claude/skills/market-top-detector/scripts/calculators/breadth_calculator.py +116 -0
  116. package/.claude/skills/market-top-detector/scripts/calculators/defensive_rotation_calculator.py +127 -0
  117. package/.claude/skills/market-top-detector/scripts/calculators/distribution_day_calculator.py +161 -0
  118. package/.claude/skills/market-top-detector/scripts/calculators/index_technical_calculator.py +254 -0
  119. package/.claude/skills/market-top-detector/scripts/calculators/leading_stock_calculator.py +198 -0
  120. package/.claude/skills/market-top-detector/scripts/calculators/sentiment_calculator.py +213 -0
  121. package/.claude/skills/market-top-detector/scripts/fmp_client.py +158 -0
  122. package/.claude/skills/market-top-detector/scripts/market_top_detector.py +349 -0
  123. package/.claude/skills/market-top-detector/scripts/report_generator.py +314 -0
  124. package/.claude/skills/market-top-detector/scripts/scorer.py +473 -0
  125. package/.claude/skills/market-top-detector/scripts/tests/conftest.py +9 -0
  126. package/.claude/skills/market-top-detector/scripts/tests/helpers.py +49 -0
  127. package/.claude/skills/market-top-detector/scripts/tests/test_breadth.py +62 -0
  128. package/.claude/skills/market-top-detector/scripts/tests/test_defensive_rotation.py +56 -0
  129. package/.claude/skills/market-top-detector/scripts/tests/test_distribution_day.py +92 -0
  130. package/.claude/skills/market-top-detector/scripts/tests/test_index_technical.py +73 -0
  131. package/.claude/skills/market-top-detector/scripts/tests/test_leading_stock.py +57 -0
  132. package/.claude/skills/market-top-detector/scripts/tests/test_scorer.py +180 -0
  133. package/.claude/skills/market-top-detector/scripts/tests/test_sentiment.py +64 -0
  134. package/.claude/skills/options-strategy-advisor/README.md +469 -0
  135. package/.claude/skills/options-strategy-advisor/SKILL.md +959 -0
  136. package/.claude/skills/options-strategy-advisor/scripts/black_scholes.py +495 -0
  137. package/.claude/skills/pair-trade-screener/README.md +389 -0
  138. package/.claude/skills/pair-trade-screener/SKILL.md +622 -0
  139. package/.claude/skills/pair-trade-screener/references/cointegration_guide.md +745 -0
  140. package/.claude/skills/pair-trade-screener/references/methodology.md +853 -0
  141. package/.claude/skills/pair-trade-screener/scripts/analyze_spread.py +394 -0
  142. package/.claude/skills/pair-trade-screener/scripts/find_pairs.py +535 -0
  143. package/.claude/skills/portfolio-manager/README.md +394 -0
  144. package/.claude/skills/portfolio-manager/SKILL.md +750 -0
  145. package/.claude/skills/portfolio-manager/references/alpaca-mcp-setup.md +367 -0
  146. package/.claude/skills/portfolio-manager/references/asset-allocation.md +502 -0
  147. package/.claude/skills/portfolio-manager/references/diversification-principles.md +553 -0
  148. package/.claude/skills/portfolio-manager/references/portfolio-risk-metrics.md +603 -0
  149. package/.claude/skills/portfolio-manager/references/position-evaluation.md +477 -0
  150. package/.claude/skills/portfolio-manager/references/rebalancing-strategies.md +715 -0
  151. package/.claude/skills/portfolio-manager/references/risk-profile-questionnaire.md +608 -0
  152. package/.claude/skills/portfolio-manager/references/target-allocations.md +558 -0
  153. package/.claude/skills/portfolio-manager/scripts/test_alpaca_connection.py +286 -0
  154. package/.claude/skills/scenario-analyzer/SKILL.md +317 -0
  155. package/.claude/skills/scenario-analyzer/references/headline_event_patterns.md +264 -0
  156. package/.claude/skills/scenario-analyzer/references/scenario_playbooks.md +320 -0
  157. package/.claude/skills/scenario-analyzer/references/sector_sensitivity_matrix.md +217 -0
  158. package/.claude/skills/sector-analyst/SKILL.md +206 -0
  159. package/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  160. package/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  161. package/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  162. package/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
  163. package/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  164. package/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  165. package/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  166. package/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  167. package/.claude/skills/stock/NOTION_SETUP.md +33 -0
  168. package/.claude/skills/stock/SKILL.md +38 -0
  169. package/.claude/skills/technical-analyst/SKILL.md +238 -0
  170. package/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
  171. package/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  172. package/.claude/skills/theme-detector/SKILL.md +320 -0
  173. package/.claude/skills/theme-detector/assets/report_template.md +155 -0
  174. package/.claude/skills/theme-detector/references/cross_sector_themes.md +252 -0
  175. package/.claude/skills/theme-detector/references/finviz_industry_codes.md +403 -0
  176. package/.claude/skills/theme-detector/references/thematic_etf_catalog.md +333 -0
  177. package/.claude/skills/theme-detector/references/theme_detection_methodology.md +430 -0
  178. package/.claude/skills/theme-detector/scripts/calculators/__init__.py +1 -0
  179. package/.claude/skills/theme-detector/scripts/calculators/heat_calculator.py +123 -0
  180. package/.claude/skills/theme-detector/scripts/calculators/industry_ranker.py +98 -0
  181. package/.claude/skills/theme-detector/scripts/calculators/lifecycle_calculator.py +172 -0
  182. package/.claude/skills/theme-detector/scripts/calculators/theme_classifier.py +195 -0
  183. package/.claude/skills/theme-detector/scripts/calculators/theme_discoverer.py +280 -0
  184. package/.claude/skills/theme-detector/scripts/config_loader.py +142 -0
  185. package/.claude/skills/theme-detector/scripts/default_theme_config.py +254 -0
  186. package/.claude/skills/theme-detector/scripts/etf_scanner.py +609 -0
  187. package/.claude/skills/theme-detector/scripts/finviz_performance_client.py +131 -0
  188. package/.claude/skills/theme-detector/scripts/report_generator.py +490 -0
  189. package/.claude/skills/theme-detector/scripts/representative_stock_selector.py +673 -0
  190. package/.claude/skills/theme-detector/scripts/scorer.py +87 -0
  191. package/.claude/skills/theme-detector/scripts/tests/README.md +21 -0
  192. package/.claude/skills/theme-detector/scripts/tests/conftest.py +9 -0
  193. package/.claude/skills/theme-detector/scripts/tests/test_config_loader.py +239 -0
  194. package/.claude/skills/theme-detector/scripts/tests/test_etf_scanner.py +810 -0
  195. package/.claude/skills/theme-detector/scripts/tests/test_heat_calculator.py +245 -0
  196. package/.claude/skills/theme-detector/scripts/tests/test_industry_ranker.py +256 -0
  197. package/.claude/skills/theme-detector/scripts/tests/test_lifecycle_calculator.py +301 -0
  198. package/.claude/skills/theme-detector/scripts/tests/test_report_generator.py +624 -0
  199. package/.claude/skills/theme-detector/scripts/tests/test_representative_stock_selector.py +898 -0
  200. package/.claude/skills/theme-detector/scripts/tests/test_scorer.py +185 -0
  201. package/.claude/skills/theme-detector/scripts/tests/test_theme_classifier.py +534 -0
  202. package/.claude/skills/theme-detector/scripts/tests/test_theme_detector_e2e.py +467 -0
  203. package/.claude/skills/theme-detector/scripts/tests/test_theme_discoverer.py +458 -0
  204. package/.claude/skills/theme-detector/scripts/tests/test_uptrend_client.py +76 -0
  205. package/.claude/skills/theme-detector/scripts/theme_detector.py +815 -0
  206. package/.claude/skills/theme-detector/scripts/themes.yaml +168 -0
  207. package/.claude/skills/theme-detector/scripts/uptrend_client.py +241 -0
  208. package/.claude/skills/uptrend-analyzer/SKILL.md +108 -0
  209. package/.claude/skills/uptrend-analyzer/references/uptrend_methodology.md +215 -0
  210. package/.claude/skills/uptrend-analyzer/scripts/calculators/__init__.py +1 -0
  211. package/.claude/skills/uptrend-analyzer/scripts/calculators/historical_context_calculator.py +122 -0
  212. package/.claude/skills/uptrend-analyzer/scripts/calculators/market_breadth_calculator.py +145 -0
  213. package/.claude/skills/uptrend-analyzer/scripts/calculators/momentum_calculator.py +183 -0
  214. package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_participation_calculator.py +204 -0
  215. package/.claude/skills/uptrend-analyzer/scripts/calculators/sector_rotation_calculator.py +218 -0
  216. package/.claude/skills/uptrend-analyzer/scripts/data_fetcher.py +236 -0
  217. package/.claude/skills/uptrend-analyzer/scripts/report_generator.py +329 -0
  218. package/.claude/skills/uptrend-analyzer/scripts/scorer.py +276 -0
  219. package/.claude/skills/uptrend-analyzer/scripts/uptrend_analyzer.py +219 -0
  220. package/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  221. package/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
  222. package/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  223. package/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  224. package/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  225. package/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  226. package/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  227. package/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  228. package/.claude/skills/us-stock-analysis/SKILL.md +294 -0
  229. package/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  230. package/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  231. package/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
  232. package/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  233. package/.claude/skills/value-dividend-screener/SKILL.md +562 -0
  234. package/.claude/skills/value-dividend-screener/references/fmp_api_guide.md +348 -0
  235. package/.claude/skills/value-dividend-screener/references/screening_methodology.md +315 -0
  236. package/.claude/skills/value-dividend-screener/scripts/screen_dividend_stocks.py +1138 -0
  237. package/.claude/skills/vcp-screener/SKILL.md +79 -0
  238. package/.claude/skills/vcp-screener/references/fmp_api_endpoints.md +45 -0
  239. package/.claude/skills/vcp-screener/references/scoring_system.md +154 -0
  240. package/.claude/skills/vcp-screener/references/vcp_methodology.md +124 -0
  241. package/.claude/skills/vcp-screener/scripts/calculators/__init__.py +1 -0
  242. package/.claude/skills/vcp-screener/scripts/calculators/pivot_proximity_calculator.py +139 -0
  243. package/.claude/skills/vcp-screener/scripts/calculators/relative_strength_calculator.py +161 -0
  244. package/.claude/skills/vcp-screener/scripts/calculators/trend_template_calculator.py +228 -0
  245. package/.claude/skills/vcp-screener/scripts/calculators/vcp_pattern_calculator.py +322 -0
  246. package/.claude/skills/vcp-screener/scripts/calculators/volume_pattern_calculator.py +121 -0
  247. package/.claude/skills/vcp-screener/scripts/fmp_client.py +162 -0
  248. package/.claude/skills/vcp-screener/scripts/report_generator.py +317 -0
  249. package/.claude/skills/vcp-screener/scripts/scorer.py +155 -0
  250. package/.claude/skills/vcp-screener/scripts/screen_vcp.py +536 -0
  251. package/.claude/skills/vcp-screener/scripts/tests/__init__.py +0 -0
  252. package/.claude/skills/vcp-screener/scripts/tests/conftest.py +9 -0
  253. package/.claude/skills/vcp-screener/scripts/tests/test_vcp_screener.py +834 -0
  254. package/.claude/skills/weekly-trade-strategy/.claude/agents/druckenmiller-strategy-planner.md +300 -0
  255. package/.claude/skills/weekly-trade-strategy/.claude/agents/market-news-analyzer.md +239 -0
  256. package/.claude/skills/weekly-trade-strategy/.claude/agents/technical-market-analyst.md +187 -0
  257. package/.claude/skills/weekly-trade-strategy/.claude/agents/us-market-analyst.md +218 -0
  258. package/.claude/skills/weekly-trade-strategy/.claude/agents/weekly-trade-blog-writer.md +318 -0
  259. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/SKILL.md +662 -0
  260. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  261. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  262. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  263. package/.claude/skills/weekly-trade-strategy/.claude/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  264. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/SKILL.md +721 -0
  265. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  266. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
  267. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  268. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  269. package/.claude/skills/weekly-trade-strategy/.claude/skills/earnings-calendar/scripts/generate_report.py +366 -0
  270. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/SKILL.md +365 -0
  271. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  272. package/.claude/skills/weekly-trade-strategy/.claude/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  273. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/SKILL.md +139 -0
  274. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  275. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/references/indicators.md +99 -0
  276. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  277. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/SKILL.md +714 -0
  278. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  279. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  280. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  281. package/.claude/skills/weekly-trade-strategy/.claude/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  282. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/SKILL.md +206 -0
  283. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  284. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  285. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  286. package/.claude/skills/weekly-trade-strategy/.claude/skills/sector-analyst/references/sector_rotation.md +170 -0
  287. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  288. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  289. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  290. package/.claude/skills/weekly-trade-strategy/.claude/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  291. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/SKILL.md +238 -0
  292. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/assets/analysis_template.md +183 -0
  293. package/.claude/skills/weekly-trade-strategy/.claude/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  294. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  295. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/SKILL.md +545 -0
  296. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  297. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  298. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  299. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  300. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  301. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  302. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/SKILL.md +294 -0
  303. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  304. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  305. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/report-template.md +207 -0
  306. package/.claude/skills/weekly-trade-strategy/.claude/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  307. package/.claude/skills/weekly-trade-strategy/CLAUDE.md +454 -0
  308. package/.claude/skills/weekly-trade-strategy/README.md +287 -0
  309. package/.claude/skills/weekly-trade-strategy/blogs/.gitkeep +0 -0
  310. package/.claude/skills/weekly-trade-strategy/charts/.gitkeep +0 -0
  311. package/.claude/skills/weekly-trade-strategy/earnings_data.json +10054 -0
  312. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/SKILL.md +662 -0
  313. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/SP500_Breadth_Index_200MA_8MA.jpeg +0 -0
  314. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/US_Stock_Market_Uptrend_Ratio.jpeg +0 -0
  315. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/assets/breadth_analysis_template.md +558 -0
  316. package/.claude/skills/weekly-trade-strategy/skills/breadth-chart-analyst/references/breadth_chart_methodology.md +590 -0
  317. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/SKILL.md +721 -0
  318. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/assets/earnings_report_template.md +102 -0
  319. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/earnings_calendar_2025-11-02.md +447 -0
  320. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/references/fmp_api_guide.md +590 -0
  321. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/fetch_earnings_fmp.py +443 -0
  322. package/.claude/skills/weekly-trade-strategy/skills/earnings-calendar/scripts/generate_report.py +366 -0
  323. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/SKILL.md +365 -0
  324. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/references/fmp_api_documentation.md +345 -0
  325. package/.claude/skills/weekly-trade-strategy/skills/economic-calendar-fetcher/scripts/get_economic_calendar.py +267 -0
  326. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/SKILL.md +139 -0
  327. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/analysis_patterns.md +124 -0
  328. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/references/indicators.md +99 -0
  329. package/.claude/skills/weekly-trade-strategy/skills/market-environment-analysis/scripts/market_utils.py +127 -0
  330. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/SKILL.md +714 -0
  331. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/corporate_news_impact.md +446 -0
  332. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/geopolitical_commodity_correlations.md +499 -0
  333. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/market_event_patterns.md +393 -0
  334. package/.claude/skills/weekly-trade-strategy/skills/market-news-analyst/references/trusted_news_sources.md +510 -0
  335. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/SKILL.md +206 -0
  336. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_1.jpeg +0 -0
  337. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/industory_performance_2.jpeg +0 -0
  338. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/assets/sector_performance.jpeg +0 -0
  339. package/.claude/skills/weekly-trade-strategy/skills/sector-analyst/references/sector_rotation.md +170 -0
  340. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/SKILL.md +84 -0
  341. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/case-studies.md +148 -0
  342. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/investment-philosophy.md +80 -0
  343. package/.claude/skills/weekly-trade-strategy/skills/stanley-druckenmiller-investment/references/market-analysis-guide.md +146 -0
  344. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/SKILL.md +238 -0
  345. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/assets/analysis_template.md +183 -0
  346. package/.claude/skills/weekly-trade-strategy/skills/technical-analyst/references/technical_analysis_framework.md +282 -0
  347. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/CHANGELOG.md +118 -0
  348. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/SKILL.md +545 -0
  349. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/bubble_framework.md +335 -0
  350. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/historical_cases.md +327 -0
  351. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/implementation_guide.md +473 -0
  352. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference.md +354 -0
  353. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/references/quick_reference_en.md +342 -0
  354. package/.claude/skills/weekly-trade-strategy/skills/us-market-bubble-detector/scripts/bubble_scorer.py +309 -0
  355. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/SKILL.md +294 -0
  356. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/financial-metrics.md +172 -0
  357. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/fundamental-analysis.md +129 -0
  358. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/report-template.md +207 -0
  359. package/.claude/skills/weekly-trade-strategy/skills/us-stock-analysis/references/technical-analysis.md +93 -0
  360. package/.mcp.json +3 -0
  361. package/cli.mjs +16 -16
  362. package/package.json +4 -2
@@ -0,0 +1,608 @@
1
+ # Risk Profile Questionnaire
2
+
3
+ This document provides a framework for assessing investor risk tolerance and determining appropriate target asset allocation.
4
+
5
+ ## Overview
6
+
7
+ Risk profile assessment helps answer:
8
+ 1. How much volatility can the investor handle emotionally?
9
+ 2. How much loss can they afford financially?
10
+ 3. What allocation matches their risk capacity and tolerance?
11
+ 4. What expected return do they need to meet goals?
12
+
13
+ **Three Components of Risk Assessment:**
14
+
15
+ 1. **Risk Capacity** - Financial ability to withstand losses (objective)
16
+ 2. **Risk Tolerance** - Emotional willingness to accept volatility (subjective)
17
+ 3. **Risk Requirement** - Return needed to achieve goals (objective)
18
+
19
+ Optimal allocation balances all three components.
20
+
21
+ ## Risk Capacity Assessment (Financial)
22
+
23
+ Risk capacity is determined by objective financial factors:
24
+
25
+ ### 1. Time Horizon
26
+
27
+ **Question:** When will you need to withdraw a significant portion of this portfolio?
28
+
29
+ | Answer | Years | Risk Capacity | Typical Allocation |
30
+ |--------|-------|---------------|-------------------|
31
+ | **A.** Retired, currently withdrawing | 0-3 | Very Low | 20-30% stocks |
32
+ | **B.** Retiring soon | 3-5 | Low | 30-40% stocks |
33
+ | **C.** Mid-career, 10-15 years | 10-15 | Medium | 50-70% stocks |
34
+ | **D.** Early career, 20+ years | 20-30 | High | 70-85% stocks |
35
+ | **E.** Very young, 30+ years | 30+ | Very High | 85-100% stocks |
36
+
37
+ **Scoring:**
38
+ - A = 1 point
39
+ - B = 2 points
40
+ - C = 3 points
41
+ - D = 4 points
42
+ - E = 5 points
43
+
44
+ **Rationale:** Longer time horizons allow recovery from market downturns, supporting higher equity allocation.
45
+
46
+ ### 2. Income Stability
47
+
48
+ **Question:** How stable and predictable is your income?
49
+
50
+ | Answer | Risk Capacity Impact |
51
+ |--------|---------------------|
52
+ | **A.** Fixed pension or annuity (very stable) | Very High (can handle portfolio volatility) |
53
+ | **B.** Stable salary, secure job | High |
54
+ | **C.** Salary with some variability | Medium |
55
+ | **D.** Commission or bonus-heavy | Low |
56
+ | **E.** Entrepreneur/self-employed | Low (income correlates with markets) |
57
+
58
+ **Scoring:**
59
+ - A = 5 points
60
+ - B = 4 points
61
+ - C = 3 points
62
+ - D = 2 points
63
+ - E = 2 points (or 1 if business is cyclical)
64
+
65
+ **Rationale:** Stable income allows taking more risk in portfolio; variable income requires conservative portfolio as ballast.
66
+
67
+ ### 3. Net Worth and Liquidity
68
+
69
+ **Question:** What percentage of your total net worth is this investment portfolio? (Exclude home equity and retirement accounts you can't access)
70
+
71
+ | Answer | Risk Capacity Impact |
72
+ |--------|---------------------|
73
+ | **A.** Less than 25% (most wealth elsewhere) | Very High |
74
+ | **B.** 25-50% | High |
75
+ | **C.** 50-75% | Medium |
76
+ | **D.** 75-90% | Low |
77
+ | **E.** Over 90% (nearly all wealth) | Very Low |
78
+
79
+ **Scoring:**
80
+ - A = 5 points
81
+ - B = 4 points
82
+ - C = 3 points
83
+ - D = 2 points
84
+ - E = 1 point
85
+
86
+ **Rationale:** If portfolio represents most of your wealth, you can't afford large losses. Diversified wealth allows higher risk in this account.
87
+
88
+ ### 4. Emergency Fund Status
89
+
90
+ **Question:** Do you have a separate emergency fund (3-6 months expenses) outside this portfolio?
91
+
92
+ | Answer | Risk Capacity Impact |
93
+ |--------|---------------------|
94
+ | **A.** Yes, fully funded (6+ months) | High (no need to tap portfolio) |
95
+ | **B.** Partially funded (3-4 months) | Medium |
96
+ | **C.** No, this portfolio is my emergency fund | Low (need liquidity) |
97
+
98
+ **Scoring:**
99
+ - A = 5 points
100
+ - B = 3 points
101
+ - C = 1 point
102
+
103
+ **Rationale:** Emergency fund prevents forced liquidation at market lows; its absence requires higher cash allocation.
104
+
105
+ ### 5. Debt Level
106
+
107
+ **Question:** What is your debt situation?
108
+
109
+ | Answer | Risk Capacity Impact |
110
+ |--------|---------------------|
111
+ | **A.** No debt (or only mortgage) | High |
112
+ | **B.** Moderate debt, manageable payments | Medium |
113
+ | **C.** High debt, significant payments | Low |
114
+ | **D.** High-interest debt (credit cards) | Very Low |
115
+
116
+ **Scoring:**
117
+ - A = 5 points
118
+ - B = 3 points
119
+ - C = 2 points
120
+ - D = 1 point
121
+
122
+ **Rationale:** High debt reduces capacity to handle portfolio losses; paying down debt may be better use of funds than risky investments.
123
+
124
+ **Risk Capacity Score (Financial):**
125
+ ```
126
+ Total Points: ___ / 25
127
+
128
+ 20-25 points: Very High Capacity (can handle 80-100% stocks)
129
+ 15-19 points: High Capacity (60-80% stocks)
130
+ 10-14 points: Medium Capacity (40-60% stocks)
131
+ 5-9 points: Low Capacity (20-40% stocks)
132
+ 0-4 points: Very Low Capacity (0-20% stocks)
133
+ ```
134
+
135
+ ## Risk Tolerance Assessment (Emotional/Behavioral)
136
+
137
+ Risk tolerance is subjective - how much volatility can you handle emotionally?
138
+
139
+ ### 1. Loss Reaction
140
+
141
+ **Question:** If your $100,000 portfolio dropped to $80,000 (-20%) in a market crash, how would you react?
142
+
143
+ | Answer | Risk Tolerance |
144
+ |--------|----------------|
145
+ | **A.** Panic, sell everything, can't sleep at night | Very Low |
146
+ | **B.** Very concerned, consider selling | Low |
147
+ | **C.** Uncomfortable but hold steady | Medium |
148
+ | **D.** Stay calm, stick to plan | High |
149
+ | **E.** Excited, buy more at lower prices | Very High |
150
+
151
+ **Scoring:**
152
+ - A = 1 point
153
+ - B = 2 points
154
+ - C = 3 points
155
+ - D = 4 points
156
+ - E = 5 points
157
+
158
+ ### 2. Historical Behavior
159
+
160
+ **Question:** Have you experienced a major market downturn (2008, 2020)? How did you react?
161
+
162
+ | Answer | Risk Tolerance |
163
+ |--------|----------------|
164
+ | **A.** Sold stocks near the bottom, locked in losses | Very Low |
165
+ | **B.** Reduced equity exposure significantly | Low |
166
+ | **C.** Held steady, didn't trade | Medium |
167
+ | **D.** Held steady and added to stocks | High |
168
+ | **E.** Increased equity exposure significantly | Very High |
169
+ | **F.** Haven't experienced a major downturn yet | Unknown (rate yourself hypothetically) |
170
+
171
+ **Scoring:**
172
+ - A = 1 point
173
+ - B = 2 points
174
+ - C = 3 points
175
+ - D = 4 points
176
+ - E = 5 points
177
+ - F = Use answer to Question 1
178
+
179
+ **Insight:** Past behavior is the best predictor of future behavior. If you sold in prior crashes, you likely will again.
180
+
181
+ ### 3. Sleep Test
182
+
183
+ **Question:** What is the largest portfolio decline you could tolerate without losing sleep?
184
+
185
+ | Answer | Drawdown Tolerance | Risk Tolerance | Suitable Allocation |
186
+ |--------|-------------------|----------------|---------------------|
187
+ | **A.** -5% | Very Low | Very Low | 20% stocks |
188
+ | **B.** -10% | Low | Low | 30-40% stocks |
189
+ | **C.** -15% | Medium-Low | Medium-Low | 40-50% stocks |
190
+ | **D.** -20% | Medium | Medium | 50-60% stocks |
191
+ | **E.** -25% | Medium-High | Medium-High | 60-70% stocks |
192
+ | **F.** -30% | High | High | 70-80% stocks |
193
+ | **G.** -40% or more | Very High | Very High | 80-100% stocks |
194
+
195
+ **Scoring:**
196
+ - A = 1 point
197
+ - B = 2 points
198
+ - C = 2.5 points
199
+ - D = 3 points
200
+ - E = 3.5 points
201
+ - F = 4 points
202
+ - G = 5 points
203
+
204
+ **Key Insight:** This is the most important question. Be honest - what loss would cause you to sell in panic?
205
+
206
+ ### 4. Investment Timeframe and Patience
207
+
208
+ **Question:** If your portfolio underperformed the market for 3 years straight, would you:
209
+
210
+ | Answer | Risk Tolerance |
211
+ |--------|----------------|
212
+ | **A.** Immediately switch to index funds | Very Low |
213
+ | **B.** Re-evaluate and likely make changes within 6 months | Low |
214
+ | **C.** Review carefully, make changes if thesis broken | Medium |
215
+ | **D.** Stay patient, 3 years is short-term | High |
216
+ | **E.** Add more, contrarian opportunity | Very High |
217
+
218
+ **Scoring:**
219
+ - A = 1 point
220
+ - B = 2 points
221
+ - C = 3 points
222
+ - D = 4 points
223
+ - E = 5 points
224
+
225
+ ### 5. Volatility Preference
226
+
227
+ **Question:** Which investment would you prefer?
228
+
229
+ | Option | Expected Return | Possible Outcomes | Risk Level |
230
+ |--------|----------------|-------------------|------------|
231
+ | **A.** Conservative | 4% per year | Range: 2% to 6% | Very Low |
232
+ | **B.** Moderate | 6% per year | Range: -5% to 15% | Low |
233
+ | **C.** Balanced | 8% per year | Range: -10% to 25% | Medium |
234
+ | **D.** Growth | 10% per year | Range: -20% to 40% | High |
235
+ | **E.** Aggressive | 12% per year | Range: -35% to 60% | Very High |
236
+
237
+ **Scoring:**
238
+ - A = 1 point
239
+ - B = 2 points
240
+ - C = 3 points
241
+ - D = 4 points
242
+ - E = 5 points
243
+
244
+ **Risk Tolerance Score (Emotional):**
245
+ ```
246
+ Total Points: ___ / 25
247
+
248
+ 20-25 points: Very High Tolerance (comfortable with 80-100% stocks)
249
+ 15-19 points: High Tolerance (comfortable with 60-80% stocks)
250
+ 10-14 points: Medium Tolerance (comfortable with 40-60% stocks)
251
+ 5-9 points: Low Tolerance (comfortable with 20-40% stocks)
252
+ 0-4 points: Very Low Tolerance (comfortable with 0-20% stocks)
253
+ ```
254
+
255
+ ## Risk Requirement Assessment (Goals)
256
+
257
+ Risk requirement is determined by what return you need to achieve financial goals.
258
+
259
+ ### 1. Return Needed
260
+
261
+ **Question:** What annual return do you need to meet your financial goals?
262
+
263
+ Calculate: Required Return = (Future Goal - Current Savings) / (Years × Current Savings)
264
+
265
+ Simplified Self-Assessment:
266
+
267
+ | Required Return | Risk Requirement | Suitable Allocation |
268
+ |----------------|-----------------|---------------------|
269
+ | **< 4%** | Low (bonds/cash sufficient) | 20-40% stocks |
270
+ | **4-6%** | Medium-Low (conservative stocks work) | 40-60% stocks |
271
+ | **6-8%** | Medium (balanced portfolio) | 60-70% stocks |
272
+ | **8-10%** | Medium-High (equity-heavy) | 70-85% stocks |
273
+ | **> 10%** | High (aggressive growth) | 85-100% stocks |
274
+
275
+ **Scoring:**
276
+ - <4% = 1 point
277
+ - 4-6% = 2 points
278
+ - 6-8% = 3 points
279
+ - 8-10% = 4 points
280
+ - >10% = 5 points
281
+
282
+ ### 2. Savings Rate
283
+
284
+ **Question:** Are you contributing regularly to this portfolio?
285
+
286
+ | Answer | Risk Requirement Impact |
287
+ |--------|------------------------|
288
+ | **A.** High savings rate (>20% of income) | Low (can achieve goals with lower returns) |
289
+ | **B.** Moderate savings rate (10-20%) | Medium |
290
+ | **C.** Low savings rate (<10%) | High (need higher returns) |
291
+ | **D.** No contributions, portfolio must grow itself | Very High |
292
+ | **E.** Net withdrawing from portfolio | N/A (preservation focus) |
293
+
294
+ **Scoring:**
295
+ - A = 1 point (don't need high risk)
296
+ - B = 2 points
297
+ - C = 4 points (need higher returns)
298
+ - D = 5 points
299
+ - E = 1 point (focus shifts to preservation)
300
+
301
+ **Rationale:** High savings rate means goals can be met with lower investment returns; low savings requires taking more risk.
302
+
303
+ ### 3. Goal Flexibility
304
+
305
+ **Question:** How flexible are your financial goals?
306
+
307
+ | Answer | Risk Requirement Impact |
308
+ |--------|------------------------|
309
+ | **A.** Very flexible (can delay retirement, reduce spending) | Low (can afford conservative approach) |
310
+ | **B.** Somewhat flexible | Medium |
311
+ | **C.** Not flexible (specific retirement date, fixed expenses) | High (must meet return target) |
312
+
313
+ **Scoring:**
314
+ - A = 1 point
315
+ - B = 3 points
316
+ - C = 5 points
317
+
318
+ **Risk Requirement Score:**
319
+ ```
320
+ Total Points: ___ / 15
321
+
322
+ 12-15 points: High Requirement (need 70-100% stocks)
323
+ 9-11 points: Medium-High Requirement (need 60-80% stocks)
324
+ 6-8 points: Medium Requirement (need 40-60% stocks)
325
+ 3-5 points: Low Requirement (need 20-40% stocks)
326
+ 0-2 points: Very Low Requirement (can use conservative allocation)
327
+ ```
328
+
329
+ ## Synthesizing the Three Assessments
330
+
331
+ ### Step 1: Calculate Component Scores
332
+
333
+ ```
334
+ Risk Capacity Score: ___ / 25 → Convert to 1-5 scale = ___
335
+ Risk Tolerance Score: ___ / 25 → Convert to 1-5 scale = ___
336
+ Risk Requirement Score: ___ / 15 → Convert to 1-5 scale = ___
337
+ ```
338
+
339
+ **Conversion Table:**
340
+
341
+ | Raw Score (out of max) | Converted Score (1-5) |
342
+ |------------------------|----------------------|
343
+ | 0-20% | 1 |
344
+ | 21-40% | 2 |
345
+ | 41-60% | 3 |
346
+ | 61-80% | 4 |
347
+ | 81-100% | 5 |
348
+
349
+ ### Step 2: Determine Overall Risk Profile
350
+
351
+ **Method 1: Conservative (Recommended for Most Investors)**
352
+
353
+ Use the **lowest** of the three scores. This ensures you don't take more risk than you can handle.
354
+
355
+ ```
356
+ Risk Capacity: 4
357
+ Risk Tolerance: 2 ← Lowest
358
+ Risk Requirement: 4
359
+
360
+ Overall Risk Profile: 2 (Low)
361
+ Recommended Allocation: 30-40% stocks
362
+ ```
363
+
364
+ **Rationale:** If emotional tolerance is low (2), it doesn't matter that capacity and requirement are higher - investor will sell in panic during crash.
365
+
366
+ **Method 2: Balanced**
367
+
368
+ Use the **average** of the three scores.
369
+
370
+ ```
371
+ Risk Capacity: 4
372
+ Risk Tolerance: 2
373
+ Risk Requirement: 4
374
+
375
+ Average: (4 + 2 + 4) / 3 = 3.33 → 3 (Medium)
376
+ Recommended Allocation: 50-60% stocks
377
+ ```
378
+
379
+ **Rationale:** Balances all factors, may take slightly more risk than emotional tolerance suggests.
380
+
381
+ **Method 3: Adaptive**
382
+
383
+ Weight the scores based on individual circumstances:
384
+
385
+ ```
386
+ Typical weighting:
387
+ Risk Tolerance: 50% (most important - behavioral)
388
+ Risk Capacity: 30% (financial constraints)
389
+ Risk Requirement: 20% (goals)
390
+
391
+ Example:
392
+ Capacity: 4 × 0.30 = 1.2
393
+ Tolerance: 2 × 0.50 = 1.0
394
+ Requirement: 4 × 0.20 = 0.8
395
+
396
+ Weighted Score: 1.2 + 1.0 + 0.8 = 3.0 (Medium)
397
+ ```
398
+
399
+ ### Step 3: Map to Asset Allocation
400
+
401
+ | Overall Risk Score | Risk Profile | Recommended Stocks % | Recommended Bonds % |
402
+ |-------------------|--------------|---------------------|---------------------|
403
+ | **1.0 - 1.5** | Very Low (Conservative) | 20-30% | 60-70% |
404
+ | **1.6 - 2.5** | Low (Conservative) | 30-40% | 50-60% |
405
+ | **2.6 - 3.5** | Medium (Moderate) | 50-60% | 35-45% |
406
+ | **3.6 - 4.5** | High (Growth) | 70-80% | 15-25% |
407
+ | **4.6 - 5.0** | Very High (Aggressive) | 85-100% | 0-10% |
408
+
409
+ ### Step 4: Resolve Conflicts
410
+
411
+ **Conflict Example:**
412
+
413
+ ```
414
+ Risk Capacity: 5 (Very High - young, stable income, long horizon)
415
+ Risk Tolerance: 2 (Low - can't handle volatility emotionally)
416
+ Risk Requirement: 4 (High - need high returns to meet goals)
417
+ ```
418
+
419
+ **Resolution:**
420
+
421
+ This investor **needs** to take risk (requirement), **can** take risk (capacity), but **can't handle** risk emotionally (tolerance).
422
+
423
+ **Options:**
424
+
425
+ 1. **Conservative approach (Recommended):**
426
+ - Use risk tolerance as limit (30-40% stocks)
427
+ - Accept that goals may not be met with investment returns alone
428
+ - Increase savings rate to compensate for lower returns
429
+ - Work longer or reduce spending goals
430
+
431
+ 2. **Education approach:**
432
+ - Work on improving risk tolerance through education
433
+ - Start with moderate allocation (50% stocks)
434
+ - Gradually increase equity exposure as comfort grows
435
+ - Build tolerance through experience
436
+
437
+ 3. **Mismatch acceptance (Not Recommended):**
438
+ - Use higher allocation (70%+ stocks) despite low tolerance
439
+ - **Risk:** Will likely panic-sell in crash, locking in losses
440
+ - **Outcome:** Worst of both worlds - volatility AND poor returns
441
+
442
+ **Best Practice:** Never exceed emotional risk tolerance. If goals can't be met with acceptable risk level, adjust goals or increase savings.
443
+
444
+ ## Risk Profile Classification
445
+
446
+ ### Conservative Profile (Risk Score: 1-2)
447
+
448
+ **Characteristics:**
449
+ - Low risk tolerance (can't handle >10-15% loss)
450
+ - Near retirement or retired
451
+ - Portfolio represents most of wealth
452
+ - Needs capital preservation and income
453
+
454
+ **Recommended Allocation:** 20-40% stocks, 60-80% bonds
455
+
456
+ **Behavioral Tendencies:**
457
+ - May sell stocks during corrections (>10% drop)
458
+ - Prefers stability over growth
459
+ - Anxious about volatility
460
+ - Needs reassurance during downturns
461
+
462
+ **Management Approach:**
463
+ - Conservative allocation with high bond allocation
464
+ - Focus on dividend income and bond interest
465
+ - Avoid volatile stocks (high-beta tech)
466
+ - Regular communication during volatility
467
+ - Emphasis on stability and capital preservation
468
+
469
+ ### Moderate Profile (Risk Score: 2.6-3.5)
470
+
471
+ **Characteristics:**
472
+ - Medium risk tolerance (can handle 15-25% loss)
473
+ - Mid-career, 10-20 year horizon
474
+ - Balanced income and growth needs
475
+ - Some anxiety about volatility but can stay the course
476
+
477
+ **Recommended Allocation:** 50-60% stocks, 35-45% bonds
478
+
479
+ **Behavioral Tendencies:**
480
+ - May consider selling in bear markets but likely holds
481
+ - Wants growth but also wants to sleep at night
482
+ - Seeks balanced approach
483
+ - Needs data and reassurance during volatility
484
+
485
+ **Management Approach:**
486
+ - Balanced portfolio with stock and bond components
487
+ - Diversified across sectors and asset classes
488
+ - Regular rebalancing to maintain targets
489
+ - Education on long-term perspective
490
+ - Quarterly reviews with clear communication
491
+
492
+ ### Growth Profile (Risk Score: 3.6-4.5)
493
+
494
+ **Characteristics:**
495
+ - High risk tolerance (can handle 25-35% loss)
496
+ - Long time horizon (15-30 years)
497
+ - Focus on capital appreciation
498
+ - Emotionally stable during volatility
499
+
500
+ **Recommended Allocation:** 70-80% stocks, 15-25% bonds
501
+
502
+ **Behavioral Tendencies:**
503
+ - Stays invested during downturns
504
+ - May add to stocks during corrections
505
+ - Comfortable with volatility
506
+ - Understands risk/reward tradeoffs
507
+
508
+ **Management Approach:**
509
+ - Equity-heavy portfolio with growth focus
510
+ - Diversified across sectors and geographies
511
+ - Limited bond allocation (volatility dampening only)
512
+ - Emphasis on long-term performance
513
+ - Semi-annual or annual reviews
514
+
515
+ ### Aggressive Profile (Risk Score: 4.6-5.0)
516
+
517
+ **Characteristics:**
518
+ - Very high risk tolerance (can handle >35% loss)
519
+ - Very long time horizon (25+ years)
520
+ - Seeks maximum growth
521
+ - Views volatility as opportunity
522
+
523
+ **Recommended Allocation:** 85-100% stocks, 0-10% bonds
524
+
525
+ **Behavioral Tendencies:**
526
+ - Buys during crashes
527
+ - Comfortable with extreme volatility
528
+ - Focuses on long-term compounding
529
+ - Rational decision-making during panic
530
+
531
+ **Management Approach:**
532
+ - Equity-focused or 100% equity portfolio
533
+ - Growth-oriented stock selection
534
+ - International and emerging market exposure
535
+ - Minimal to no bonds
536
+ - Annual reviews with emphasis on strategy
537
+
538
+ ## Questionnaire Summary
539
+
540
+ Use this simplified questionnaire for quick assessment:
541
+
542
+ ```
543
+ INVESTOR RISK PROFILE QUESTIONNAIRE
544
+
545
+ Name: _______________ Date: _______________
546
+
547
+ 1. Age: ___ → Time horizon: ___ years
548
+
549
+ 2. Investment time horizon before major withdrawal:
550
+ [ ] 0-5 years [ ] 5-10 years [ ] 10-20 years [ ] 20+ years
551
+
552
+ 3. What is the maximum portfolio decline you could tolerate?
553
+ [ ] -5% [ ] -10% [ ] -15% [ ] -20% [ ] -30% [ ] -40%+
554
+
555
+ 4. Income stability:
556
+ [ ] Very stable (pension) [ ] Stable (salary) [ ] Variable (commission/business)
557
+
558
+ 5. This portfolio represents what % of your net worth?
559
+ [ ] <25% [ ] 25-50% [ ] 50-75% [ ] >75%
560
+
561
+ 6. Emergency fund status:
562
+ [ ] Fully funded (6+ months) [ ] Partial (3 months) [ ] None
563
+
564
+ 7. If market crashed 25%, would you:
565
+ [ ] Panic sell [ ] Sell some [ ] Hold steady [ ] Buy more
566
+
567
+ 8. Investment experience with bear markets:
568
+ [ ] Never experienced [ ] Experienced, sold stocks [ ] Experienced, held [ ] Experienced, bought more
569
+
570
+ 9. Return needed to meet goals:
571
+ [ ] <4% [ ] 4-6% [ ] 6-8% [ ] 8-10% [ ] >10%
572
+
573
+ 10. Primary investment objective:
574
+ [ ] Capital preservation [ ] Income [ ] Balanced growth & income [ ] Growth [ ] Aggressive growth
575
+
576
+ SCORING & RECOMMENDATION:
577
+
578
+ Risk Capacity Score: ___ / 25
579
+ Risk Tolerance Score: ___ / 25
580
+ Risk Requirement Score: ___ / 15
581
+
582
+ Overall Risk Profile: [ ] Conservative [ ] Moderate [ ] Growth [ ] Aggressive
583
+
584
+ Recommended Allocation:
585
+ Stocks: ___%
586
+ Bonds: ___%
587
+ Cash: ___%
588
+
589
+ Notes:
590
+ ________________________________________________________________
591
+ ________________________________________________________________
592
+ ________________________________________________________________
593
+
594
+ Advisor Signature: _______________ Client Signature: _______________
595
+ ```
596
+
597
+ ## Summary
598
+
599
+ **Key Principles:**
600
+
601
+ 1. **Three-dimensional assessment:** Capacity, Tolerance, Requirement
602
+ 2. **Tolerance is the constraint:** Never exceed emotional tolerance
603
+ 3. **Honest self-assessment:** Past behavior predicts future behavior
604
+ 4. **Resolve conflicts conservatively:** When scores conflict, use lowest
605
+ 5. **Periodic reassessment:** Risk profile changes with age and circumstances
606
+ 6. **Allocation must match profile:** Mismatch leads to behavioral errors
607
+
608
+ **Remember:** The best allocation is one you can stick with through market cycles. It's better to have a moderate allocation you can maintain than an aggressive allocation you'll abandon in a crash. Behavioral discipline matters more than optimal allocation.