Causal Trees: SimpleFunctions' Core Analytical Framework
A causal tree is how SimpleFunctions thinks about prediction markets. Instead of asking "what's the probability of X?" directly, we decompose the question into smaller, more answerable components.
Structure
A causal tree has:
- Root node: The ultimate question (e.g., "Will Iran-Israel conflict escalate to direct confrontation?")
- Branch nodes: Conditions that contribute to the root outcome
- Leaf nodes: Observable, verifiable facts that can be tracked
Example: Iran Conflict Thesis
Root: Iran-Israel direct confrontation (p = 35%)
├── n1: Iran retaliates beyond proxies (p = 45%)
│ ├── n1.1: Missile/drone strike on Israeli territory (p = 60%)
│ └── n1.2: Naval confrontation in Strait of Hormuz (p = 30%)
├── n2: US military involvement (p = 25%)
│ ├── n2.1: US bases in region attacked (p = 40%)
│ └── n2.2: Congressional authorization (p = 15%)
└── n3: Diplomatic channels fail (p = 55%)
├── n3.1: UN Security Council deadlocked (p = 70%)
└── n3.2: Back-channel negotiations collapse (p = 45%)
Why Trees Beat Single Estimates
- Decomposition makes estimation easier: Estimating "probability of WWIII" is impossible. Estimating "probability of UN Security Council deadlock on Iran resolution" is tractable.
- Information maps to nodes: A headline about Iranian missile tests maps directly to node n1.1. Without the tree, you'd have to reason about how it affects the overall probability — with the tree, you update one node and the math propagates.
- Confidence tracking: Each node has both a probability and a confidence level. If n3.2 has low confidence, you know where to focus research.
The Agent Uses Trees for Everything
When the heartbeat service runs, it:
- Scans for new information (news, price changes)
- Maps each piece to a causal node
- Updates node probabilities
- Recomputes the root probability
- Compares against market prices to find edge
- Triggers strategy actions if conditions are met