Pick a depth. Each prompt opens in your AI pre-loaded with the lesson. Click a row to preview the prompt.
Paid loops require you to keep spending to maintain growth — the moment you stop buying, the machine stops. Viral loops compound from within your user base, so the cost per acquired user drops as scale increases. Knowing which loop your product can support determines whether your unit economics will improve or stay flat as you grow.
Model paid and viral acquisition over 6 months starting from the same seed.
function paidGrowth(monthlyBudget: number, cac: number, months: number) {
const newUsersPerMonth = monthlyBudget / cac;
return Array.from({ length: months }, (_, i) => ({
month: i + 1,
totalUsers: newUsersPerMonth * (i + 1),
totalSpend: monthlyBudget * (i + 1),
}));
}
function viralGrowth(seed: number, k: number, months: number) {
let users = seed;
return Array.from({ length: months }, (_, i) => {
users = users * (1 + k);
return { month: i + 1, totalUsers: Math.round(users), totalSpend: 0 };
});
}
const paid = paidGrowth(10000, 50, 6); // $10k/mo, $50 CAC
const viral = viralGrowth(200, 0.30, 6); // 200 seed users, k=0.30
paid.forEach((p, i) => console.log(`Mo ${p.month}: paid=${p.totalUsers} viral=${viral[i].totalUsers}`));