Show description
Kalshi Trading Cheat Sheet
Kalshi Trading Cheat Sheet
KALSHI TRADING CHEAT SHEET
Your Strategy for Consistent 10% Wins
Core Concepts: The Spread
The price you see is determined by the **Bid** (your sell price) and the **Ask** (the buy price). The gap between them is the **Spread**.
4¢
BID
29¢
ASK
WIDE SPREAD (Pre-Game): High risk, low liquidity. Hard to sell.
TIGHT SPREAD (Live Game): Lower risk, high liquidity. Easy to sell.
Fee Structure
NO FEE to buy contracts.
NO FEE if you sell for a loss.
A small fee is charged ONLY on your PROFIT when you sell.
The 10% Profit Calculator
Calculate your exact exit price to lock in a 10% net profit after fees.
Your Buy Price (¢)
Target Sell Price (After 3.5% Fee)
15.5¢
The Formula:
Sell Price = Buy Price + ( (Buy Price * 0.10) / 0.965 )
Your Rules for Success
1. Buy Low
Find good entry points when the market is undervaluing an outcome.
2. Stick to the Plan
Use the calculator. Sell when you hit your target profit %.
3. Lock It In
A small, guaranteed win is better than a potential big loss. Don't get greedy.
4. Know the Phase
Pre-game is for planning. The live game is for trading when liquidity is high.
Kalshi Trading Cheat Sheet
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kalshi Trading Cheat Sheet</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;500&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Roboto Mono', monospace;
background-color: #0a0a0a;
color: #f0f0f0;
}
/* --- Custom Animations --- */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideInUp {
from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
@keyframes scaleUp {
from { transform: scale(0.9); opacity: 0; }
to { transform: scale(1); opacity: 1; }
}
.fade-in {
animation: fadeIn 0.8s ease-in-out forwards;
}
.slide-in-up {
animation: slideInUp 0.6s ease-out forwards;
}
.tile {
background-color: #111;
border: 1px solid #333;
transition: transform 0.3s ease, box-shadow 0.3s ease;
animation: scaleUp 0.5s ease-out forwards;
opacity: 0;
}
.tile:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);
}
/* --- Visualization Styling --- */
.spread-container {
display: flex;
align-items: flex-end;
height: 100px;
gap: 2px;
}
.spread-bar {
width: 50px;
background-color: #444;
transition: height 0.5s ease-in-out;
position: relative;
}
.spread-bar .label {
position: absolute;
bottom: -25px;
left: 50%;
transform: translateX(-50%);
font-size: 0.8rem;
white-space: nowrap;
}
.spread-bar .price {
position: absolute;
top: -25px;
left: 50%;
transform: translateX(-50%);
font-size: 0.9rem;
font-weight: 500;
opacity: 0;
transition: opacity 0.5s ease;
}
.spread-container:hover .spread-bar .price {
opacity: 1;
}
#bid-bar { height: 40%; background-color: #ccc; }
#ask-bar { height: 80%; background-color: #eee; }
#gap-bar {
width: 100px;
height: 10px;
background: repeating-linear-gradient(45deg, #222, #222 5px, #333 5px, #333 10px);
align-self: center;
}
/* --- Calculator Styling --- */
.calculator input {
background-color: #222;
border: 1px solid #444;
text-align: center;
font-size: 1.5rem;
caret-color: #00ff00;
}
.calculator-output {
transition: transform 0.3s ease, color 0.3s ease;
transform-origin: center;
}
.calculator-output.updated {
transform: scale(1.1);
color: #00ff00;
}
</style>
</head>
<body class="p-4 sm:p-8">
<div class="max-w-7xl mx-auto">
<!-- Header -->
<header class="text-center mb-12 fade-in">
<h1 class="text-3xl sm:text-5xl font-bold tracking-wider">KALSHI TRADING CHEAT SHEET</h1>
<p class="text-gray-400 mt-2 text-sm sm:text-base">Your Strategy for Consistent 10% Wins</p>
</header>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Tile 1: Key Concepts -->
<div class="tile p-6 rounded-lg md:col-span-2" style="animation-delay: 0.1s;">
<h2 class="text-xl font-bold mb-4 border-b border-gray-600 pb-2">Core Concepts: The Spread</h2>
<p class="text-gray-400 text-sm mb-6">The price you see is determined by the **Bid** (your sell price) and the **Ask** (the buy price). The gap between them is the **Spread**.</p>
<div class="flex justify-center items-center p-4">
<div class="spread-container">
<div id="bid-bar" class="spread-bar rounded-t-sm">
<span class="price" id="bid-price-label">4¢</span>
<span class="label">BID</span>
</div>
<div id="gap-bar"></div>
<div id="ask-bar" class="spread-bar rounded-t-sm">
<span class="price" id="ask-price-label">29¢</span>
<span class="label">ASK</span>
</div>
</div>
</div>
<div class="mt-8 text-center text-xs text-gray-400">
<p><strong class="text-white">WIDE SPREAD (Pre-Game):</strong> High risk, low liquidity. Hard to sell.</p>
<p><strong class="text-white">TIGHT SPREAD (Live Game):</strong> Lower risk, high liquidity. Easy to sell.</p>
</div>
</div>
<!-- Tile 2: Fee Structure -->
<div class="tile p-6 rounded-lg" style="animation-delay: 0.2s;">
<h2 class="text-xl font-bold mb-4 border-b border-gray-600 pb-2">Fee Structure</h2>
<ul class="space-y-4 text-gray-300">
<li class="flex items-start">
<svg class="w-5 h-5 mr-3 text-green-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
<span><strong class="text-white">NO FEE</strong> to buy contracts.</span>
</li>
<li class="flex items-start">
<svg class="w-5 h-5 mr-3 text-green-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
<span><strong class="text-white">NO FEE</strong> if you sell for a loss.</span>
</li>
<li class="flex items-start">
<svg class="w-5 h-5 mr-3 text-yellow-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
<span>A small fee is charged <strong class="text-white">ONLY</strong> on your <strong class="text-green-400">PROFIT</strong> when you sell.</span>
</li>
</ul>
</div>
<!-- Tile 3: The 10% Profit Algorithm -->
<div class="tile p-6 rounded-lg lg:col-span-3 calculator" style="animation-delay: 0.3s;">
<h2 class="text-xl font-bold mb-2 text-center">The 10% Profit Calculator</h2>
<p class="text-gray-400 text-sm mb-6 text-center">Calculate your exact exit price to lock in a 10% net profit after fees.</p>
<div class="grid grid-cols-1 md:grid-cols-3 items-center gap-6 text-center">
<!-- Input -->
<div>
<label for="buyPrice" class="block text-sm font-medium text-gray-300 mb-2">Your Buy Price (¢)</label>
<input type="number" id="buyPrice" value="14" class="w-32 p-2 rounded-md focus:outline-none focus:ring-2 focus:ring-green-500">
</div>
<!-- Output -->
<div class="md:col-span-2">
<p class="text-sm text-gray-300 mb-2">Target Sell Price (After 3.5% Fee)</p>
<div id="targetPrice" class="text-4xl font-bold calculator-output">15.5¢</div>
</div>
</div>
<div class="mt-6 p-4 bg-gray-900 rounded-md text-center">
<p class="text-gray-400 text-sm">The Formula:</p>
<code class="text-green-400 text-base">Sell Price = Buy Price + ( (Buy Price * 0.10) / 0.965 )</code>
</div>
</div>
<!-- Tile 4: Your Rules for Success -->
<div class="tile p-6 rounded-lg lg:col-span-3" style="animation-delay: 0.4s;">
<h2 class="text-xl font-bold mb-4 border-b border-gray-600 pb-2">Your Rules for Success</h2>
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-4 text-center">
<div class="p-4 bg-gray-900/50 rounded-md">
<h3 class="font-bold text-lg">1. Buy Low</h3>
<p class="text-xs text-gray-400">Find good entry points when the market is undervaluing an outcome.</p>
</div>
<div class="p-4 bg-gray-900/50 rounded-md">
<h3 class="font-bold text-lg">2. Stick to the Plan</h3>
<p class="text-xs text-gray-400">Use the calculator. Sell when you hit your target profit %.</p>
</div>
<div class="p-4 bg-gray-900/50 rounded-md">
<h3 class="font-bold text-lg">3. Lock It In</h3>
<p class="text-xs text-gray-400">A small, guaranteed win is better than a potential big loss. Don't get greedy.</p>
</div>
<div class="p-4 bg-gray-900/50 rounded-md">
<h3 class="font-bold text-lg">4. Know the Phase</h3>
<p class="text-xs text-gray-400">Pre-game is for planning. The live game is for trading when liquidity is high.</p>
</div>
</div>
</div>
</div>
</div>
<script>
const buyPriceInput = document.getElementById('buyPrice');
const targetPriceDiv = document.getElementById('targetPrice');
const feeRate = 0.035; // 3.5% fee
const profitTarget = 0.10; // 10% profit
function calculateTargetPrice() {
const buyPrice = parseFloat(buyPriceInput.value) / 100; // convert cents to dollars
if (isNaN(buyPrice) || buyPrice <= 0) {
targetPriceDiv.textContent = '---';
return;
}
const grossProfit = (buyPrice * profitTarget) / (1 - feeRate);
const sellPrice = buyPrice + grossProfit;
const sellPriceInCents = (sellPrice * 100).toFixed(1);
targetPriceDiv.textContent = `${sellPriceInCents}¢`;
// Animation trigger
targetPriceDiv.classList.add('updated');
setTimeout(() => {
targetPriceDiv.classList.remove('updated');
}, 300);
}
buyPriceInput.addEventListener('input', calculateTargetPrice);
// Initial calculation on load
calculateTargetPrice();
// Animate tiles on load
document.addEventListener('DOMContentLoaded', () => {
const tiles = document.querySelectorAll('.tile');
tiles.forEach((tile, index) => {
tile.style.animationDelay = `${index * 0.1}s`;
});
});
</script>
</body>
</html>