Applied Module 12 · The Lora Playbook

Storefront Revenue Simulator

What you'll learn

~30 min
  • Build an interactive pricing calculator from a single AI prompt
  • Model platform revenue splits for Steam, Epic Games Store, and console storefronts
  • Simulate launch discounts, seasonal sales, wishlist conversion, and refund rates
  • Calculate net revenue across regional pricing tiers for US, EU, and Asia markets

What you’re building

You have a financial thesis from the last two lessons: BloodRayne as a mid-budget cult revival, $6M-$15M budget, targeting 300K-700K units. Great. But how much money actually lands in your bank account per unit sold?

The answer is: it depends on where the sale happens, when it happens, and at what price. A $30 game sold on Steam at launch nets you $21 (after Steam’s 30% cut). That same game at 50% off during the Steam Summer Sale nets you $10.50. Sold on Epic? $26.40 (Epic only takes 12%). Sold on PlayStation or Xbox? $21 again (30% cut). And then there are wishlists that convert at roughly 15%, refunds that eat roughly 5%, and regional pricing that means your $30 game is $20 in Southeast Asia.

None of this is complicated math. But doing it manually for every scenario — different base prices, different discount schedules, different platform mixes — is tedious and error-prone. You are going to build an interactive calculator that lets you adjust every variable and see the revenue impact in real time.

💬The platform cut is the cost of distribution

Seeing “Steam takes 30%” for the first time makes people angry. But Steam is also where 75%+ of PC game sales happen. Epic’s 12% cut sounds better until you realize their install base is smaller and their discovery features are weaker. The right question is not “which platform has the lowest cut” but “what platform mix maximizes total revenue.” This calculator answers that question.

By the end of this lesson you will have an HTML+JavaScript pricing calculator that models revenue across Steam, Epic Games Store, and console storefronts. It includes sliders for base price, launch discount, seasonal sale depth, wishlist count, conversion rate, and refund rate. It calculates net revenue per unit, projected total revenue, and platform-by-platform breakdown with regional pricing adjustments.

Software pattern: Multi-variable financial calculator with real-time output

Multiple input variables, each affecting the final calculation, with the output updating in real time as you adjust any input. This pattern appears in mortgage calculators, investment return estimators, and SaaS pricing tools. The key technique is binding UI controls to a calculation function that re-runs on every change.


The showcase

Here is what the finished calculator gives you:

  • Platform cards: Steam, Epic Games Store, PlayStation/Xbox — each showing the platform’s revenue split, your net per unit, and projected units
  • Input controls: Base price ($10-$60 slider), platform mix (percentage allocation across stores), wishlist count, launch discount %, seasonal sale depth %
  • Steam tiered cuts: 30% on first $10M revenue, 25% on $10M-$50M, 20% above $50M — the calculator applies the right rate based on projected revenue
  • Discount modeling: Launch week discount, first seasonal sale (typically 3 months post-launch), deep sale (6+ months), each with configurable depth and projected volume multiplier
  • Wishlist conversion: Input your wishlist count, apply the industry-standard ~15% first-week conversion rate, model how wishlists decay over time
  • Refund modeling: ~5% baseline refund rate applied to all platforms, adjustable
  • Regional pricing: US (full price), EU (roughly equivalent), Asia (typically 40-60% of US price). Configurable regional volume split
  • Summary dashboard: Total gross revenue, total platform fees, total net revenue, effective platform cut (weighted average), revenue per development dollar (if you input your budget)

Everything is a single HTML file. No server, no build step, no framework. Open it in a browser and start adjusting sliders.


The prompt

Open your terminal, navigate to a project folder, start your AI CLI tool, and paste this prompt:

