import React from 'react'; import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, LineChart, Line } from 'recharts'; const AdjustedLinearPlan = () => { // Вхідні дані const data = { Instagram: { subscribers: { fact2024: 801556, fact2025: 811833, plan2026_original: 850000 }, reach: { fact2024: 8074669, fact2025_9months: 12000000 }, targetGrowth: 0.11 // 11% - середнє між 10-12% }, Facebook: { subscribers: { fact2024: 778000, fact2025: 970671, plan2026_original: 1200000 }, reach: { fact2024: 14685371, fact2025_9months: 33914401 }, targetGrowth: 0.15 // 15% - помірне зростання }, TikTok: { subscribers: { fact2024: 194100, fact2025: 261278, plan2026_original: 400000 }, reach: { fact2024: 28000000, fact2025_9months: 47270338 }, targetGrowth: null // Залишаємо лінійний розрахунок } }; const extrapolateTo12Months = (reach9months) => { return Math.round(reach9months * (12/9)); }; const calculatePlatform = (platform, platformData) => { const subs = platformData.subscribers; const reach = platformData.reach; const targetGrowth = platformData.targetGrowth; const reach2025full = extrapolateTo12Months(reach.fact2025_9months); let reach2026, subs2026, reachGrowth, subsGrowth, approach; if (targetGrowth !== null) { // Цільове зростання задано - розраховуємо назад reach2026 = Math.round(reach2025full * (1 + targetGrowth)); reachGrowth = targetGrowth * 100; // Розраховуємо необхідну кількість підписників const reachPerSubscriber2025 = reach2025full / subs.fact2025; subs2026 = Math.round(reach2026 / reachPerSubscriber2025); subsGrowth = ((subs2026 - subs.fact2025) / subs.fact2025 * 100); approach = 'Цільове зростання'; } else { // Лінійний розрахунок (як для TikTok) subs2026 = subs.plan2026_original; const subsGrowthCoef = subs2026 / subs.fact2025; reach2026 = Math.round(reach2025full * subsGrowthCoef); reachGrowth = ((reach2026 - reach2025full) / reach2025full * 100); subsGrowth = ((subsGrowthCoef - 1) * 100); approach = 'Лінійний (пропорційно підписникам)'; } return { platform, subs2024: subs.fact2024, subs2025: subs.fact2025, subs2026, subs2026_original: subs.plan2026_original, reach2024: reach.fact2024, reach2025_9m: reach.fact2025_9months, reach2025full, reach2026, reachGrowth: reachGrowth.toFixed(1), subsGrowth: subsGrowth.toFixed(1), approach, subsAdjustment: subs2026 - subs.plan2026_original }; }; const results = [ calculatePlatform('Instagram', data.Instagram), calculatePlatform('Facebook', data.Facebook), calculatePlatform('TikTok', data.TikTok) ]; // Дані для графіків const reachChartData = [ { year: '2024 факт', Instagram: results[0].reach2024, Facebook: results[1].reach2024, TikTok: results[2].reach2024 }, { year: '2025 (9 міс факт)', Instagram: results[0].reach2025_9m, Facebook: results[1].reach2025_9m, TikTok: results[2].reach2025_9m }, { year: '2025 (повний рік)', Instagram: results[0].reach2025full, Facebook: results[1].reach2025full, TikTok: results[2].reach2025full }, { year: '2026 (скоригований план)', Instagram: results[0].reach2026, Facebook: results[1].reach2026, TikTok: results[2].reach2026 } ]; const subsChartData = [ { year: '2024', Instagram: results[0].subs2024, Facebook: results[1].subs2024, TikTok: results[2].subs2024 }, { year: '2025', Instagram: results[0].subs2025, Facebook: results[1].subs2025, TikTok: results[2].subs2025 }, { year: '2026 (оригінальний)', Instagram: results[0].subs2026_original, Facebook: results[1].subs2026_original, TikTok: results[2].subs2026_original }, { year: '2026 (скоригований)', Instagram: results[0].subs2026, Facebook: results[1].subs2026, TikTok: results[2].subs2026 } ]; const formatNumber = (num) => { return new Intl.NumberFormat('uk-UA').format(num); }; const totalReach2025 = results.reduce((sum, r) => sum + r.reach2025full, 0); const totalReach2026 = results.reduce((sum, r) => sum + r.reach2026, 0); const totalGrowth = ((totalReach2026 - totalReach2025) / totalReach2025 * 100).toFixed(1); return (

Скоригований план охоплень 2026

Лінійний сценарій з урахуванням цільових показників

{/* Обґрунтування */}

📋 Логіка коригування

Instagram

Цільове зростання: 11% (середнє між 10-12%)

Лінійний сценарій давав лише +4.7%. Для досягнення 11% зростання охоплень потрібно збільшити план підписників.

Facebook

Зростання знижено до 15%

Оригінальний план (+23.6%) був занадто амбітним. 15% - більш реалістичне зростання при стабільній команді.

TikTok

Залишається +53.1%

Агресивний, але досяжний план. TikTok має найбільший потенціал зростання для вашого контенту.

{/* Основна таблиця */}

План на 2026

{results.map((row, idx) => ( ))}
Платформа Підписники 2025 Підписники 2026 Зміна Охоплення 2025 Охоплення 2026 Зростання
{row.platform} {formatNumber(row.subs2025)} {formatNumber(row.subs2026)} {row.subsAdjustment !== 0 && (
{row.subsAdjustment > 0 ? '+' : ''}{formatNumber(row.subsAdjustment)}
)}
0 ? 'text-green-600 font-semibold' : 'text-red-600'}> {row.subsGrowth > 0 ? '+' : ''}{row.subsGrowth}% {formatNumber(row.reach2025full)} {formatNumber(row.reach2026)} +{row.reachGrowth}%
ЗАГАЛОМ {formatNumber(results.reduce((s,r) => s + r.subs2025, 0))} {formatNumber(results.reduce((s,r) => s + r.subs2026, 0))} {formatNumber(totalReach2025)} {formatNumber(totalReach2026)} +{totalGrowth}%
{/* Порівняння: було/стало */}

