Что такое квота — на пальцах
Представьте, что вы запускаете опрос среди врачей. Хотите получить мнения 100 врачей — кардиологов и терапевтов поровну. Запускаете опрос, и через сутки приходит 100 ответов. Открываете результаты — а там 92 терапевта и 8 кардиологов. Просто потому, что терапевтов в стране больше, и они быстрее реагируют на рассылку.
Анализировать такой результат бессмысленно: получился опрос терапевтов, а не «врачей в среднем». А клиент, который заказал исследование, ожидал увидеть мнение обеих специальностей.
Квота решает эту проблему. Вы заранее говорите системе: «соберите 50 кардиологов и 50 терапевтов». Когда квота по терапевтам заполнится (придут 50 ответов), следующие терапевты увидят:
Спасибо! По вашей категории мы уже собрали достаточно ответов. Опрос для вас завершён.
А кардиологи продолжат проходить опрос, пока не наберётся их 50.
В итоге вы получаете ровно ту структуру выборки, которая нужна — без post-hoc фильтрации, без выбрасывания данных «по специальностям, которых слишком много».
Когда квоты нужны и когда нет
Нужны:
- Репрезентативная выборка («хочу 50/50 М/Ж»)
- Сравнительные исследования («сравнить мнение кардиологов vs терапевтов»)
- B2B-опросы с заранее известной структурой целевой аудитории
- Когда сегменты «дорогие» — например, опрос узких специалистов; нужна гарантия, что соберёте хотя бы N
Не нужны:
- Открытый опрос для общественного мнения (любой ответ важен)
- Если у вас всего 10–20 ответов всего (квоты — для нормальной выборки 50+)
- Если у вас один однородный сегмент респондентов (тогда хватит обычного
target_count)
Базовый сценарий: одна квота, одна ось (1D)
Пример: «50 кардиологов + 30 терапевтов + 20 эндокринологов».
Шаг 1. Создайте вопрос-скринер
В редакторе опроса добавьте блок типа «Один из N вариантов» в самое начало опроса. Введите вопрос «Какая у вас специальность?» и варианты: «Кардиолог», «Терапевт», «Эндокринолог».
💡 Почему скринер первый. Если квота заполнится в середине опроса, респондент потратит 5–10 минут на бессмысленные ответы — и его «отсечёт». Чтобы не злить респондентов, узнавайте сегмент в начале.
Шаг 2. Включите квоту на блоке
Откройте свойства блока (правая панель в графовом редакторе или раскрытая секция в линейном). Найдите секцию «Квота». Включите тумблер «Использовать как квотный блок».
Появятся три раздела:
1. Поведение при заполнении — что система делает, когда квота по варианту полна:
- Жёстко отсекать — респондент не сохраняется, видит «Спасибо, мы собрали достаточно». Подходит для скринера: вы не хотите тратить время респондента впустую.
- Помечать как сверх-квотный — респондент проходит опрос как обычно, но в результатах помечается «over-quota». Подходит, когда хотите подстраховаться: вдруг часть ответов придётся выкинуть из-за плохого качества — лишние из «over-quota» можно потом «допустить» в аналитику вручную.
2. Целевые числа — сколько респондентов хотите по каждому варианту:
Кардиолог [ 50 ]
Терапевт [ 30 ]
Эндокринолог [ 20 ]
3. Кнопка «Создать квоту» — сохраните, и квота начнёт работать сразу после запуска опроса.
Шаг 3. Запустите и наблюдайте
Откройте страницу «Результаты» опроса — в шапке появится секция «Прогресс квот»:
- Кардиолог: ████████░░ 35/50
- Терапевт: ██████████ 30/30 ✓
- Эндокринолог: ███░░░░░░░ 6/20
Зелёный — заполнено. Жёлтый — больше половины. Красный — отстаёт. Если эндокринологи долго не доходят, можно подстегнуть отдельной рассылкой только им.
Продвинутый сценарий: 2D — две оси одновременно
Пример: «50 кардиологов из Москвы + 30 кардиологов из регионов + 25 терапевтов из Москвы + 25 терапевтов из регионов».
Это и есть interlocking quota или 2D-квота — пересечение двух измерений. Каждая ячейка матрицы имеет свой потолок.

