Small Active Indexers: 8 (less than 1M GRT allocated)
Medium Active Indexers: 34 (between 1M and 20M GRT allocated)
Large Active Indexers: 11 (more than 20M and 50M GRT allocated)
Mega Active Indexers: 11 (more than 50M GRT allocated)
📈 How the Indexer Score is Calculated
The Indexer Score is based on a single critical performance metric:
QFR (Query Fee Ratio): Measures how efficiently an indexer generates query fees relative to its allocated GRT. Weight: 100%
This metric directly evaluates an indexer's ability to generate revenue, making it the most important indicator of real-world performance and value to delegators.
In the following sections, we break down the methodology used to compute QFR,
including its normalization process. The final score is adjusted to a uniform scale where 1 represents the best performance
(highest query fees relative to allocated stake) and 10 the worst (little to no query fees generated).
📐 How Allocation Efficiency Ratio (AER) is calculated:
Total GRT Allocated
(Number of Allocations * Average GRT per Allocation)
The Allocation Efficiency Ratio (AER) measures how effectively an indexer distributes their staked GRT across subgraphs.
‼️ A lower AER reflects more efficient allocation, while a higher AER suggests over-concentration.
Average allocation targets are based on indexer size:
Small Indexers: 5,000 GRT per subgraph
Medium Indexers: 10,000 GRT per subgraph
Large Indexers: 20,000 GRT per subgraph
Mega Indexers: 40,000 GRT per subgraph
📏 How AER is Normalized:
Normalized AER = 1 + 9 × (min(AER, 500) / 500)
AER is normalized to a scale from 1 (best) to 10 (worst) to account for varying efficiency levels across indexers:
Capping: AER values are capped at 500 to limit the impact of extreme outliers (e.g., highly concentrated allocations).
Scaling: The capped AER is scaled linearly from 0 to 500 onto a 1-to-10 range using the formula above.
This ensures AER values are fairly compared, with lower ratios (better performance) resulting in lower scores.
🔍 How Query Fee Ratio (QFR) is calculated:
Query Fees Generated
Total GRT Allocated
The Query Fee Ratio (QFR) measures how efficiently an indexer generates query fees per unit of allocated GRT.
‼️ A higher QFR indicates better performance, as it means more query fees are earned per GRT allocated.
📏 How QFR is Normalized:
QFR Adjusted = 1 + 9 × (min(QFR, 1.0) / 1.0)
QFR is normalized to a scale from 1 (worst) to 10 (best) to reflect its efficiency metric, where higher raw QFR values are better:
Capping: QFR is capped at 1.0 (100%). A QFR of 1.0 represents a theoretical maximum where query fees equal the GRT allocated — an exceptional but rare case. Any value above 1.0 is treated as 1.0 to maintain fairness.
Scaling: The capped QFR is scaled linearly from 0 to 1.0 onto a 1-to-10 range. This ensures that higher QFR values (better performance) result in higher adjusted scores.
This normalization preserves QFR's meaning: indexers generating more query fees relative to their allocations receive higher (better) scores,
while those with little to no fees score lower.
📊 How the Final Indexer Score is calculated:
The final Indexer Score is a weighted combination of AER (70%) and QFR (30%), producing a unified scale from 1 (best) to 10 (worst).
Both AER_norm (1=best, 10=worst) and QFR_adjusted (1=worst, 10=best) are aligned to the same direction using the QFR Adjusted formula, so no additional inversion is needed:
⚠️ 🔴 Underserving Penalty: Indexers serving fewer than 10 subgraphs receive an additive penalty to their final score.
The penalty is calculated as Penalty = 2.0 × (10 − number_of_subgraphs) / 10, and the final score is capped at 10.
For example, an Indexer with 1 subgraph receives a penalty of +1.8, while an Indexer with 5 subgraphs receives a penalty of +1.0.
This penalty incentivizes indexers to support a diverse set of subgraphs, contributing to the health and decentralization of The Graph Network.
🏅 Performance Flags
Each indexer is assigned a Performance Flag based purely on its final Indexer Score,
providing a quick visual indicator of overall efficiency:
Excellent 🟢 (Score 1.00–1.25): Top-tier efficiency and query fee generation. These indexers have highly balanced allocations and generate strong query fees relative to their stake.
Fair 🟡 (Score 1.26–2.50): Average performance with room for improvement. These indexers show reasonable allocation efficiency or query fee generation, but have not yet reached top-tier levels.
Poor 🔴 (Score 2.51–10.00): Inefficient allocation or low query fees; needs attention. These indexers have significant room to improve either their subgraph diversity, allocation balance, or query fee generation.