Skip to content
Back to skills

Casino Math Balancer

ASecurity

Calculate and balance casino game mathematics including odds, RTP, house edge, variance, and payout tables. Use when designing betting mechanics, balancing meta-pot systems, creating probability tables, validating game economy math, or ensuring fair-but-profitable game mechanics. Triggers on requests involving gambling math, odds calculations, payout balancing, or RTP optimization.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
designtypescriptgo

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill casino-math-balancer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Casino Math Balancer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Casino Math Balancer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-casino-math-balancer/badge)](https://www.skillsdirectory.com/skills/david-li0406-casino-math-balancer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: casino-math-balancer
description: Calculate and balance casino game mathematics including odds, RTP, house edge, variance, and payout tables. Use when designing betting mechanics, balancing meta-pot systems, creating probability tables, validating game economy math, or ensuring fair-but-profitable game mechanics. Triggers on requests involving gambling math, odds calculations, payout balancing, or RTP optimization.
---

# Casino Math Balancer

Mathematical framework for designing balanced, engaging betting mechanics with appropriate risk/reward curves.

## Core Metrics

### Return to Player (RTP)

```
RTP = (Total Amount Returned to Players / Total Amount Wagered) × 100

Target ranges by game type:
- Casual/Social: 95-98% RTP (player-friendly)
- Balanced: 92-95% RTP (sustainable)  
- High-stakes: 88-92% RTP (house-favorable)
```

### House Edge

```
House Edge = 100% - RTP

Example:
RTP = 96% → House Edge = 4%
For every 100 coins wagered, house keeps ~4 coins long-term
```

### Variance Classification

| Variance | Hit Frequency | Max Win | Experience |
|----------|---------------|---------|------------|
| Low | >40% | 2-10x | Steady, small wins |
| Medium | 20-40% | 10-50x | Balanced excitement |
| High | <20% | 50-500x | Rare big wins |

## Meta-Pot System Math (Farming in Purria)

### Pot Categories

| Pot | Probability Range | Suggested RTP | Notes |
|-----|------------------|---------------|-------|
| Water | 45-65% success | 96% | Most stable |
| Sun | 35-55% success | 94% | Medium variance |
| Pest | 25-45% success | 92% | Higher risk/reward |
| Growth | 15-35% success | 90% | Jackpot-style |

### Bet Level Calculations

```typescript
interface BetCalculation {
  level: 'fold' | 'call' | 'all_in';
  amount: number;
  multiplier: number;
  potentialWin: number;
  expectedValue: number;
}

function calculateBet(
  coins: number, 
  level: BetLevel, 
  potSuccess: number,
  multiplier: number
): BetCalculation {
  const amounts = {
    fold: 0,
    call: Math.floor(coins * 0.1),
    all_in: coins
  };
  
  const amount = amounts[level];
  const potentialWin = Math.floor(amount * multiplier);
  const expectedValue = (potSuccess * potentialWin) - ((1 - potSuccess) * amount);
  
  return { level, amount, multiplier, potentialWin, expectedValue };
}
```

### Multiplier Balance Formula

```
Multiplier = (1 / Win_Probability) × RTP_Target

Example for 40% win rate at 94% RTP:
Multiplier = (1 / 0.40) × 0.94 = 2.35x

Payout table:
- Call bet (10%): Win = 2.35x stake
- All-in: Win = 2.35x stake (same multiplier, higher stakes)
```

## Probability Tables

### Standard Template

```markdown
| Outcome | Probability | Payout | Contribution to RTP |
|---------|-------------|--------|---------------------|
| Win     | P%          | Mx     | P × M              |
| Push    | Q%          | 1x     | Q × 1              |
| Lose    | R%          | 0x     | 0                  |
| TOTAL   | 100%        | -      | RTP%               |
```

### Example: Meta-Pot Resolution

```markdown
| Pot State | Probability | Payout | RTP Contribution |
|-----------|-------------|--------|------------------|
| ≥80%      | 15%         | 3.0x   | 45%             |
| 50-79%    | 35%         | 1.8x   | 63%             |
| 20-49%    | 30%         | 0.5x   | 15%             |
| <20%      | 20%         | 0x     | 0%              |
| TOTAL     | 100%        | -      | 123% → adjust   |

Adjustment needed: Scale payouts by 0.94/1.23 = 0.764
New payouts: 2.29x, 1.38x, 0.38x, 0x → RTP ≈ 94%
```

## Balancing Levers

### Tuning Parameters

| Lever | Effect on Players | Effect on Revenue |
|-------|-------------------|-------------------|
| ↑ Base win rate | More engagement | ↓ House edge |
| ↑ Max multiplier | Higher excitement | Variance risk |
| ↑ Tier thresholds | Harder to win big | ↑ House edge |
| ↓ Bet minimums | More accessibility | ↓ Revenue per bet |

### Session Economy

```
Target metrics per session:
- Average session: 10-15 bets
- Net outcome: -5% to +20% of starting bankroll
- "Near miss" rate: 15-20% (engagement driver)
- Big win frequency: 1 in 20-50 sessions
```

## Simulation Validation

### Monte Carlo Template

```typescript
function simulateSession(
  startingCoins: number,
  betsPerSession: number,
  betSize: number,
  winProb: number,
  winMultiplier: number
): SimulationResult {
  let coins = startingCoins;
  let wins = 0;
  
  for (let i = 0; i < betsPerSession; i++) {
    coins -= betSize;
    if (Math.random() < winProb) {
      coins += betSize * winMultiplier;
      wins++;
    }
  }
  
  return {
    finalCoins: coins,
    netChange: coins - startingCoins,
    winRate: wins / betsPerSession,
    rtp: (coins + (betsPerSession * betSize) - startingCoins) / (betsPerSession * betSize)
  };
}

// Run 10,000 sessions to validate RTP converges to target
```

## Red Flags Checklist

Before shipping any betting mechanic:

- [ ] RTP calculated and within target range
- [ ] Variance classified and appropriate for audience
- [ ] No exploitable patterns in RNG
- [ ] Maximum loss per session capped
- [ ] Win streaks don't exceed 5 without cooldown
- [ ] Loss streaks trigger pity mechanics
- [ ] Economy doesn't inflate over time
- [ ] Math validated via simulation (10k+ runs)

## Legal Considerations

For social casino / non-gambling:
- No real-money conversion
- Virtual currency clearly labeled
- Odds disclosure recommended
- Age-gating in place
- "For entertainment only" messaging

Files in this skill

  • README.md2.1 KB
  • SKILL.md5.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…