Откуда брать вторую ось
Два варианта:
Вариант 1 — другой single_choice блок. Добавляете в скринер ещё один вопрос: «В каком городе вы работаете?» с вариантами «Москва», «Регионы». Тогда вторая ось — это ответ на этот вопрос.
Вариант 2 — поле приглашения. Если респондент приходит к вам через индивидуальное приглашение или URL-параметр (?city=Москва) — спрашивать его второй раз не нужно. Город уже известен. Используете поле приглашения со списком значений.
Настройка поля приглашения до запуска
На странице Приглашения опроса (доступна даже в черновике) наверху есть секция «Поля приглашений». Нажмите «+ Поле» и заполните:
- Название:
Город— видно в таблице приглашений и в селекторе осей квот - Тип: выберите «Список значений» (для квот работают только такие типы)
- Значения: Москва, Санкт-Петербург, Регионы (через запятую или Enter)
- Источники: ✓ Из приглашения (заполняется в таблице на /invites), ✓ Из URL (респондент откроет
?city=Москва)
Сохраните. Поле готово.
💡 Зачем декларировать заранее. Чтобы система знала список валидных значений и могла строить матрицу квот. Если респондент придёт с
?city=Владивосток— это значение не в списке, респондент не попадёт ни в одну квотную ячейку (опрос пройдёт обычно, но в квоте не учтётся).
Настройка 2D квоты на блоке
Откройте блок-скринер «Какая специальность?», в секции «Квота» сначала задайте 1D-цели (по умолчанию). Потом нажмите «+ Скрестить со второй осью (interlocking 2D)». Откроется выбор: можно взять другой блок опроса или одно из объявленных полей приглашений (тип «список значений»).
После выбора система покажет матрицу N×M для целевых чисел в каждой ячейке:
Москва Регионы
Кардиолог [ 50 ] [ 30 ]
Терапевт [ 25 ] [ 25 ]
Эндокринолог [ 10 ] [ 10 ]
Заполните цифры в каждой ячейке. Сохраните.
Что увидит респондент
Респондент-кардиолог приходит по invite-ссылке ?invite=abc123 (где invite уже несёт region: Москва). На экране — обычный опрос. В момент финала система проверит: попадает ли он в ячейку (Кардиолог × Москва)? Если место есть — записывает. Если ячейка полна — отсекает или помечает как over-quota (по вашей настройке).
Если респондент пришёл без invite (по публичной ссылке) — у него нет атрибута region. Он пройдёт опрос как обычно, но в квоту не попадёт (потому что мы не знаем, к какой ячейке его отнести). Чтобы такого не было — используйте только invite-ссылки или добавьте URL-параметр ?region=... в рассылку.
Поведение при заполнении: «отсекать» vs «помечать»
Эта настройка решает, что делать с респондентом, который попал в полную квоту. Различия принципиальные.
«Жёстко отсекать»
Респондент видит:
Спасибо! По вашей категории мы уже собрали достаточно ответов. Опрос для вас завершён.
И всё. Его ответ нигде не сохраняется. Он не появляется в результатах, не учитывается в счётчике ответов.
Когда использовать: в скринере, когда вы точно знаете «больше N кардиологов мне не нужно». Это самый чистый сценарий и самое корректное поведение по отношению к респонденту: он не тратит время.
«Помечать как сверх-квотный»
Респондент проходит опрос полностью, видит обычный финальный экран. Но в БД его ответ сохраняется со специальным флагом «over-quota». В основной аналитике этот ответ не виден — но вы можете посмотреть его отдельно (раздел «Сверх-квотные ответы»).
Когда использовать: когда боитесь, что часть ответов придётся выкинуть (например, из-за плохого качества или подозрений на накрутку), и хотите подстраховаться. Лишние ответы можно потом «допустить» в аналитику вручную.
⚠️ Подводный камень. Если квота на блоке-3 (после 2 длинных вопросов), и вы выбрали «отсекать» — респондент потратит время и расстроится. Используйте «отсекать» только в самом начале опроса. Для квот на середине — выбирайте «помечать».
Изменение квот на запущенном опросе
Идёт сбор, и вы понимаете: «По кардиологам набралось 45 из 50, темп замедлился — давайте поднимем до 60». Можно ли менять квоты на лету?
Можно изменить:
- Целевые числа в любой ячейке
- Поведение «отсекать ↔ помечать»
- Текст сообщения для отсечённых
Нельзя изменить:
- Структуру: добавить/удалить ось
- Что считается ячейкой (сами варианты)
- Связку с блоком-владельцем
Для изменения квот на активном опросе вам нужно подтвердить: «Я понимаю, что меняю настройки идущего сбора». Это стандартный механизм безопасного редактирования (как в R3.42).
При снижении целевого числа ниже текущего (например, было current = 45, новое target = 30) — квота сразу становится «полной», следующие респонденты получат отсечение/over-quota. Уже собранные 45 ответов остаются как есть.
Что показывать заказчику: публичный отчёт
Если вы делаете опрос для внешнего заказчика, ему интересно следить за прогрессом сбора. У нас есть публичные отчёты (/reports/[token]) — страница со статистикой, которую можно расшарить ссылкой.
В её настройках (Report-Constructor → вкладка «Основное») появился тумблер «Прогресс квот» — включите его, и заказчик будет видеть тот же прогресс, что и вы.
Прогресс показывает только числа (45/50 кардиологов) — никаких индивидуальных ответов или контактов. Это безопасно расшарить.
Ограничения
- Максимум 5 квот на один опрос — больше обычно не нужно, и UI становится перегруженным
- Максимум 8 значений на одну ось — для простых матриц
- Только single_choice блоки могут быть квотными. Для checkbox / scale / dictionary — нельзя
- Только 2 оси на квоту (1D или 2D). 3D пока нет
- Поля приглашений со списком значений работают как ось. Поля «свободный текст» не подходят — потому что список значений должен быть фиксирован заранее
Часто задаваемые вопросы
Что если респондент уже на 5-м вопросе, и в этот момент 4-й респондент заполнил квоту?
Решение происходит атомарно при финальном «Завершить». Респондент, который последним прислал ответ, может попасть в over-quota — даже если в начале опроса место было. Это редкая ситуация на пиковой нагрузке (одновременный submit двумя респондентами на последнем месте).
Можно ли «закрыть» весь опрос, когда все квоты заполнены?
Сейчас — нет, опрос продолжает работать (просто все новые респонденты будут отсекаться). Если нужно жёстко остановить опрос — используйте кнопку «Остановить» в админке.
Можно ли видеть, сколько респондентов было отсечено?
Для screen-out ответы вообще не сохраняются — мы видим только текущее количество принятых. Для over-quota есть отдельный фильтр в результатах — можно посмотреть «сверх-квотные ответы» отдельно от основной выборки.
Можно ли поменять список значений поля приглашения после создания квоты?
Нет. Если хотите изменить список — сначала удалите квоту, которая использует это поле, потом измените список в меню поля, потом пересоздайте квоту. На draft-опросе это безопасно. На active — нельзя (структура заморожена).
Что если респондент выбрал в скринере «Другое» / нет квоты на этот вариант?
Если у конкретного варианта ответа нет ячейки в квоте (например, респондент выбрал «Хирург», а у вас квота только на «Кардиолог/Терапевт/Эндокринолог») — он проходит опрос обычным путём, в квоте не учитывается. Его ответ сохраняется как complete.
Один опрос — несколько квот. Как работает приоритет?
Все квоты проверяются последовательно. Если респондент попадает в полную квоту с поведением «жёстко отсекать» — опрос завершается, остальные квоты уже не проверяются. Если первая квота — «помечать», а вторая — «жёстко отсекать», результирующее действие зависит от какой квоты пришёл сигнал первым (обычно проверяются в порядке создания).
Если есть несколько активных квот, рекомендация: проверьте, не противоречат ли они друг другу. Например, нельзя одновременно требовать «50 кардиологов всего» и «20 кардиологов из Москвы + 40 кардиологов из регионов» — это арифметически противоречиво.
Связанные статьи: Запуск и результаты · Индивидуальные приглашения · Метки в ссылке (UTM)