Порівняння: оригінал vs скоригований план

{results.map((row, idx) => (

{row.platform}

Підписники (оригінал)
{formatNumber(row.subs2026_original)}
Підписники (скоригований)
{formatNumber(row.subs2026)}
{row.subsAdjustment !== 0 && (
{row.subsAdjustment > 0 ? '↑' : '↓'} {formatNumber(Math.abs(row.subsAdjustment))}
)}
Охоплення 2026
{formatNumber(row.reach2026)}
+{row.reachGrowth}%
))}
{/* Графік охоплень */}

Динаміка охоплень

formatNumber(value)} />
{/* Графік підписників */}

Динаміка підписників

formatNumber(value)} />
{/* Підсумок */}

✅ Підсумок скоригованого плану

Загальні показники

Охоплення 2025: {formatNumber(totalReach2025)}
Охоплення 2026: {formatNumber(totalReach2026)}
Зростання: +{totalGrowth}%
Абсолютний приріст: +{formatNumber(totalReach2026 - totalReach2025)}

Ключові зміни

  • ✅ Instagram: зростання збільшено з 4.7% до 11%
  • ✅ Facebook: зростання знижено з 23.6% до 15%
  • ✅ TikTok: залишається 53.1% (найбільший потенціал)
  • 📊 Загальне зростання: {totalGrowth}%

💡 Чому саме така модель:

  • • Реалістична для стабільної команди та меншої кількості продуктів
  • • Враховує різний потенціал кожної платформи
  • • Instagram отримує фокус на якість охоплень, а не лише на підписників
  • • Facebook - помірне зростання без надмірного тиску
  • • TikTok використовує вірусний потенціал на максимум
); }; export default AdjustedLinearPlan;