🎯 Core Objective
Algorithm Overview
Our algorithm aims to produce a ranking score for each company in the sector. This score becomes the target weight for that company in the village portfolio.
The algorithm balances two critical signals:
Insider Bullishness
How confident employees are in their own company’s future
Peer Admiration
Which other companies are most respected by members of the village
📈 Calculating Bullishness Scores
For each company , we compute a bullishness score based on employee ratings:Bullishness Score Formula
Where:
- is the set of eligible employees at company
- is the weight of employee (based on tenure and seniority)
- is the 1-100 bullishness rating provided by employee
- The numerator sums the weighted ratings across all eligible employees
- The denominator normalizes by the sum of employee weights
🔗 Building the Admiration Graph
- Graph Construction
- Example Graph Visualization
- Mathematical Definition
1
Define Nodes
Each company in the sector becomes a node in the graph
2
Create Directed Edges
Add directed edges from company to company when employees at admire
3
Calculate Edge Weights
Set edge weights based on the strength of admiration from to
4
Normalize Outgoing Edges
Ensure outgoing edges from each company sum to 1: for all
🔄 The Iterative Algorithm
Iterative Algorithm Flowchart
1. Initialization
1. Initialization
We begin by assigning equal scores to all companies:This gives each company an equal starting point, regardless of size or reputation.
2. Iterative Update
2. Iterative Update
On each iteration , we update each company’s score:Where:
- is the damping factor (typically 0.85)
- normalizes the bullishness score to [0,1]
- is the admiration weight from company to company
3. Normalization
3. Normalization
After each iteration, we normalize scores to sum to 1:This ensures that the scores represent proportions that can be directly used as portfolio weights.
4. Convergence
4. Convergence
We repeat steps 2-3 until convergence:Where is a small threshold (typically 0.0001). This ensures the algorithm runs until the scores stabilize.
⚖️ Interpreting the Damping Factor
The damping factor (delta) balances the two main inputs:- At delta = 0: Only bullishness scores matter (100% bullishness, 0% network)
- At delta = 0.5: Equal weight to both factors (50% bullishness, 50% network)
- At delta = 0.85: More weight to network (15% bullishness, 85% network)
- At delta = 1.0: Only the network structure matters (0% bullishness, 100% network)
Mathematical Intuition
Our algorithm can be understood as finding the equilibrium in a flow of “reputation” through the network of companies, where reputation comes both from internal confidence and external validation.
- Each company has some inherent reputation from its insiders (bullishness)
- Companies also receive reputation from others who admire them
- The importance of an admirer’s opinion is proportional to its own reputation
- The equilibrium distribution of this reputation flow determines the final scores
Example Computation
- Simple Example
- Iteration Process
- Implementation Pseudocode
Three-Company Example
For a simple example with three companies:- Initial values:
- Bullishness scores:
- Admiration weights:
- (Company 1 admires Companies 2 and 3)
- (Company 2 admires Companies 1 and 3)
- (Company 3 admires Companies 1 and 2)