<essential_principles>
<principle name="quadrant_model">
**Core of the Four-Quadrant Model**
The Investment Clock simplifies market conditions into four quadrants:
Supportive Financial Conditions (Loose)
↑
Q3 │ Q1
Recovery Transition │ Ideal Quadrant
────────────┼────────────→ Profit Growth
Q4 │ Q2
Worst Quadrant │ Mixed Prospects
│
Unsupportive Financial Conditions (Tight)
| Quadrant | Profit | Financial Conditions | Implication | Allocation Recommendation |
|---|
| Q1 Ideal Quadrant | ↑ | Supportive ↑ | Risk Asset Friendly | Overweight, Tailwind Allocation |
| Q2 Mixed Prospects | ↑ | Unsupportive ↓ | Valuation Pressure, Volatility | Volatility Management, Valuation Sensitivity |
| Q3 Recovery Transition | ↓ | Supportive ↑ | Loose Policy Rescue, Fundamentals Unrecovered | Do Not Misjudge as a Full Bull Market |
| Q4 Worst Quadrant | ↓ | Unsupportive ↓ | Risk Assets Vulnerable | Risk Control, Deleveraging |
</principle>
<principle name="axis_convention">
**Axis Convention (Important!)**
Investment Clock diagrams from different sources may have different axis definitions. This skill defaults to:
-
X-axis: Financial Conditions
- Left = Loose (Highly Supportive)
- Right = Tight (Low Support)
-
Y-axis: Earnings Growth
- Top = Positive Growth
- Bottom = Negative Growth
If your diagram uses a different definition, adjust
and
in the input parameters.
</principle>
<principle name="clock_hour">
**Clock Position Calculation**
Calculate the angle using
, then convert to a 12-hour format:
- 12 o'clock: Top (Highest Profit, Neutral Financial Conditions)
- 3 o'clock: Right (Tightest Financial Conditions)
- 6 o'clock: Bottom (Lowest Profit)
- 9 o'clock: Left (Loosest Financial Conditions)
Rotation Direction:
- Clockwise: Typical Business Cycle Path (Q1 → Q2 → Q4 → Q3 → Q1)
- Counterclockwise: Policy Intervention or Atypical Events
</principle>
<principle name="data_access">
**Data Acquisition Methods**
This skill uses data sources that do not require an API key:
- FRED CSV:
https://fred.stlouisfed.org/graph/fredgraph.csv?id={SERIES_ID}
- Financial Conditions: NFCI (Chicago Fed), STLFSI4 (St. Louis Fed)
- Profit Proxies: CP (Corporate Profits), GDP-related Indicators
Scripts are located in the
directory and can be executed directly.
</principle>
</essential_principles>
<objective>
Implement Investment Clock Analysis:
- Construct Coordinates: Calculate Z-scores for Earnings Growth and Financial Conditions from FRED data
- Determine Quadrant: Identify the current quadrant
- Calculate Position: Convert to 12-hour clock position
- Analyze Rotation: Determine rotation direction and magnitude
- Cycle Comparison: Compare with the previous cycle (Optional)
Output: Current Quadrant, Clock Position, Rotation Summary, Allocation Recommendation.
</objective>
<quick_start>
Fastest Way: Run the Default Analysis
bash
cd skills/analyze-investment-clock-rotation
pip install pandas numpy requests # First-time use
python scripts/investment_clock.py --quick
Sample Output:
json
{
"as_of": "2026-01-15",
"current_position": {
"clock_hour": 10,
"quadrant": "Q1_ideal",
"earnings_growth": 0.052,
"financial_conditions_zscore": -0.35
},
"interpretation": "Ideal Quadrant, Risk Assets in a Relative Tailwind"
}
Full Analysis:
bash
python scripts/investment_clock.py \
--start 2022-01-01 \
--end 2026-01-19 \
--compare-cycle 2020-01-01 2022-12-31 \
--output result.json
</quick_start>
<intake>
What operation do you need to perform?
- Quick Check - View the current Investment Clock position and quadrant
- Full Analysis - Analyze rotation path and direction within a time interval
- Cycle Comparison - Compare rotation characteristics with the previous cycle
- Visualization Chart - Generate Investment Clock visualization chart
- Methodology Learning - Understand the logic of the Investment Clock model
Please select or provide analysis parameters directly.
</intake>
<routing>
| Response | Action |
|--------------------------------|----------------------------------------------------|
| 1, "快速", "quick", "check" | Execute `python scripts/investment_clock.py --quick` |
| 2, "完整", "分析", "full" | Read `workflows/analyze.md` and execute |
| 3, "比較", "循環", "compare" | Read `workflows/compare-cycle.md` and execute |
| 4, "視覺化", "chart", "plot" | Read `workflows/visualize.md` and execute |
| 5, "學習", "方法論", "why" | Read `references/methodology.md` |
| Provide parameters (e.g., date range) | Read `workflows/analyze.md` and execute with parameters |
After routing, read the corresponding file and execute.
</routing>
<directory_structure>
analyze-investment-clock-rotation/
├── SKILL.md # This file (Router)
├── skill.yaml # Frontend Display Metadata
├── manifest.json # Skill Metadata
├── workflows/
│ ├── analyze.md # Full Analysis Workflow
│ ├── compare-cycle.md # Cycle Comparison Workflow
│ └── visualize.md # Visualization Workflow
├── references/
│ ├── methodology.md # Investment Clock Methodology
│ ├── data-sources.md # FRED Series Codes and Data Sources
│ └── input-schema.md # Complete Input Parameter Definitions
├── templates/
│ ├── output-json.md # JSON Output Template
│ └── output-markdown.md # Markdown Report Template
└── scripts/
├── investment_clock.py # Main Analysis Script
├── fetch_data.py # Data Fetching Tool
└── visualize.py # Visualization Plotting Tool
</directory_structure>
<reference_index>
Methodology: references/methodology.md
- Investment Clock Concepts and History
- Four-Quadrant Definitions and Allocation Implications
- Rotation Direction Interpretation
Data Sources: references/data-sources.md
- FRED Series Codes (Financial Conditions/Profit Proxies)
- Data Frequency and Alignment Methods
Input Parameters: references/input-schema.md
- Complete Parameter Definitions
- Default Values and Recommended Ranges
</reference_index>
<workflows_index>
| Workflow | Purpose | Usage Scenario |
|---|
| analyze.md | Full Analysis | Requires detailed quadrant and rotation analysis |
| compare-cycle.md | Cycle Comparison | Compare characteristics of different cycles |
| visualize.md | Generate Visualization Chart | Needs chart display |
| </workflows_index> | | |
<templates_index>
| Template | Purpose |
|---|
| output-json.md | JSON Output Structure Definition |
| output-markdown.md | Markdown Report Template |
| </templates_index> | |
<scripts_index>
| Script | Command | Purpose |
|---|
| investment_clock.py | | Quickly check current position |
| investment_clock.py | | Full Analysis |
| investment_clock.py | --compare-cycle START END
| Cycle Comparison |
| fetch_data.py | | Fetch FRED Data |
| visualize.py | -i result.json -o chart.png
| Generate Visualization Chart |
| </scripts_index> | | |
<input_schema_summary>
Core Parameters
| Parameter | Type | Default Value | Description |
|---|
| market | string | US_EQUITY | Analysis Target |
| start_date | string | 2022-01-01 | Analysis Start Date |
| end_date | string | today | Analysis End Date |
| freq | string | weekly | Frequency (weekly/monthly) |
Data Source Parameters
| Parameter | Type | Description |
|---|
| earnings_series.source | string | fred / api / csv / manual |
| earnings_series.series_id | string | FRED Series ID (e.g., CP) |
| earnings_series.growth_method | string | yoy / qoq_annualized |
| financial_conditions_series.source | string | fred / api / csv |
| financial_conditions_series.series_id | string | NFCI / STLFSI4 |
| financial_conditions_series.transform | string | level / zscore / inverse |
Axis Parameters
| Parameter | Type | Default Value | Description |
|---|
| axis_mapping.x | string | financial_conditions | X-axis Definition |
| axis_mapping.y | string | earnings_growth | Y-axis Definition |
| clock_convention.financial_loose_is_left | bool | true | Loose Conditions on Left |
Complete parameter definitions can be found in
references/input-schema.md
.
</input_schema_summary>
<output_schema_summary>
json
{
"skill": "analyze-investment-clock-rotation",
"as_of": "2026-01-19",
"market": "US_EQUITY",
"current_state": {
"clock_hour": 10,
"quadrant": "Q1_ideal",
"quadrant_name": "Ideal Quadrant",
"x_value": -0.35,
"y_value": 0.052
},
"rotation_summary": {
"from_hour": 2,
"to_hour": 10,
"direction": "clockwise",
"magnitude_degrees": 240
},
"interpretation": "Earnings growth is positive, financial conditions are relatively supportive, belonging to a quadrant favorable for risk assets"
}
Complete output structure can be found in
.
</output_schema_summary>
<success_criteria>
Successful execution should produce: