Drops the pie chart block from the dashboard and skips the render call.
The byGroup metric stays in metrics() because the Treemap section still
uses it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a UI block "Ручные правки времени" that lets a user override the
parsed time of a specific function by number, without modifying the xlsx
file. The override propagates through every KPI, chart, simulator, and
FTE scenario via filtered().
The table marks overridden rows with ✏️ and shows the original raw value
struck through. Overrides appear as removable chips below the form.
Also seeds a default override for function №39 ("Контроль табелей") to
60 minutes, because the raw "5до 7 дней" string parses to ~2880 min
(48 h) which is unrealistic for a one-off check and skews every
aggregate. The user can change or remove it from the UI.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- New SVG hero (recruitment funnel + bar chart + people icons) above the
dashboard.
- New empty-state illustration shown while the file is loading.
- Upgraded brand logo with blue→purple gradient and drop shadow.
- Subtle dotted background pattern (assets/pattern.svg, fixed
attachment) for depth.
- Header is now sticky with a translucent gradient + backdrop blur.
- Hero block uses a soft blue-to-purple gradient and gradient text for
the title.
- KPI cards get a gradient accent bar, gradient-text values, and a
lift-on-hover transition.
- Section blocks get rounded corners (14px), soft shadow, and a hover
glow.
- Responsive hero on screens below 900px.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a "Структурных подразделений (СП)" input. The xlsx source is not
modified; instead, at compute time functions whose name mentions СПП/ССП,
подразделения, руководители, комиссия, or линейн get their minutes
multiplied by the СП count. The table tags those rows with 🏢×N and shows
the base × multiplier breakdown.
This propagates through every KPI, chart, simulator, and FTE scenario
automatically because the multiplication happens in filtered() before
metrics().
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a "Симулятор" block that recomputes KPIs against a virtual scenario
without modifying the source data:
- optimization slider: reduce every function's time by 0–80%
- exclude top-N longest functions slider
- exclude an entire auto-stage (dropdown)
- recruiters (FTE) slider: 1–10
- vacancies-per-month slider: 0–50
Output is a side-by-side table (Было / Стало / Δ%) for cycle time,
days, weeks, monthly load, FTE %, capacity, overload, recruiters needed,
and cost. Color-codes improvements green, regressions red.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds analyses that don't require new data:
- Pareto cumulative chart (which N functions = 80% of time).
- Duration histogram (bucketed counts).
- Function length donut (short / medium / long).
- Auto-stage classifier by keywords in the function name
(Привлечение / Скрининг / Интервью / Оффер / Адаптация /
Документы-СПП / Коммуникация / Прочее) + horizontal bar.
- Treemap: group -> function, area = minutes.
- "FTE scenario" bar chart: 0..30 vacancies/month with color buckets
(green ≤100%, amber ≤150%, red >150%) and a dashed 100% norm line.
- "Recruiters needed" card: ceil(monthlyDays / 21).
- Sortable table columns + Этап column.
- Top-3 bottleneck rows highlighted (red tint + 🔥).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a "Нагрузка на сотрудника" block: days per cycle, weeks per cycle,
total days/weeks per month at the current vacancy plan, and an
overload/buffer card vs 21 working days a month.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Switched sheet_to_json from array (header:1) to column-letter objects
(header:'A'), so the parser reads B/C/D directly. Previous array
destructuring broke when the sheet's range did not start at column A.
Also added debug logging and a script-tag cache buster.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Dashboard fetches "Функции и вес рекрутинг 2026 (2).xlsx" from the same
directory on load, so opening the page renders the MVP immediately
without requiring a manual upload. Manual upload still works as override.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>