Build a single-file HTML+JavaScript pricing calculator called storefront-sim.html
that models game revenue across multiple digital storefronts. This is for
projecting revenue for a BloodRayne remake across Steam, Epic Games Store,
and console platforms.
REQUIREMENTS:
1. PAGE LAYOUT
- Dark theme: background #0a0a0f, cards #141420, text #e0e0e0, accent #a855f7
- Top section: input controls in a grid layout
- Middle section: platform cards showing per-platform breakdown
- Bottom section: summary dashboard with total projections
- Responsive: works on desktop and tablet
- All CSS inline in a <style> tag, all JS in a <script> tag
- Title: "BloodRayne Storefront Revenue Simulator"
2. INPUT CONTROLS
All inputs should update calculations in real time (oninput event):
a. Base Price: range slider $10-$60, default $30, shows current value
b. Total Unit Projection: number input, default 400000 (400K units)
c. Platform Mix (must sum to 100%):
- Steam: range slider 0-100%, default 65%
- Epic: range slider 0-100%, default 10%
- Console (PS/Xbox): range slider 0-100%, default 25%
- Show warning if total != 100%
d. Wishlist Count: number input, default 200000
e. Wishlist Conversion Rate: range slider 5-30%, default 15%
f. Launch Discount: range slider 0-30%, default 10%
g. Seasonal Sale Discount: range slider 0-75%, default 40%
h. Refund Rate: range slider 0-15%, default 5%
i. Budget (for ROI calculation): number input in millions, default 8
j. Regional Pricing:
- US/Canada: 100% of base price (not adjustable)
- EU: range slider 80-110%, default 95% of base price
- Asia: range slider 30-70%, default 50% of base price
- Regional volume split: US 45%, EU 30%, Asia 25% (adjustable sliders)
3. PLATFORM REVENUE MODELS
a. Steam:
- Revenue share: 30% on first $10M, 25% on $10M-$50M, 20% above $50M
- Calculate which tier applies based on projected Steam gross revenue
- Show effective cut percentage after tier calculation
- Net per unit = base price * (1 - effective cut rate)
b. Epic Games Store:
- Flat 12% cut on all revenue
- Net per unit = base price * 0.88
c. Console (PlayStation/Xbox):
- 30% platform cut
- Additional consideration: $45K+ console dev kit costs (noted, not calculated)
- Net per unit = base price * 0.70
4. DISCOUNT AND SALES MODELING
Calculate revenue across four sale phases:
- Phase 1 "Launch Week": 25% of total units at (base price - launch discount)
- Phase 2 "Full Price Window" (months 1-3): 30% of total units at base price
- Phase 3 "First Seasonal Sale" (month 3-6): 25% of total units at (base price - seasonal discount)
- Phase 4 "Deep Discount" (month 6+): 20% of total units at (base price * 0.5)
Show a breakdown table with units, price, and revenue per phase
5. WISHLIST ECONOMICS
- First-week conversion: wishlistCount * conversionRate = projected first-week units
- Show this as a sanity check against the total unit projection
- If first-week projection > 50% of total units, show a note that this is very front-loaded
- Wishlist decay: show projected conversions at month 1 (15%), month 3 (8%), month 6 (4%), month 12 (2%)
- Note: these are cumulative conversion rates from wishlists, industry standard
6. REFUND ADJUSTMENT
- Apply refund rate to gross revenue across all platforms
- Show refund amount as a separate line item
- Steam's 2-hour refund policy means action games with short sessions have lower refund rates
7. REGIONAL PRICING CALCULATION
- Calculate weighted average price: (US% * base) + (EU% * base * EU_factor) + (Asia% * base * Asia_factor)
- Apply this weighted price to all calculations instead of raw base price
- Show effective average price clearly
8. SUMMARY DASHBOARD
Display prominently at the bottom:
- Gross Revenue (before platform cuts)
- Total Platform Fees
- Net Revenue (after platform cuts)
- Refund Loss
- Final Net Revenue (after platform cuts and refunds)
- Effective Platform Cut % (weighted average across platforms)
- Revenue per Dev Dollar (final net / budget)
- ROI: ((final net - budget) / budget) * 100
- Break-even Units: budget / (weighted avg net per unit)
- Months to break even (assuming launch-week sales pace)
9. COMPARISON TABLE
At the very bottom, show a pre-calculated comparison:
| Scenario | Price | Units | Steam % | Net Revenue | ROI |
Pre-fill with 4 scenarios:
- Conservative: $30, 200K units, 70% Steam
- Base Case: $30, 400K units, 65% Steam
- Optimistic: $35, 600K units, 60% Steam
- System Shock Comparable: $40, 300K units, 80% Steam
All calculations must be pure JavaScript with no external libraries.
Use CSS Grid or Flexbox for layout. All interactive controls use
oninput events for real-time updates. The entire application is one
HTML file under 500 lines.
💡One file, zero dependencies

