Похожие презентации:
final_prez
1.
Nobilis.Team
Индикатор динамики фактора
Percent-prev: период оценки, период сравнения и контракт интеграции
2.
Расчет: два периода, одна формула, массив факторовМассив факторов
→
Цикл по факторам
Дельта
→
Массив
результатов
→
Период оценки
→
Период сравнения
→
Агрегация
delta_absolute = value(период оценки) - value(период сравнения)
delta_percent = 100 * delta_absolute / abs(value(период сравнения))
Nobilis.Te
am
0
2
3.
Вычислительный сервис уже закрывает базовую математикуЧто делает percent_prev
Что не делает
Какие данные нужны
получает подготовленные данные,
выбирает два окна дат, агрегирует
значения и возвращает результат
не строит фактор, не строит прогноз, не
ходит сам в базу
factorId, DataFrame, date, fact_day; для
прогноза нужен predict_day
Если есть is_total_aggregate, сервис берет только строки true, чтобы не задвоить разрезы.
Nobilis.Te
am
0
3
4.
Период оценки задает, что считаем в числителе динамикиТекущий период
Завершенный период
Скользящее окно
с начала календарного периода до
текущей даты
последний полностью закрытый
период
последние N дней или N календарных
единиц
Последняя точка
Прогнозный период
последнее значение, где value != null
ближайший полный будущий период
по predict_day
Пользовательский термин: «Период оценки». Target можно оставить только как технический аналог.
Nobilis.Te
am
0
4
5.
Текущий и завершенный период отвечают на разные вопросыДата примера: 12.06.2026
Текущий период: «как идем сейчас». Завершенный период: «как закончился последний полный
период».
Nobilis.Te
am
0
5
6.
Скользящее окно и последняя точка требуют отдельных правилСкользящее окно по дням
Неделя / месяц / квартал / год
последние N календарных дней до последней доступной
даты включительно
текущий неполный период + N-1 полных предыдущих
периодов
Последняя точка
берем последнее не null значение;
0 считается валидным
Nobilis.Te
am
0
6
7.
Forecast mode использует готовый прогноз, а не строит егоFact data
Prediction data
Фильтр прогноза
обычный режим берет factordata.parquet и колонку fact_day
forecast mode дополнительно берет
predict.parquet
нужно явно выбрать predictModel и
predictValueType
Как считаем
Период оценки по predict_day;
период сравнения обычно по
fact_day
Сервис не прогнозирует: он только использует уже подготовленный prediction artifact.
Nobilis.Te
am
0
7
8.
Период сравнения задает базу для индикатораПредыдущий период
Прошлый год
строится относительно периода оценки: текущий месяц 01.0612.06 сравниваем с 01.05-12.05
тот же диапазон дат, сдвинутый на год назад: 01.0612.06.2025
Для скользящего окна
предыдущий период не пересекается с периодом оценки: 03.06-12.06 сравниваем с 24.05-02.06
Пользовательский термин: «Период сравнения». Baseline не выводим как основной термин интерфейса.
Nobilis.Te
am
0
8
9.
После дат остаются три расчетные политикиАгрегации
Полнота данных
Нулевая база
sum, average, median, min,
max, last
null = нет данных
0 = валидное значение
hide или show_absolute
coverage = days_with_data / total_days_in_period * 100%
Расхождение нужно зафиксировать: в коде minCoveragePercent по умолчанию 20%, в постановке нового
фактора указано 10%.
Nobilis.Te
am
0
9
10.
Новый интерфейс: сначала периоды1. Сначала Период оценки
пользователь выбирает, что именно считаем
2. Затем Период сравнения
выбираем базу: предыдущий период или прошлый год
3. Общие настройки ниже
агрегация, полнота, деление на 0 и формат вывода
Показываем крупный фрагмент формы; полный старый
список настроек здесь убран.
1
0
11.
Frontend отвечает за понятную форму и дефолты новогофактора
Период оценки
тип оценки; календарный период или
rolling-окно
Период сравнения
предыдущий период или прошлый год
Дефолты
10% полноты в постановке, hide для
нулевой базы, только проценты
Nobilis.Te
am
1
1
12.
Backend: POST /api/percent-prev, JSON, без KafkaPOST JSON
→
массив факторов
→
цикл по факторам
→
загрузить parquet
→
массив
результатов
Обычный режим
Forecast mode
Результат
для каждого фактора backend
использует factor-data.parquet
дополнительно нужен prediction
artifact: predict.parquet
deltas[] и errors[]; полный ответ
полезнее одного процента
{ "factors": [{ "factorId": "UUID", "factorDataUrl": ".../factor-data.parquet",
"settings": { "targetType": "forecast_period", "predictModel": "RANDOM_FOREST",
"predictValueType": "MID", "baselineType": "aligned_previous_period" } }] }
Nobilis.Te
am
1
2
13.
На груминге нужно зафиксировать контракт и расхожденияВажно
percent_prev не строит прогноз: сервис использует готовые прогнозные данные
Nobilis.Te
am
1
3
14.
Итог: считаем динамику и фиксируем интеграционныйконтракт
Вычислительная часть
выбрать два периода, агрегировать окна и посчитать
дельту
Frontend
простая форма: сначала период оценки, затем период
сравнения
Backend
endpoint с JSON принимает массив факторов и
возвращает массив результатов
Nobilis.Te
am
Forecast mode остается в контракте: готовый
predict.parquet, predictModel, predictValueType.
1
4