# Принцип расчета индекса **1. Индекс** - отношение число посетителей к коммерческой площади объектов за N-периодичность, где N может принимать значения: день, неделя, месяц, квартал и год. Индекс всегда разбивается на N-периодичность. Правила выбора периода каждой N-периодичности: - день - календарный день - неделя - календарная неделя (с понедельника по воскресенье) - месяц - календарный месяц (с первого дня месяца по последний день месяца) - квартал - календарный квартал (с первого дня квартала по последний день квартала) - год - календарный год (с первого дня года по последний день года) **Общая формула расчета индекса:** [![image-1695146709412.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2023-09/scaled-1680-/image-1695146709412.png) ](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2023-09/image-1695146709412.png), где [![image-1695146736914.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2023-09/scaled-1680-/image-1695146736914.png) -](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2023-09/image-1695146736914.png) посещаемость объекта за m-день по счету периодичности, N - количество календарных дней в периодичности, S - площадь объекта. Например: **Объект:** ТЦ "Солнышко" **Площадь:** 136000 м^2. **Посещаемость**:
ДеньПосещаемость
04.09.2023460 792
05.09.2023349 621
06.09.2023347 337
07.09.2023339 815
08.09.2023340 794
09.09.2023341 773
10.09.2023350 024
11.09.2023395 949
12.09.2023354 614
13.09.2023404 033
14.09.2023363 209
15.09.2023369 375
16.09.2023351 758
17.09.2023365 543
Период построения: 04.09.2023 - 17.09.2023 Периодичность: Неделя **Индекс за 04.09-10.09**: (460792+349621+347337+339815+340794+341773+350024)/136000 = **18,60** **Индекс за 11.09-17.09**: (395949+354614+404033+363209+369375+351758+365543)/136000 = **19,15** **2. Шаблоны** - сохраненные фильтры по атрибутам объекта для формирования индекса. У шаблона может быть указан период фиксации в виде даты начала и даты окончания (либо должна быть функция фиксации индекса за период по шаблону). Пример шаблона: ```JSON { "template": { "address": [ { "fias_ids": [ "123123", "123123", "123213" ], "representation": "Россия; Рязань; Глазань" } ], "area": [ { "value": 45000, "operator": "gte" }, { "value": 90000, "operator": "lte" } ], "is_mall": true, "props": [ { "id": "uid", "prop_name": "1706532045", "values": [{ "id": 2, "value": "Одежда" }], "operator": "eq", "group": false }, { "id": "uid2", "operator": "or", "group": true, "children": [ { "id": "uid3", "prop_name": "1706532045", "values": [{ "id": 4, "value": "Женская одежда" }], "operator": "neq", "group": false }, { "id": "uid4", "prop_name": "1706105749", "values": [ { "id": 42, "value": 1 }, { "id": 45, "value": 3 } ], "operator": "in", "group": false }, ] } ] } } ``` eq — равно neq — не равно lt — меньше lte — меньше или равно gt — больше gte — больше или равно in - находит объекты со свойством, значение которого равно одному из значений из списка nin - находит объекты со свойством, значение которого не равно ни одному из значений из списка is\_mall принимает значения - true, false, none. none отменяет применение фильтра **3. Фиксация индекса** По существующим шаблонам должен быть предусмотрен механизм фиксации индекса работающий следующим образом: строится индекс по указанным фильтрам шаблона и сохраняется за указанный период фиксации шаблона. Фиксировать значение индекса рекомендуется в разрезе дня. Значения индекса для фиксации строятся на основе данных посещаемости по объектам с учетом основных принципов расчета и формулы расчета индекса. В случае если за определенный период нет данных для расчета индекса, то такой индекс заполняется в разрезе дня со значением равным 0 (нулю). **4. Расчет индекса** Пример запроса индекса доступен [по ссылке](https://rzn-wb-02.1c-hosting.com/books/razrabotka-3ug/page/primer-zaprosa-polucheniya-indeksa). **Основные принципы расчета индекса:** - Данные по объектам берутся только за период работы с объектом (атрибуты объекта: дата начала работы, дата окончания работы с объектом). - Данные по объекту не берутся в случае если по объекту отсутствуют данные за полную N-периодичность, в ином случае данные по объекту участвуют в расчете индекса. - В случае построение индекса по шаблону (запрос по "template" из примера запроса): - Период построение отчета попадает в период фиксации по шаблону: - Данные по индексу строятся из фиксированного индекса по шаблону - Период отчета не попадает в период фиксации по шаблону: - Данные по индексу строятся на основании данных посещаемости объектов - Период отчета по индексу частично попадает в период фиксации по шаблону: - За период который попадает в период фиксации данные строятся из фиксированного индекса по шаблону - За период который не попадает в период фиксации данные на основании данных посещаемости объектов - В случае построение индекса по объектом (запрос по "objects" из примера запроса): - Данные строятся на основании посещаемости объектов [Пример расчета индекса в google-таблице](https://docs.google.com/spreadsheets/d/1pDqcJS5Mw-tQOWBjtIUdc1aqNQFJ78xf7tTrG8o480k/edit?usp=sharing)