This is deliberately a single HTML file, not a React app. No npm install, no build step, no framework overhead. Open it in a browser and it works. This is the right tool shape for a financial calculator you want to pull up quickly during a meeting, share with a co-founder by email, or host on a simple web server.


What you get

After the LLM generates the file:

storefront-sim.html

That is it. One file.

Fire it up

Terminal window
open storefront-sim.html
# or on Linux: xdg-open storefront-sim.html
# or just drag the file into your browser

You should see a dark-themed calculator with sliders and input fields at the top, platform cards in the middle, and a summary dashboard at the bottom. Start moving sliders and watch the numbers update instantly.

If something is off

ProblemFollow-up prompt
Sliders don’t update calculationsThe range inputs are not triggering recalculation. Make sure every slider and input has an oninput="calculate()" event handler, and the calculate() function reads all current input values, runs the math, and updates all output elements by ID.
Platform mix doesn’t enforce 100%When I adjust the Steam slider to 80%, Epic and Console don't adjust. Add logic so that when one platform slider changes, the others proportionally adjust to keep the total at 100%. Or show a red warning banner when total != 100%.
Steam tiered cut is not appliedSteam revenue shows a flat 30% cut regardless of revenue level. Implement the tiered calculation: first $10M at 30%, next $40M at 25%, everything above $50M at 20%. Calculate the blended effective rate based on projected Steam gross revenue.
Regional pricing not affecting totalsThe regional pricing sliders change but the summary numbers don't move. The calculate() function needs to compute a weighted average price using the regional price factors and volume splits, then use that weighted price instead of the raw base price for all downstream calculations.

How it works (the 2-minute version)

  1. Every input binds to a single calculate() function. When you move any slider or change any number, the entire model recalculates from scratch. This is fast enough to feel instant because the math is trivial — just multiplication and addition. No API calls, no database queries, no waiting.

  2. Platform cuts are applied per-platform, then aggregated. Steam takes 30% (with tiered reductions at scale), Epic takes 12%, consoles take 30%. The “effective platform cut” in the summary is the weighted average based on your platform mix. At 65% Steam / 10% Epic / 25% console, your blended cut is roughly 27%.

  3. Discount phases model the real sales curve of an indie/mid-budget game. Games do not sell at one price forever. They sell a burst at launch (often with a small launch discount), hold full price for a few months, then cycle through seasonal sales at increasing discounts. Modeling these phases separately gives a much more realistic revenue projection than “400K units times $30.”

  4. Regional pricing matters more than most indie devs realize. If 25% of your sales come from Asia at 50% of your base price, your effective average price is not $30 — it is more like $26.25. The calculator makes this visible so you do not over-project.

  5. The comparison table at the bottom gives you scenarios without touching sliders. Conservative, base case, optimistic, and a System Shock comparable. These are the four scenarios you would present to an investor: “Here is the worst case, here is the most likely case, here is the upside, and here is what a comparable title actually did.”

🔍Steam's tiered revenue share explained

Steam’s standard cut is 30%, but it drops at revenue thresholds:

  • First $10M in revenue: Steam takes 30%, you keep 70%
  • $10M to $50M: Steam takes 25%, you keep 75%
  • Above $50M: Steam takes 20%, you keep 80%

For a BloodRayne remake projecting $12M-$36M in gross revenue (at the mid-budget range), most of your Steam revenue falls in the 30% tier with some spilling into the 25% tier. This means your effective Steam cut is very close to 30% — the tiered discounts mostly benefit large AAA titles.

However, if you hit the optimistic case and cross $10M on Steam alone, the marginal rate improvement adds up. On $15M Steam revenue, the tiered system saves you $250K compared to a flat 30%. Not life-changing, but not nothing either.

