Build a small pricing...
About this model
Build a small pricing simulation based on my Unity game's buying rules.
Goal: Compare selling prices and measure sales, revenue, and visits without a sale.
Actual game values: - Base visitors per day: 100. Use this as a fixed baseline for this experiment. - Base purchase chance: 0.35. - Minimum purchase score: 0.25. - Maximum price-knowledge error: 0.40. - Price knowledge: uniformly distributed between 0 and 1.
Choose each customer's temperament with equal probability: - Cautious: sensitivity uniform between 0.70 and 1.00; temperament multiplier 0.85. - Measured: sensitivity uniform between 0.45 and 0.75; multiplier 1.00. - Flexible: sensitivity uniform between 0.20 and 0.55; multiplier 1.10. - Impulsive: sensitivity uniform between 0.00 and 0.35; multiplier 1.25.
Controlled test inputs, not claims about my live game: - One item with market quote Q = 1000 gold. This uses my level-1 base price scale, not a verified item's current market quote. - Compare prices: 800, 1000, 1100, 1200, 1250, 1500 gold. - Test customer gold separately at 1000, 2000, and 4000. - All customers meet the item's class and level requirements. - Unlimited stock, to isolate pricing. - Test usefulness separately at 0.50 and 1.00. - No invented operating costs, wholesale costs, or restocking rules.
Buying calculations: Let S = price sensitivity, K = price knowledge, P = selling price, G = customer gold. lerp(a,b,t) = a + (b-a)*t.
1. If P G, reject as unaffordable.
2. Estimate fair value: E = Q * (1 + error * 0.40 * (1-K)). For this simplified model, sample error uniformly between -1 and 1. The actual game uses a stable customer/item hash; keep this estimate fixed if the same customer evaluates the same item again.
3. Reject as overpriced if: P E * lerp(1.25, 1.05, S).
4. Otherwise: priceFit = 1 - clamp(P/max(1,G), 0, 1) * lerp(0.35,0.90,S) priceFit *= lerp(1, clamp(E/P,0.25,1.25), S) score = usefulness * (0.35 + clamp(priceFit,0,1)*0.65) * temperamentMultiplier
5. If score 0.25, no normal purchase. Otherwise purchase probability is: clamp(0.35 * lerp(1.40,0.60,S) * clamp(score,0.10,1.50), 0,1).
Include the game's qualified-visit safeguard: - Calculate an objective score using the same scoring formula but omit the estimated-value rejection and the E/P adjustment. - A visit qualifies if the item is affordable, objective score is at least 0.25, and P = Q*1.10. - After three completed qualified visits without a sale, force a purchase on the next qualifying visit. - Any successful sale resets the shared shop counter. - Nonqualifying visits do not increment the counter.
Measure: - Sales and revenue per 100 visits. - Purchase conversion rate. - Unaffordable and overpriced rejection counts. - Purchases caused by the safeguard. - Longest sequence of visits without a sale. - Results by price, customer gold, and usefulness.
Start with a small validation run. Estimate event consumption before attempting 100 independent runs of 100 visits per scenario. Reset the safeguard counter between independent runs. Use charts to compare scenarios.
Label this a controlled pricing experiment, not a full recreation of my game's NPC population or economy. Report revenue, not profit, because acquisition costs are not included.
"Build a small pricing..." is a public Machinations diagram shared in the Community by Enes Özdemir, with 37 components.
It was created in October 2026 and last edited in October 2026.
Open the diagram in the Machinations app and press Play to watch the resources move, adjust its values to test how the system responds, or remix it to make an editable copy in My diagrams.