1<!DOCTYPE html>
2<html lang="uk">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>Стратегія Розвитку SMM-Відділу | LOCOMOTIVE</title>
7    <script src="https://cdn.tailwindcss.com"></script>
8    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
9    <link rel="preconnect" href="https://fonts.googleapis.com">
10    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11    <link href="https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
12    <!-- Chosen Palette: Calm Corporate -->
13    <!-- Application Structure Plan: The SPA is designed as a persuasive narrative for management, flowing from problem to solution. It starts with a high-level dashboard (Section 1), dives into a detailed diagnosis of financial and operational problems (Section 2), presents the new standardized model as the solution (Section 3), demonstrates the financial payoff with an interactive calculator (Section 4), directly addresses key management concerns like fixed costs vs. freelancers (Section 5), outlines potential risks and mitigation strategies (Section 6), and concludes with a clear implementation roadmap (Section 7). This structure guides the user logically through the argument, making the complex strategy easy to understand and approve. -->
14    <!-- Visualization & Content Choices: 
15        - Goal: Show current vs. target state -> Method: KPI cards (HTML/Tailwind) -> Interaction: Static -> Justification: Quick, high-impact overview.
16        - Goal: Highlight financial instability -> Method: Bar Chart (Chart.js) showing extreme project profitability variance -> Interaction: Hover for details -> Justification: Visually demonstrates the chaos and lack of control.
17        - Goal: Show operational chaos -> Method: Large number comparison (HTML/Tailwind) for "Promise vs. Reality" (7 vs 95 specialists) -> Interaction: Static -> Justification: A powerful, memorable visual punch.
18        - Goal: Explain the new financial model -> Method: Donut Chart (Chart.js) breaking down the 65k UAH check -> Interaction: Hover for details -> Justification: Clearly shows the "golden standard" of 40% profitability.
19        - Goal: Present the new team -> Method: Structured org chart (HTML/Tailwind) -> Interaction: Static -> Justification: Clearly defines roles and scalability.
20        - Goal: Demonstrate financial potential -> Method: Interactive slider/calculator (JS) -> Interaction: User can drag slider to see profit change -> Justification: Engages management, allows them to 'own' the projection, and builds confidence.
21        - Goal: Address freelancer vs. in-house debate -> Method: Comparison Table (HTML/Tailwind) -> Interaction: Static -> Justification: Directly compares pros and cons to overcome a key objection.
22        - Goal: Outline implementation -> Method: Visual Timeline (HTML/Tailwind) -> Interaction: Static -> Justification: Provides a clear, actionable plan.
23        - Library/Method: Chart.js for all charts (Canvas-based), custom JS for interactivity, Tailwind CSS for layout and styling. -->
24    <!-- CONFIRMATION: NO SVG graphics used. NO Mermaid JS used. -->
25    <style>
26        html { scroll-behavior: smooth; }
27        body {
28            font-family: 'Manrope', sans-serif;
29            background-color: #F8F7F4;
30            color: #2c3e50;
31        }
32        .nav-link {
33            transition: all 0.3s ease;
34            border-bottom: 2px solid transparent;
35        }
36        .nav-link:hover, .nav-link.active {
37            color: #3B82F6;
38            border-bottom-color: #3B82F6;
39        }
40        .kpi-card {
41            background-color: #FFFFFF;
42            border-radius: 0.75rem;
43            padding: 1.5rem;
44            box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
45            transition: transform 0.3s ease, box-shadow 0.3s ease;
46            border: 1px solid #E5E7EB;
47        }
48        .kpi-card:hover {
49            transform: translateY(-5px);
50            box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
51        }
52        .chart-container {
53            position: relative;
54            width: 100%;
55            max-width: 800px;
56            margin-left: auto;
57            margin-right: auto;
58            height: 400px;
59            max-height: 50vh;
60        }
61        @media (max-width: 768px) {
62            .chart-container {
63                height: 300px;
64                max-height: 60vh;
65            }
66        }
67        .section-title {
68            font-size: 2.25rem;
69            font-weight: 800;
70            line-height: 2.5rem;
71            color: #1a202c;
72        }
73        .section-subtitle {
74            font-size: 1.25rem;
75            color: #4a5568;
76            margin-top: 0.5rem;
77        }
78        .accent-bg { background-color: #EFF6FF; }
79        .accent-text { color: #3B82F6; }
80        .btn-primary {
81            background-color: #3B82F6;
82            color: white;
83            padding: 0.75rem 1.5rem;
84            border-radius: 0.5rem;
85            font-weight: 600;
86            transition: background-color 0.3s ease;
87        }
88        .btn-primary:hover {
89            background-color: #2563EB;
90        }
91        .table-header {
92            background-color: #F3F4F6;
93        }
94        .timeline-item::before {
95            content: '';
96            position: absolute;
97            left: 1rem;
98            top: 1.5rem;
99            bottom: -1.5rem;
100            width: 2px;
101            background-color: #D1D5DB;
102        }
103        .timeline-item:last-child::before {
104            display: none;
105        }
106        .timeline-dot {
107            position: absolute;
108            left: calc(1rem - 0.5rem + 1px);
109            top: 1.5rem;
110            height: 1rem;
111            width: 1rem;
112            border-radius: 9999px;
113            background-color: white;
114            border: 2px solid #3B82F6;
115        }
116        input[type=range]::-webkit-slider-thumb {
117            -webkit-appearance: none;
118            appearance: none;
119            width: 24px;
120            height: 24px;
121            background: #3B82F6;
122            cursor: pointer;
123            border-radius: 50%;
124            margin-top: -8px;
125        }
126        input[type=range]::-moz-range-thumb {
127            width: 24px;
128            height: 24px;
129            background: #3B82F6;
130            cursor: pointer;
131            border-radius: 50%;
132        }
133    </style>
134</head>
135<body class="antialiased">
136
137    <header class="bg-white/80 backdrop-blur-lg sticky top-0 z-50 shadow-sm">
138        <nav class="container mx-auto px-4 sm:px-6 lg:px-8">
139            <div class="flex items-center justify-between h-16">
140                <div class="flex-shrink-0">
141                    <h1 class="text-xl font-bold text-gray-800">LOCOMOTIVE | SMM Strategy</h1>
142                </div>
143                <div class="hidden md:block">
144                    <div class="ml-10 flex items-baseline space-x-4">
145                        <a href="#dashboard" class="nav-link px-3 py-2 rounded-md text-sm font-medium">Дашборд</a>
146                        <a href="#problem" class="nav-link px-3 py-2 rounded-md text-sm font-medium">Проблема</a>
147                        <a href="#solution" class="nav-link px-3 py-2 rounded-md text-sm font-medium">Рішення</a>
148                        <a href="#forecast" class="nav-link px-3 py-2 rounded-md text-sm font-medium">Прогноз</a>
149                        <a href="#risks" class="nav-link px-3 py-2 rounded-md text-sm font-medium">Ризики</a>
150                        <a href="#roadmap" class="nav-link px-3 py-2 rounded-md text-sm font-medium">План</a>
151                    </div>
152                </div>
153            </div>
154        </nav>
155    </header>
156
157    <main>
158        <section id="dashboard" class="py-16 md:py-24">
159            <div class="container mx-auto px-4 sm:px-6 lg:px-8 text-center">
160                <h2 class="text-base font-semibold text-blue-600 tracking-wide uppercase">Стратегія розвитку SMM-відділу</h2>
161                <p class="mt-2 text-3xl font-extrabold text-gray-900 tracking-tight sm:text-4xl">Від операційного хаосу до прогнозованого прибутку</p>
162                <p class="mt-5 max-w-3xl mx-auto text-xl text-gray-500">Шлях до досягнення 40% рентабельності, масштабування до 20 клієнтів та побудови стійкої, керованої бізнес-моделі.</p>
163
164                <div class="mt-12 grid gap-8 md:grid-cols-2 lg:grid-cols-4">
165                    <div class="kpi-card">
166                        <h3 class="text-lg font-medium text-gray-500">Поточна рентабельність</h3>
167                        <p class="mt-2 text-4xl font-bold text-red-500">24.43%</p>
168                    </div>
169                    <div class="kpi-card">
170                        <h3 class="text-lg font-medium text-gray-500">Цільова рентабельність</h3>
171                        <p class="mt-2 text-4xl font-bold text-green-500">40%</p>
172                    </div>
173                    <div class="kpi-card">
174                        <h3 class="text-lg font-medium text-gray-500">Поточний середній чек</h3>
175                        <p class="mt-2 text-4xl font-bold text-red-500">~53 000 грн</p>
176                    </div>
177                    <div class="kpi-card">
178                        <h3 class="text-lg font-medium text-gray-500">Цільовий чек</h3>
179                        <p class="mt-2 text-4xl font-bold text-green-500">65 000 грн</p>
180                    </div>
181                </div>
182            </div>
183        </section>
184
185        <section id="problem" class="py-16 md:py-24 accent-bg">
186            <div class="container mx-auto px-4 sm:px-6 lg:px-8">
187                <div class="text-center">
188                    <h2 class="section-title">Діагностика: Чому ми не досягаємо цілей?</h2>
189                    <p class="section-subtitle max-w-3xl mx-auto">Наша поточна модель активно саботує власну ефективність. Аналіз даних виявив дві фундаментальні проблеми, що унеможливлюють зростання та стабільний прибуток.</p>
190                </div>
191
192                <div class="mt-16 grid md:grid-cols-2 gap-12 items-start">
193                    <div class="bg-white p-8 rounded-lg shadow-lg">
194                        <h3 class="text-2xl font-bold text-gray-900">1. Фінансова нестабільність</h3>
195                        <p class="mt-4 text-gray-600">Ми не керуємо прибутком — ми на нього сподіваємось. Рентабельність окремих проєктів коливається від глибоко збиткової до надприбуткової, що унеможливлює будь-яке фінансове планування.</p>
196                        <div class="mt-6 chart-container">
197                            <canvas id="profitabilityChart"></canvas>
198                        </div>
199                        <p class="text-center text-sm text-gray-500 mt-2">Рентабельність ключових проєктів</p>
200                    </div>
201                    <div class="bg-white p-8 rounded-lg shadow-lg">
202                        <h3 class="text-2xl font-bold text-gray-900">2. Операційний хаос</h3>
203                        <p class="mt-4 text-gray-600">Існує величезна прірва між тим, що ми обіцяємо клієнтам, і тим, як ми працюємо насправді. Це створює приховані витрати, знижує якість та блокує масштабування.</p>
204                        <div class="mt-8 grid grid-cols-2 gap-8 text-center">
205                            <div>
206                                <p class="text-6xl font-extrabold accent-text">7</p>
207                                <p class="mt-2 text-lg font-medium text-gray-700">Спеціалістів у команді<br><span class="text-sm text-gray-500">(що ми обіцяємо клієнту)</span></p>
208                            </div>
209                            <div>
210                                <p class="text-6xl font-extrabold text-red-500">95</p>
211                                <p class="mt-2 text-lg font-medium text-gray-700">Унікальних фрилансерів<br><span class="text-sm text-gray-500">(з ким ми працюємо насправді)</span></p>
212                            </div>
213                        </div>
214                         <p class="mt-8 text-gray-600">Наслідки: адміністративне перевантаження менеджерів, непослідовна якість, нульова масштабованість. Якщо для ~7 клієнтів потрібно 95 фрилансерів, для 20 знадобиться понад 300. Модель не витримає такого навантаження.</p>
215                    </div>
216                </div>
217            </div>
218        </section>
219
220        <section id="solution" class="py-16 md:py-24">
221            <div class="container mx-auto px-4 sm:px-6 lg:px-8">
222                <div class="text-center">
223                    <h2 class="section-title">Стратегічне рішення: Нова операційна модель</h2>
224                    <p class="section-subtitle max-w-3xl mx-auto">Ми пропонуємо фундаментальний перехід від реактивного підходу до стандартизованого, прогнозованого та масштабованого продукту.</p>
225                </div>
226
227                <div class="mt-16 space-y-16">
228                    <div class="grid md:grid-cols-2 gap-12 items-center">
229                        <div>
230                            <h3 class="text-2xl font-bold text-gray-900">1. "Золотий стандарт": Юніт-економіка одного клієнта</h3>
231                            <p class="mt-4 text-gray-600">Встановлюємо непорушні фінансові правила для кожного проєкту. Чек у 65 000 грн розподіляється на чіткі, контрольовані категорії, що гарантує 40% рентабельності. Це наш закон.</p>
232                        </div>
233                        <div class="chart-container h-80 max-h-[40vh]">
234                            <canvas id="unitEconomicsChart"></canvas>
235                        </div>
236                    </div>
237
238                    <div class="grid md:grid-cols-2 gap-12 items-center">
239                         <div class="order-2 md:order-1">
240                            <h3 class="text-2xl font-bold text-gray-900">2. Нова командна структура</h3>
241                            <p class="mt-4 text-gray-600">Замість хаотичної мережі з 95 фрилансерів ми формуємо ефективну штатну команду з 14 осіб для обслуговування 20 клієнтів. Це забезпечує якість, керованість та прогнозоване навантаження.</p>
242                            <div class="mt-6 space-y-4">
243                                <div class="p-4 bg-gray-100 rounded-lg">
244                                    <p class="font-bold">Керівник SMM-відділу (1)</p>
245                                </div>
246                                <div class="grid grid-cols-2 gap-4">
247                                    <div class="p-4 bg-blue-100 rounded-lg">
248                                        <p class="font-bold">Проєктний менеджер (2)</p>
249                                        <p class="text-sm text-gray-600">10 проєктів/ПМ</p>
250                                    </div>
251                                    <div class="p-4 bg-blue-100 rounded-lg">
252                                        <p class="font-bold">Таргетолог (1)</p>
253                                        <p class="text-sm text-gray-600">20 проєктів</p>
254                                    </div>
255                                </div>
256                                <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
257                                     <div class="p-3 bg-green-100 rounded-lg">
258                                        <p class="font-bold">SMM-спеціаліст (4)</p>
259                                        <p class="text-sm text-gray-600">5 пр./спец.</p>
260                                    </div>
261                                    <div class="p-3 bg-green-100 rounded-lg">
262                                        <p class="font-bold">Дизайнер (2)</p>
263                                        <p class="text-sm text-gray-600">10 пр./спец.</p>
264                                    </div>
265                                    <div class="p-3 bg-green-100 rounded-lg">
266                                        <p class="font-bold">Відеограф (2)</p>
267                                        <p class="text-sm text-gray-600">10 пр./спец.</p>
268                                    </div>
269                                    <div class="p-3 bg-green-100 rounded-lg">
270                                        <p class="font-bold">Монтажер (2)</p>
271                                        <p class="text-sm text-gray-600">10 пр./спец.</p>
272                                    </div>
273                                </div>
274                            </div>
275                        </div>
276                        <div class="order-1 md:order-2">
277                            <h3 class="text-2xl font-bold text-gray-900">3. Конкурентна модель зарплат</h3>
278                            <p class="mt-4 text-gray-600">Ми залучаємо та утримуємо найкращих спеціалістів, пропонуючи зарплати вище ринкових та прозору систему бонусів, що прив'язана до рентабельності та утримання клієнтів.</p>
279                             <div class="overflow-x-auto mt-6">
280                                <table class="w-full text-left border-collapse">
281                                    <thead>
282                                        <tr>
283                                            <th class="table-header p-3 text-sm font-semibold tracking-wide">Посада</th>
284                                            <th class="table-header p-3 text-sm font-semibold tracking-wide text-right">Зарплата (грн)</th>
285                                        </tr>
286                                    </thead>
287                                    <tbody class="divide-y divide-gray-200">
288                                        <tr><td class="p-3">Проєктний менеджер</td><td class="p-3 text-right font-semibold">60 000</td></tr>
289                                        <tr><td class="p-3">SMM-спеціаліст</td><td class="p-3 text-right font-semibold">40 000</td></tr>
290                                        <tr><td class="p-3">Дизайнер</td><td class="p-3 text-right font-semibold">35 000</td></tr>
291                                        <tr><td class="p-3">Відеограф/Монтажер</td><td class="p-3 text-right font-semibold">35 000</td></tr>
292                                        <tr><td class="p-3">Таргетолог</td><td class="p-3 text-right font-semibold">50 000</td></tr>
293                                        <tr class="bg-gray-100"><td class="p-3 font-bold">Загальний ФОП (13 осіб)</td><td class="p-3 text-right font-bold">540 000 / міс.</td></tr>
294                                        <tr class="bg-blue-100"><td class="p-3 font-bold">Гнучкий бонусний фонд</td><td class="p-3 text-right font-bold">30 000 / міс.</td></tr>
295                                    </tbody>
296                                </table>
297                            </div>
298                        </div>
299                    </div>
300                </div>
301            </div>
302        </section>
303
304        <section id="forecast" class="py-16 md:py-24 accent-bg">
305            <div class="container mx-auto px-4 sm:px-6 lg:px-8">
306                <div class="text-center">
307                    <h2 class="section-title">Інтерактивний фінансовий прогноз</h2>
308                    <p class="section-subtitle max-w-3xl mx-auto">Змоделюйте потенціал нової стратегії. Пересуньте слайдер, щоб побачити, як змінюється прибуток зі зростанням кількості клієнтів.</p>
309                </div>
310
311                <div class="mt-12 bg-white p-8 rounded-lg shadow-lg max-w-4xl mx-auto">
312                    <div class="flex flex-col md:flex-row justify-between items-center mb-6">
313                        <label for="clientSlider" class="font-semibold text-lg mb-4 md:mb-0">Кількість клієнтів: <span id="clientCount" class="text-blue-600 font-bold text-2xl">10</span></label>
314                        <input id="clientSlider" type="range" min="1" max="20" value="10" class="w-full md:w-2/3 h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer">
315                    </div>
316
317                    <div class="grid grid-cols-1 md:grid-cols-3 gap-6 text-center mt-8">
318                        <div class="p-6 bg-gray-50 rounded-lg">
319                            <h4 class="text-lg font-medium text-gray-500">Місячний дохід</h4>
320                            <p id="monthlyRevenue" class="text-3xl font-bold text-gray-800 mt-2">650 000 грн</p>
321                        </div>
322                        <div class="p-6 bg-red-50 rounded-lg">
323                            <h4 class="text-lg font-medium text-gray-500">Місячні витрати</h4>
324                            <p id="monthlyCosts" class="text-3xl font-bold text-red-600 mt-2">427 500 грн</p>
325                        </div>
326                        <div class="p-6 bg-green-50 rounded-lg">
327                            <h4 class="text-lg font-medium text-gray-500">Місячний прибуток</h4>
328                            <p id="monthlyProfit" class="text-3xl font-bold text-green-600 mt-2">222 500 грн</p>
329                        </div>
330                    </div>
331                     <div class="mt-8 p-6 bg-blue-50 rounded-lg text-center">
332                        <h4 class="text-xl font-semibold text-blue-800">Прогнозований скоригований річний прибуток</h4>
333                        <p id="annualProfit" class="text-5xl font-extrabold text-blue-600 mt-3">2 670 000 грн</p>
334                        <p class="text-sm text-gray-600 mt-2">(Враховує відтік 2.5 клієнтів/міс та вартість залучення 30 000 грн/клієнт)</p>
335                    </div>
336                </div>
337            </div>
338        </section>
339        
340        <section id="risks" class="py-16 md:py-24">
341            <div class="container mx-auto px-4 sm:px-6 lg:px-8">
342                <div class="text-center">
343                    <h2 class="section-title">Штат vs Фриланс: Зняття заперечень</h2>
344                    <p class="section-subtitle max-w-3xl mx-auto">Основне занепокоєння — ризик фіксованих витрат на штатну команду. Розглянемо, чому стабільна команда є стратегічно вигіднішою інвестицією, ніж ілюзорна гнучкість фрилансу.</p>
345                </div>
346                <div class="mt-12 max-w-5xl mx-auto">
347                    <div class="grid md:grid-cols-2 gap-8">
348                        <div class="bg-red-50 border border-red-200 rounded-lg p-6">
349                            <h3 class="text-xl font-bold text-red-800">Модель на фрилансерах (Поточна)</h3>
350                            <ul class="mt-4 space-y-3 text-gray-700">
351                                <li class="flex items-start"><span class="text-red-500 mr-2">✗</span> <strong>Приховані витрати:</strong> Величезні витрати часу ПМ на пошук, контроль та менеджмент 95+ людей.</li>
352                                <li class="flex items-start"><span class="text-red-500 mr-2">✗</span> <strong>Нестабільна якість:</strong> Відсутність єдиних стандартів та глибокого занурення в проєкт.</li>
353                                <li class="flex items-start"><span class="text-red-500 mr-2">✗</span> <strong>Немасштабованість:</strong> Модель руйнується при зростанні. Більше клієнтів = експоненційне зростання хаосу.</li>
354                                <li class="flex items-start"><span class="text-green-500 mr-2">✓</span> <strong>Уявна гнучкість:</strong> Легко "вимкнути" витрати, якщо немає проєктів, але це ілюзія, бо якість послуг падає.</li>
355                            </ul>
356                        </div>
357                        <div class="bg-green-50 border border-green-200 rounded-lg p-6">
358                            <h3 class="text-xl font-bold text-green-800">Штатна команда (Пропонована)</h3>
359                            <ul class="mt-4 space-y-3 text-gray-700">
360                                <li class="flex items-start"><span class="text-green-500 mr-2">✓</span> <strong>Прогнозовані витрати:</strong> Чіткий ФОП дозволяє точно розрахувати рентабельність.</li>
361                                <li class="flex items-start"><span class="text-green-500 mr-2">✓</span> <strong>Висока якість та швидкість:</strong> Злагоджена команда працює швидше, якісніше та з єдиним баченням.</li>
362                                <li class="flex items-start"><span class="text-green-500 mr-2">✓</span> <strong>Масштабованість:</strong> Додавання нового клієнта не руйнує процеси, а лише збільшує навантаження в межах норми.</li>
363                                <li class="flex items-start"><span class="text-red-500 mr-2">✗</span> <strong>Ризик фіксованих витрат:</strong> Потребує стабільного потоку клієнтів для покриття ФОП, що є ключовим завданням для продажів.</li>
364                            </ul>
365                        </div>
366                    </div>
367                    <div class="mt-12 bg-white p-8 rounded-lg shadow-lg">
368                        <h3 class="text-2xl font-bold text-gray-900 text-center">Ключові ризики та стратегії їх мінімізації</h3>
369                        <div class="mt-8 grid md:grid-cols-2 lg:grid-cols-4 gap-6">
370                            <div class="bg-gray-50 p-4 rounded-lg">
371                                <h4 class="font-bold">Фінансовий ризик</h4>
372                                <p class="text-sm text-gray-600 mt-2">Касовий розрив через фіксовані витрати.</p>
373                                <p class="text-sm text-blue-600 font-semibold mt-3">Рішення: Поетапний перехід, створення фін. резерву, жорсткий контроль продажів.</p>
374                            </div>
375                             <div class="bg-gray-50 p-4 rounded-lg">
376                                <h4 class="font-bold">Кадровий ризик</h4>
377                                <p class="text-sm text-gray-600 mt-2">Конкуренція за таланти, плинність кадрів.</p>
378                                <p class="text-sm text-blue-600 font-semibold mt-3">Рішення: Конкурентна зарплата + бонуси, сильний бренд роботодавця, план наступності.</p>
379                            </div>
380                             <div class="bg-gray-50 p-4 rounded-lg">
381                                <h4 class="font-bold">Операційний ризик</h4>
382                                <p class="text-sm text-gray-600 mt-2">"Розповзання" обсягу робіт, опір змінам.</p>
383                                <p class="text-sm text-blue-600 font-semibold mt-3">Рішення: Жорсткі регламенти та KPI, система платного погодження дод. робіт.</p>
384                            </div>
385                             <div class="bg-gray-50 p-4 rounded-lg">
386                                <h4 class="font-bold">Стратегічний ризик</h4>
387                                <p class="text-sm text-gray-600 mt-2">Ринкове несприйняття ціни 65 000 грн.</p>
388                                <p class="text-sm text-blue-600 font-semibold mt-3">Рішення: Потужне обґрунтування цінності, фокус на клієнтах, для яких результат важливіший за ціну.</p>
389                            </div>
390                        </div>
391                    </div>
392                </div>
393            </section>
394
395        <section id="roadmap" class="py-16 md:py-24 accent-bg">
396            <div class="container mx-auto px-4 sm:px-6 lg:px-8">
397                <div class="text-center">
398                    <h2 class="section-title">Поетапний план впровадження</h2>
399                    <p class="section-subtitle max-w-3xl mx-auto">Дорожня карта трансформації SMM-відділу на 12 місяців.</p>
400                </div>
401                <div class="mt-16 max-w-3xl mx-auto">
402                    <div class="relative space-y-12">
403                        <div class="timeline-item relative pl-8">
404                            <div class="timeline-dot"></div>
405                            <h3 class="text-xl font-bold">Етап 1: Фундамент (Місяці 1-2)</h3>
406                            <p class="mt-2 text-gray-600">Затвердження фінансової моделі, структури команди та стандартизованого пакета послуг. Розробка HR-стратегії для найму ключових співробітників.</p>
407                            <p class="mt-2 font-semibold text-blue-600">KPI: Затверджені та задокументовані операційна та фінансова моделі.</p>
408                        </div>
409                        <div class="timeline-item relative pl-8">
410                            <div class="timeline-dot"></div>
411                            <h3 class="text-xl font-bold">Етап 2: Пілотна програма (Місяці 3-6)</h3>
412                            <p class="mt-2 text-gray-600">Набір "ядра" команди. Застосування нової моделі до всіх *нових* клієнтів. Розробка та виконання плану переходу для 2-3 існуючих клієнтів.</p>
413                            <p class="mt-2 font-semibold text-blue-600">KPI: 3-5 клієнтів успішно працюють за новою моделлю з рентабельністю 40%+.</p>
414                        </div>
415                        <div class="timeline-item relative pl-8">
416                            <div class="timeline-dot"></div>
417                            <h3 class="text-xl font-bold">Етап 3: Масштабування (Місяці 7-12)</h3>
418                            <p class="mt-2 text-gray-600">Агресивні продажі пакета за 65 000 грн. Проактивне доукомплектування команди. Створення функції залучення клієнтів для компенсації відтоку.</p>
419                            <p class="mt-2 font-semibold text-blue-600">KPI: Досягнення та утримання стабільного портфоліо у 20 клієнтів при збереженні цільової рентабельності.</p>
420                        </div>
421                    </div>
422                </div>
423            </div>
424        </section>
425    </main>
426
427    <footer class="bg-gray-800 text-white">
428        <div class="container mx-auto py-6 px-4 sm:px-6 lg:px-8 text-center">
429            <p>&copy; 2025 LOCOMOTIVE MEDIA GROUP. Стратегія розвитку SMM-відділу.</p>
430        </div>
431    </footer>
432
433    <script>
434        document.addEventListener('DOMContentLoaded', () => {
435            const profitabilityData = {
436                labels: ['rahlis', 'estem.ua', 'oberig', 'justbuy', 'xsport', 'avant', 'altexa'],
437                datasets: [{
438                    label: 'Рентабельність проєкту (%)',
439                    data: [-217.71, -81.38, 4.24, 3.03, -0.96, 94.17, 96.67],
440                    backgroundColor: (context) => {
441                        const value = context.raw;
442                        return value < 0 ? 'rgba(239, 68, 68, 0.6)' : 'rgba(34, 197, 94, 0.6)';
443                    },
444                    borderColor: (context) => {
445                        const value = context.raw;
446                        return value < 0 ? 'rgba(239, 68, 68, 1)' : 'rgba(34, 197, 94, 1)';
447                    },
448                    borderWidth: 1
449                }]
450            };
451
452            const profitabilityCtx = document.getElementById('profitabilityChart').getContext('2d');
453            new Chart(profitabilityCtx, {
454                type: 'bar',
455                data: profitabilityData,
456                options: {
457                    responsive: true,
458                    maintainAspectRatio: false,
459                    scales: {
460                        y: {
461                            beginAtZero: false,
462                            ticks: {
463                                callback: function(value) {
464                                    return value + '%';
465                                }
466                            }
467                        }
468                    },
469                    plugins: {
470                        legend: { display: false },
471                        title: { display: false },
472                        tooltip: {
473                            callbacks: {
474                                label: function(context) {
475                                    return `Рентабельність: ${context.raw.toFixed(2)}%`;
476                                }
477                            }
478                        }
479                    }
480                }
481            });
482
483            const unitEconomicsData = {
484                labels: [
485                    'Чистий прибуток',
486                    'Оплата праці команди',
487                    'Накладні витрати',
488                    'Проєктні витрати'
489                ],
490                datasets: [{
491                    label: 'Розподіл чеку 65 000 грн',
492                    data: [26000, 28500, 7500, 3000],
493                    backgroundColor: [
494                        '#10B981', 
495                        '#3B82F6', 
496                        '#6366F1',
497                        '#F97316'  
498                    ],
499                    hoverOffset: 4
500                }]
501            };
502
503            const unitEconomicsCtx = document.getElementById('unitEconomicsChart').getContext('2d');
504            new Chart(unitEconomicsCtx, {
505                type: 'doughnut',
506                data: unitEconomicsData,
507                options: {
508                    responsive: true,
509                    maintainAspectRatio: false,
510                    plugins: {
511                        legend: { position: 'bottom' },
512                        title: {
513                            display: true,
514                            text: 'Розподіл чеку 65 000 грн',
515                            font: { size: 16 }
516                        },
517                        tooltip: {
518                             callbacks: {
519                                label: function(context) {
520                                    let label = context.label || '';
521                                    if (label) {
522                                        label += ': ';
523                                    }
524                                    const value = context.raw;
525                                    const total = context.chart.getDataVisibility(0) ? context.chart.getDatasetMeta(0).total : 0;
526                                    const percentage = total > 0 ? (value / total * 100).toFixed(1) + '%' : '0%';
527                                    return `${label}${value.toLocaleString('uk-UA')} грн (${percentage})`;
528                                }
529                            }
530                        }
531                    }
532                }
533            });
534
535            const clientSlider = document.getElementById('clientSlider');
536            const clientCountEl = document.getElementById('clientCount');
537            const monthlyRevenueEl = document.getElementById('monthlyRevenue');
538            const monthlyCostsEl = document.getElementById('monthlyCosts');
539            const monthlyProfitEl = document.getElementById('monthlyProfit');
540            const annualProfitEl = document.getElementById('annualProfit');
541
542            const CHECK_AMOUNT = 65000;
543            const COST_PER_CLIENT = 39000;
544            const PROFIT_PER_CLIENT = CHECK_AMOUNT - COST_PER_CLIENT;
545            const CHURN_RATE = 2.5; 
546            const CAC = 30000;
547
548            function updateForecast() {
549                const clients = parseInt(clientSlider.value);
550                clientCountEl.textContent = clients;
551
552                const monthlyRevenue = clients * CHECK_AMOUNT;
553                const monthlyOperationalCosts = clients * COST_PER_CLIENT;
554                const monthlyOperationalProfit = monthlyRevenue - monthlyOperationalCosts;
555
556                const monthlyAcquisitionCost = CHURN_RATE * CAC;
557                const adjustedMonthlyProfit = monthlyOperationalProfit - monthlyAcquisitionCost;
558                
559                const adjustedAnnualProfit = adjustedMonthlyProfit * 12;
560
561                monthlyRevenueEl.textContent = `${monthlyRevenue.toLocaleString('uk-UA')} грн`;
562                monthlyCostsEl.textContent = `${monthlyOperationalCosts.toLocaleString('uk-UA')} грн`;
563                monthlyProfitEl.textContent = `${monthlyOperationalProfit.toLocaleString('uk-UA')} грн`;
564                annualProfitEl.textContent = `${adjustedAnnualProfit.toLocaleString('uk-UA')} грн`;
565            }
566
567            clientSlider.addEventListener('input', updateForecast);
568            updateForecast();
569
570            const navLinks = document.querySelectorAll('.nav-link');
571            const sections = document.querySelectorAll('main section');
572
573            const observer = new IntersectionObserver((entries) => {
574                entries.forEach(entry => {
575                    if (entry.isIntersecting) {
576                        navLinks.forEach(link => {
577                            link.classList.toggle('active', link.getAttribute('href').substring(1) === entry.target.id);
578                        });
579                    }
580                });
581            }, { rootMargin: "-50% 0px -50% 0px" });
582
583            sections.forEach(section => observer.observe(section));
584        });
585    </script>
586</body>
587</html>
588