import React, { useState } from 'react'; const Forecast2026 = () => { const [selectedScenario, setSelectedScenario] = useState('base'); const scenarios = { conservative: { name: "Консервативный", color: "bg-orange-50 border-orange-200", subscribers: [300, 400, 500, 650, 800, 950, 1100, 1300, 1500, 1700, 1900, 2100], marketing: [1000000, 1000000, 900000, 850000, 850000, 750000, 750000, 700000, 700000, 650000, 650000, 600000] }, base: { name: "Базовый", color: "bg-blue-50 border-blue-200", subscribers: [500, 650, 850, 1100, 1400, 1750, 2100, 2500, 3000, 3500, 4000, 4500], marketing: [1200000, 1200000, 1000000, 900000, 900000, 800000, 800000, 750000, 750000, 700000, 700000, 650000] }, optimistic: { name: "Оптимистичный", color: "bg-green-50 border-green-200", subscribers: [700, 1000, 1400, 1900, 2500, 3200, 4000, 5000, 6200, 7500, 9000, 11000], marketing: [1500000, 1500000, 1300000, 1200000, 1200000, 1100000, 1100000, 1000000, 1000000, 950000, 950000, 900000] } }; const months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек']; const programmers = 1700000; const calculateMonthData = (subs, marketing) => { const subscriptionRev = subs * 999; const tokenRev = subscriptionRev * 0.3; const totalRev = subscriptionRev + tokenRev; const infrastructure = 300000 + (subs * 150); const development = programmers + infrastructure; return { subs, revenue: totalRev, subscriptionRev, tokenRev, marketing, development, programmers, infrastructure, result: totalRev - marketing - development }; }; const scenario = scenarios[selectedScenario]; const monthlyData = months.map((_, i) => calculateMonthData(scenario.subscribers[i], scenario.marketing[i]) ); const totals = monthlyData.reduce((acc, m) => ({ revenue: acc.revenue + m.revenue, marketing: acc.marketing + m.marketing, development: acc.development + m.development, result: acc.result + m.result }), { revenue: 0, marketing: 0, development: 0, result: 0 }); const formatNum = (num) => { return new Intl.NumberFormat('ru-RU').format(Math.round(num)); }; const formatMln = (num) => { return (num / 1000000).toFixed(1) + ' млн'; }; return (

Финансовый прогноз на 2026 год

Альпина.GEN - Платформа ИИ (новая модель монетизации)

{Object.entries(scenarios).map(([key, s]) => ( ))}

Итоги года: {scenario.name} сценарий

Выручка
{formatMln(totals.revenue)}
Маркетинг
-{formatMln(totals.marketing)}
Разработка
-{formatMln(totals.development)}
Результат
= 0 ? 'text-green-600' : 'text-red-600'}`}> {totals.result >= 0 ? '+' : ''}{formatMln(totals.result)}
Подписчиков на конец года
{formatNum(scenario.subscribers[11])}
{monthlyData.map((data, i) => ( ))}
Месяц Подписчики Выручка (подписки) Выручка (токены) ИТОГО Выручка Маркетинг Зарплаты Инфраструктура ИТОГО Разработка Результат
{months[i]} {formatNum(data.subs)} {formatNum(data.subscriptionRev)} {formatNum(data.tokenRev)} {formatNum(data.revenue)} -{formatNum(data.marketing)} {formatNum(data.programmers)} {formatNum(data.infrastructure)} -{formatNum(data.development)} = 0 ? 'text-green-600' : 'text-red-600'}`}> {data.result >= 0 ? '+' : ''}{formatNum(data.result)}
ИТОГО {formatNum(scenario.subscribers[11])} {formatNum(totals.revenue)} -{formatNum(totals.marketing)} {formatNum(programmers * 12)} -{formatNum(totals.development)} = 0 ? 'text-green-600' : 'text-red-600'}`}> {totals.result >= 0 ? '+' : ''}{formatNum(totals.result)}

Ключевые предположения модели:

  • Монетизация: Подписка 999 руб/мес + покупки токенов (~30% от подписки)
  • Разработка (фикс): 1,7 млн руб/мес зарплаты программистам
  • Инфраструктура: 300К базовая + 150 руб на пользователя в месяц (API, серверы)
  • Маркетинг B2C: Высокий в начале (запуск), снижается по мере роста органики
  • Churn: Не учтен (оптимистично), рекомендуется закладывать 5-10% в месяц

Рекомендации:

  • ✓ Для выхода в точку безубыточности нужно ~4800-5000 подписчиков
  • ✓ Критично отслеживать CAC (стоимость привлечения) и LTV (lifetime value)
  • ✓ B2C маркетинг наиболее важен в первые 3-4 месяца для набора критической массы
  • ✓ После 2000 подписчиков можно снижать маркетинг за счет сарафанного радио
  • ✓ Рекомендуется пилотный запуск в январе-феврале для тестирования конверсии
); }; export default Forecast2026;