Consumer Price Index
More actions
The Consumer Price Index (CPI) is a custom-built price tracking system on Prosperity SMP. It measures the cost of a fixed basket of goods using real player-to-player trade data, producing a single index number that represents the overall price level of the server economy. The CPI feeds directly into the Monetary policy engine and is reported weekly to the community via Discord.
What the CPI measures
The CPI tracks the price of a weighted basket of 27 common items across five categories. It answers the question: "Are things getting more or less expensive on the server?"
A rising CPI means prices are going up (inflation). A falling CPI means prices are dropping (deflation). A stable CPI means the economy is in equilibrium.
Basket composition
The policy CPI basket is weighted to reflect typical player spending patterns:
| Category | Weight | Items |
|---|---|---|
| Building materials | 20% | Cobblestone, stone, deepslate, sand, gravel, logs, planks, sandstone, glass, bricks |
| Basic inputs | 30% | Iron ingot (12%), coal (6%), copper ingot (4%), gold ingot (4%), redstone (4%) |
| Food and farming | 20% | Wheat, potato, carrot, cooked beef, cooked chicken, cooked porkchop, sugar cane, paper |
| Utility consumables | 15% | Arrow, torch, firework rocket, lapis lazuli |
| Premium commodities | 15% | Diamond (8%), emerald (3%), netherite scrap (4%) |
Diamond is weighted at 8%, not 30% — the basket is deliberately tilted toward everyday staples rather than luxury items. A few large diamond trades should not distort the overall price signal.
Index formula
The CPI uses a winsorized geometric mean, the same mathematical approach used by real-world national statistics offices:
- P = exp( SUM of weight_i x ln(price_i_trimmed) )
Where each item price is winsorized (extreme outliers in the top and bottom 10% are clamped) before the geometric mean is computed. This prevents a single unusual trade from skewing the index.
Data source
The CPI is computed exclusively from completed, non-simulated, player-to-player ChestShop transactions:
- Only real trades between players count. Simulated ChestShop activity is excluded.
- Only completed sales count. Listed prices (signs with no actual purchase) are tracked separately and do not affect the policy CPI.
- The rolling window covers the last 7 days of trade data.
This separation prevents a feedback loop where the Sim Shop buying activity inflates the CPI, causing the Sim Shop to buy at higher prices, causing CPI to rise further.
Manipulation defenses
The CPI includes several custom-built defenses against price manipulation:
Depth gates
An item is excluded from the policy basket if it does not meet minimum thresholds:
- At least 10 transactions in the 7-day window
- At least 3 unique buyers
- At least 3 unique sellers
Items below these thresholds still appear in the /market command with a low-confidence flag, but they do not influence the engine.
Rate-of-change clamp
No item can move the CPI by more than 8% per week. If an item price jumps more than 8% from the prior week, the excess is attributed to possible manipulation and dampened.
Manipulation risk score
Each item receives a composite risk score based on five factors (each weighted equally at 0.20):
- Low transaction count (fewer than 10)
- Low buyer diversity (fewer than 3 unique buyers)
- Low seller diversity (fewer than 3 unique sellers)
- Account concentration (one account responsible for more than 60% of trade volume)
- Category outlier (item moved more than 2 standard deviations from its category average)
When the risk score exceeds 0.5, the system applies asymmetric trust dampening — upward price moves are partially discounted while downward moves are trusted at face value. This reflects the reality that most market manipulation in Minecraft economies is bullish (inflating prices to profit from the Sim Shop).
Median lag
The Simulated ChestShop reads a CPI snapshot that is 7 days old, not the current snapshot. This means a manipulator would need to sustain artificial prices for over a week before the Sim Shop adjusts — raising the cost and risk of manipulation.
Per-item confidence
Each item in the basket receives its own confidence score:
- confidence = sqrt(depth_score x diversity_score)
Where depth_score reflects transaction count (maxes at 50 trades) and diversity_score reflects unique participant count (maxes at 8 unique buyers + sellers). Items with low confidence contribute less to the overall basket index.
Player-facing: /market command
Players can check current market prices using /market:
| Command | What it shows |
|---|---|
/market |
Top 10 items by total dollar volume traded (last 7 days) |
/market <item> |
Median price, fair range (25th-75th percentile), volume, category |
The /market command shows real player-to-player data only. It does not reveal the Sim Shop buy price, CentralBank balance, or engine recommendations.
Weekly Discord report
Every Monday at midnight, an automated report posts to the server Discord with:
- Total items traded and turnover
- Top 10 items by value
- Per-item median prices
This report uses the same data pipeline as the policy CPI but is formatted as a public-facing summary.
Commodity index
In addition to the policy CPI (which drives the Monetary policy engine), the system computes a separate commodity index tracking premium items (diamond, gold, netherite, emerald, ancient debris). This index is for dashboard display only and does not influence policy decisions.
See also
- Monetary policy engine — the system that consumes the CPI
- Economy — how the economy works
- Simulated ChestShop — the market activity system (excluded from CPI)
- Trading — how trading works on the server
- ChestShop — the shop system that generates CPI data