Epic’s flat 12% is genuinely cheaper per unit. The tradeoff is smaller audience reach. Your platform mix decision depends on whether Epic’s lower cut compensates for lower volume — and that depends on your genre and audience. Action games with a retro following tend to skew heavily Steam.


Customize it

Add a time-series revenue projection

See when the money arrives, not just how much:

Add a monthly revenue projection chart below the summary dashboard.
Show projected monthly revenue for months 1-24 after launch. Use this
distribution: Month 1 gets 35% of total revenue (launch spike), months
2-3 get 15%, months 4-6 get 20% (first big sale), months 7-12 get 20%
(steady tail with sales), months 13-24 get 10% (long tail). Plot this
as a bar chart using inline SVG. Overlay a cumulative revenue line.
Mark the break-even point on the chart.

Add Epic Games Store exclusivity modeling

Model the tradeoff of an Epic exclusivity deal:

Add an "Epic Exclusivity Scenario" toggle. When enabled, model: Epic pays
a minimum guarantee (input field, default $500K). All sales are Epic-only
for 12 months (12% cut). After exclusivity, sales split returns to normal
platform mix. Show the financial comparison: total revenue with exclusivity
vs without, accounting for potentially lower total units (no Steam for year
one) but guaranteed minimum and lower cut rate. This is a real deal structure
that Epic offers to indie and mid-budget titles.

Add a Kickstarter backer pricing model

Model how Kickstarter tier pricing affects revenue:

Add a "Kickstarter Pricing" section that models tiered backer rewards:
- $20 tier: digital copy (estimate 60% of backers)
- $35 tier: digital deluxe with soundtrack (25% of backers)
- $60 tier: physical edition (10% of backers)
- $100+ tier: collector's edition (5% of backers)
Input: total number of backers. Calculate weighted average revenue per
backer and total Kickstarter gross. Subtract Kickstarter's 5% fee and
payment processing 3-5%. Show net Kickstarter revenue and how it offsets
the development budget.

Try it yourself

  1. Open your CLI tool and paste the prompt. Open the generated HTML file in your browser.
  2. Set the base price to $30 and total units to 400K. Note the final net revenue and ROI at your $8M default budget.
  3. Change the platform mix: slide Steam down to 50% and Epic up to 25%. Watch the effective platform cut drop because Epic’s 12% is pulling the weighted average down. Notice whether the lower cut compensates for potential volume differences.
  4. Set the Asia regional price to 40% of base and the Asia volume to 30%. See how much the effective average price drops and what that does to total revenue. Regional pricing is a lever most indie devs do not think about carefully enough.
  5. Look at the comparison table. The “Conservative” scenario is your downside case — can you survive that? The “System Shock Comparable” is your reality check — if your numbers are close to what System Shock actually did, your model is grounded.
  6. Try the monthly revenue projection customization. Seeing the launch spike vs. long tail makes it viscerally clear why first-month performance matters so much.

Key takeaways

  • Platform cuts vary significantly and your mix matters. The difference between 65% Steam (blended 27% cut) and a heavier Epic mix could mean hundreds of thousands of dollars on a mid-budget title.
  • Discount phases are reality, not optional. Modeling revenue at a flat base price overstates what you will actually collect. Most units sell during sales, not at full price.
  • Wishlists are your best leading indicator. 200K wishlists at 15% conversion means 30K first-week units. If your total projection is 400K, that means first week is only 7.5% of lifetime — which is conservative and healthy. If first week were 50% of lifetime, your game has no legs.
  • Regional pricing reduces your effective price by 5-15%. Ignoring it means your revenue projections are too optimistic. This calculator makes the impact visible.
  • One HTML file, zero dependencies, instant scenario modeling. Pull it up in any meeting, adjust the sliders, and have a real conversation about pricing strategy backed by math.

What’s next

You know what the market looks like, you know what the financials project, and you know how storefront economics work. But making a game costs money every month, and money runs out. In the next lesson, you will build The Studio Runway Planner — a React cashflow tool that tracks monthly burn rate across salaries, contractors, tools, and marketing, models different funding scenarios, and tells you exactly how many months you have before you need revenue. The question shifts from “how much could we make” to “how long can we survive while we make it.”