ТЗ на данные — анализ аудитории «Зелёной тропы» — по наборам данных

📄 Что это за документ

Что это:
ТЗ на данные для анализа аудитории Instagram глэмпинга «Зелёная тропа» (@zelenayatropa).

Для кого:
Для Константина и коллег — обсуждать. Для агентов и фрилансера — искать поставщика данных и оценивать стоимость.

Что внутри:
Список задач бизнеса, затем наборы данных — у каждого поля расшифровка, зачем оно и для какой задачи, — затем схемы «поле → задача».

Что дальше:
На основе ТЗ считаем, сколько стоит собрать каждое поле через Apify и другие API, и решаем, что берём.

Второе оформление:
То же ТЗ «по задачам» — SPEC-BY-TASKS-audience-task-003-followers-parsing-data-requirements.md: каждая задача одним блоком, удобно читать задачу целиком.

Карточка задачи:
README-audience-task-003-write-data-requirements-spec-for-followers-parsing.md в этой папке.

📑 Оглавление

⚠️ Черновик агента. Номера и названия задач и наборов данных — предложения, ждут ответа в QUESTIONS-audience-task-003-open-points-in-data-requirements-spec.md.

ℹ️ Здесь только «что нужно и зачем». Цена и доступность данных — на этапе оценки.

Аккаунт:
@zelenayatropa, около 70 700 подписчиков.

🎯 Задачи бизнеса

📦 Наборы данных и поля

Строка поля:
`имя_поля` — что это значит → зачем; для какой задачи

📦 Набор 110. Список подписчиков «Тропы»

📦 Набор 120. Профиль каждого подписчика «Тропы»

📦 Набор 130. На кого подписан каждый подписчик «Тропы»

📦 Набор 140. Кто подписан на каждого подписчика «Тропы»

📦 Набор 150. Профили аккаунтов, на которые подписаны подписчики «Тропы»

Все поля — для задачи 40 «Выделить среди подписчиков 300–500 лидеров мнений и узнать их интересы по их подпискам» и задачи 50 «Найти среди подписчиков трендсеттеров по подпискам на трендовые аккаунты».

📦 Набор 160. Профили тех, кто подписан на подписчиков «Тропы»

Все поля — для задачи 30 «Найти подписчиков «Тропы», у которых в подписчиках есть известные люди».

📦 Набор 170. Список постов «Тропы» с числом лайков и комментариев

Все поля — для задачи 20 «Найти подписчиков, которые чаще всех лайкают и комментируют посты «Тропы»».

📦 Набор 180. Кто лайкнул каждый пост «Тропы»

Все поля — для задачи 20 «Найти подписчиков, которые чаще всех лайкают и комментируют посты «Тропы»».

📦 Набор 190. Кто и что написал в комментариях к каждому посту «Тропы»

Все поля — для задачи 20 «Найти подписчиков, которые чаще всех лайкают и комментируют посты «Тропы»».

📦 Во всех наборах

🗺️ Схемы: какое поле для какой задачи

Одна схема — одна задача. Слева набор данных и поля, на стрелке — зачем, справа — задача.

🗺️ Задача 10. Найти среди подписчиков «Тропы» ведущих для заездов-перезагрузок

flowchart LR
    a["Набор 110. Список подписчиков «Тропы»<br/>follower_username, followed_at"] -->|"уже подписан — знает «Тропу»; давно ли"| t(["Задача 10. Найти среди подписчиков «Тропы»<br/>ведущих для заездов-перезагрузок"])
    b["Набор 120. Профиль каждого подписчика<br/>biography, category"] -->|"профессия: психолог, нутрициолог, массажист"| t
    c["Набор 120. Профиль каждого подписчика<br/>external_url, is_business_account"] -->|"ведёт практику, а не просто пишет в био"| t
    d["Набор 130. На кого подписан<br/>каждый подписчик «Тропы»"] -->|"сколько подписчиков «Тропы» подписаны на кандидата"| t

🗺️ Задача 20. Найти подписчиков, которые чаще всех лайкают и комментируют посты «Тропы»

flowchart LR
    a["Набор 170. Список постов «Тропы»<br/>post_id, posted_at, media_type"] -->|"к чему привязаны лайки и комментарии"| t(["Задача 20. Найти подписчиков, которые чаще всех<br/>лайкают и комментируют посты «Тропы»"])
    b["Набор 180. Кто лайкнул<br/>каждый пост «Тропы»"] -->|"сколько раз человек лайкал"| t
    c["Набор 190. Комментарии к постам<br/>commenter_user_id, commented_at"] -->|"сколько раз комментировал"| t
    d["Набор 190. Комментарии к постам<br/>comment_text"] -->|"тон: хвалит, спрашивает, жалуется"| t
    e["Набор 170. Список постов «Тропы»<br/>likes_count, comments_count"] -->|"фон: сравнить со средним"| t

🗺️ Задача 30. Найти подписчиков «Тропы», у которых в подписчиках есть известные люди

flowchart LR
    a["Набор 120. Профиль каждого подписчика<br/>followers_count"] -->|"сколько у него подписчиков — количество"| t(["Задача 30. Найти подписчиков «Тропы»,<br/>у которых в подписчиках есть известные люди"])
    b["Набор 140. Кто подписан<br/>на каждого подписчика «Тропы»"] -->|"КТО именно подписан — качество"| t
    c["Набор 160. Профили тех, кто подписан<br/>на подписчиков «Тропы»<br/>followers_count, is_verified"] -->|"известны ли они"| t
    d["Набор 120. Профиль каждого подписчика<br/>is_verified"] -->|"признак известности"| t

🗺️ Задача 40. Выделить среди подписчиков 300–500 лидеров мнений и узнать их интересы по их подпискам

flowchart LR
    a["Набор 120. Профиль каждого подписчика<br/>followers_count, is_verified"] -->|"отобрать 300–500 влиятельных"| l["лидеры мнений"]
    b(["Итог задачи 30. Найти подписчиков «Тропы»,<br/>у которых в подписчиках есть известные люди"]) -->|"влиятельные — не только по числу подписчиков"| l
    l --> t(["Задача 40. Выделить 300–500 лидеров мнений<br/>и узнать их интересы по их подпискам"])
    c["Набор 130. На кого подписан<br/>каждый подписчик «Тропы»"] -->|"список их интересов"| t
    d["Набор 150. Профили аккаунтов,<br/>на которые подписаны подписчики"] -->|"что это за аккаунт: магазин, бренд, место"| t

🗺️ Задача 50. Найти среди подписчиков трендсеттеров по подпискам на трендовые аккаунты

flowchart LR
    m["Список трендовых аккаунтов-маркеров<br/>(от Ирины)"] --> t(["Задача 50. Найти среди подписчиков трендсеттеров<br/>по подпискам на трендовые аккаунты"])
    a["Набор 130. На кого подписан<br/>каждый подписчик «Тропы»"] -->|"подписан на маркеры — вероятно, трендсеттер"| t
    t --> s["что ещё у трендсеттеров в подписках"]
    b["Набор 150. Профили аккаунтов,<br/>на которые подписаны подписчики"] -->|"новые бренды и магазины"| s

🗺️ Задача 60. Найти подписчиков, которые давно не ведут Instagram, и исключить их из анализа

flowchart LR
    a["Набор 120. Профиль каждого подписчика<br/>last_post_at"] -->|"давно не постит"| t(["Задача 60. Найти подписчиков, которые давно<br/>не ведут Instagram, и исключить их из анализа"])
    b["Набор 120. Профиль каждого подписчика<br/>media_count"] -->|"постов нет вообще"| t
    c["Набор 120. Профиль каждого подписчика<br/>last_highlight_story_at"] -->|"свежие сторис в хайлайтах"| t
    e["Набор 130. На кого подписан каждый подписчик<br/>target_followed_at"] -->|"свежие подписки на кого-то"| t
    t -->|"не искажают выводы"| all["все остальные задачи"]

🗺️ Служебные поля — нужны всем задачам

flowchart LR
    a["Набор 110. Список подписчиков «Тропы»<br/>follower_user_id"] -->|"ключ: связывает все наборы"| t(["все задачи"])
    b["Набор 120. Профиль каждого подписчика<br/>is_private"] -->|"что по профилю видно"| t
    c["Набор 120. Профиль каждого подписчика<br/>following_count"] -->|"полностью ли собран набор 130<br/>«На кого подписан каждый подписчик»"| t
    d["collected_at во всех наборах"] -->|"на какой день данные верны"| t

📋 Требования к результату


  1. Запись 1, 2026-09-25 — …_Ира_1_…_исходный_текст.pdf\ ↩︎ ↩︎

  2. Запись 2, 2026-09-25 — …_Ира_2_…_исходный_текст.pdf\ ↩︎ ↩︎ ↩︎ ↩︎

  3. _cons-project-context/03-previous-audience-parsing-of-irina-personal-account.md ↩︎ ↩︎