Как работает алгоритм ранжирования NeedSift: формула каждого балла
Точная формула ранжирования NeedSift, веса сигналов, временные окна, меры защиты от голосований, проверки качества сайта и обоснование каждой оценки продукта.

Одна оценка, шесть независимых сигналов
Каталог NeedSift не отсортирован по числу голосов, количеству страниц или дате, когда продукт был добавлен. Бэкэнд вычисляет оценку от 0 до 100, прежде чем вернуть каталог. Та же сохраненная оценка используется всеми посетителями, поэтому карточки не меняют свое положение после загрузки.
Формула объединяет надёжность, свежесть подтверждённой активности, качество сайта, публичную активность, полноту карточки и поддержку сообщества. Большая аудитория помогает только внутри ограниченного компонента. Небольшой продукт может выйти в лидеры, если остаётся доступным, регулярно выпускает обновления, понятно объясняет свою ценность и подтверждает развитие публичными сигналами.
На этой странице описана версия 2 формулы, действующая с 25 сентября 2026 года. Каждое изменение алгоритма указано в истории версий в конце статьи, чтобы создатели продуктов видели, что изменилось и почему.
Score = min(100, 0.20U + 0.25M + 0.15Q + 0.10S + C + V)U, M, Q и S нормализованы в диапазоне от 0 до 100. C и V вносят вклад напрямую от 0 до 15 баллов соответственно. Общая оценка округляется до двух десятичных знаков и ограничена значением 100.- Наличие (Uptime) U: до 20 баллов.
- Обслуживание (Maintenance) M: до 25 баллов.
- Качество сайта (Site quality) Q: до 15 баллов.
- Социальная активность (Social activity) S: до 10 баллов.
- Полнота информации (Listing completeness) C: до 15 баллов.
- Поддержка сообщества V: до 15 баллов (12 за голоса, 3 за обсуждение).
Доступность вознаграждает продукт, который действительно работает
Доступность рассчитывается по ежедневным наблюдениям за последние 30 дней. 70% компонента зависит от доли успешных проверок. Оставшиеся 30% определяются по медианному времени ответа среди успешных проверок, а не по единственному самому быстрому ответу.
Ответ, занимающий не более 800 миллисекунд, получает бонус в 30 баллов; не более 2 секунд – 22; не более 5 секунд – 12; более медленный успешный ответ получает 4 балла. Домен, находящийся в "ожидающем" состоянии, получает 0 баллов независимо от статуса HTTP.
U = min(100, 70 × available_days / observed_days + speed_bonus)speed_bonus = 30, когда медиана ≤ 800 мс; 22, когда ≤ 2000 мс; 12, когда ≤ 5000 мс; в противном случае 4.Обслуживание использует самую свежую подтвержденную дату.
Продукт не должен переписывать свою главную страницу каждую неделю, чтобы выглядеть актуально. NeedSift извлекает самую свежую и надежную дату из пяти независимых источников: значительное изменение главной страницы, changelog или блог самого продукта, релиз в App Store или Google Play, URL новой опубликованной карты сайта или общедоступное обновление в GitHub или Telegram.
Первое сканирование создаёт базовую точку и не выдаёт уже существующие страницы, релизы и публикации за новые. Продукт также получает семидневное стартовое окно с даты добавления в NeedSift. После этого активность нужно подтверждать. Отдельные показатели релизов, sitemap и социальных источников остаются видимыми в детализации, но в maintenance передаётся только самая свежая подтверждённая дата, чтобы один релиз не учитывался несколько раз.
M(age) = 100 ≤7d · 85 ≤30d · 60 ≤90d · 35 ≤180d · 10 otherwiseВозраст измеряется с момента самой свежей подтвержденной активности или, когда еще нет никакой активности, с даты создания продукта.Качество сайта измеряется на основе доверия, а не размера сайта.
Анализатор качества может присвоить одностраничному инди-продукту такую же оценку 100, как и большому сайту. Он ищет полезные метаданные, поддержку мобильных устройств, favicon и canonical или языковой сигнал; юридические и контактные пути; пути ценообразования, документации, загрузки или регистрации; changelog; достаточное количество реального контента продукта; и доказательства того, что страница действительно описывает указанный продукт.
Метаданные могут принести до 40 исходных баллов качества, доверие и структура продукта — 36, соответствие заявленному продукту — 12, а содержательность — ещё 12. Результат страницы короче сорока слов делится пополам. Припаркованный или выставленный на продажу домен получает ноль. NeedSift проверяет не более восьми изображений на главной странице: если проверено минимум три, неработающие изображения вычитают 10, 20 или 30 баллов в зависимости от их доли. Поэтому визуально сломанная страница не получит максимальный балл только за правильные метатеги.
Q = clamp₀₋₁₀₀(metadata + trust + identity + substance − image_penalty)Итоговая оценка получает 15% от этого нормализованного результата качества. Объем страниц и маркетинговый трафик не являются входными данными. Публичная активность и полнота карточки
Для общественной активности, каждый доступный профиль GitHub или Telegram добавляет 15 "сырых" баллов, но не более 45. Новое сообщение или коммит устанавливает социальный рейтинг в 100. В противном случае, активность в течение семи, тридцати или девяноста дней добавляет 55, 40 или 20 баллов. Ссылки на X не индексируются без надежного публичного интерфейса. Если продукт не содержит отслеживаемого публичного профиля, социальный рейтинг остается нейтральным (30), вместо того чтобы стать штрафом.
Полнота намеренно ограничена. Логотип добавляет 3 балла. Скриншоты добавляют 1,5 балла каждый, до 4. Описание добавляет 2 балла, начиная с 120 символов, и 4 балла, начиная с 300. Слоган добавляет 1 балл; покрытие полезными ссылками добавляет до 2 баллов; категория добавляет 1 балл. Добавление десяти дублирующих ссылок или сотен скриншотов не увеличивает результат.
S = min(100, 15 × reachable_profiles + freshness_bonus); S = 30 when untrackedfreshness_bonus = 55 для ≤7 дней, 40 для ≤30 дней, 20 для ≤90 дней; новая активность устанавливает S = 100. C = logo(3) + screenshots(max 4) + description(max 4) + tagline(1) + links(max 2) + category(1)Комплексность ограничена естественным образом до 15 баллов и вознаграждает полезные доказательства, а не объем профиля.Голоса и обсуждение помогают, но не позволяют купить каталог
NeedSift использует положительные оценки, а не шкалу с положительными и отрицательными оценками. Следовательно, интервал Вильсона - это неправильная модель, в то время как байесовская средняя, похожая на IMDb, требует значимой оценки, чтобы уменьшиться до каталога. Вместо этого, NeedSift использует логарифмическую кривую: ранние искренние отзывы важны, возврат быстро уменьшается, а влияние сообщества ограничивается 15 баллами.
Верх кривой — это не фиксированное число голосов. Полный балл за голоса находится на 90-м перцентиле взвешенных голосов среди всех одобренных продуктов, но не ниже десяти. Проще говоря, продукт получает все двенадцать баллов за голоса, когда его поддерживают сильнее, чем девять из десяти продуктов каталога. Перцентиль используется вместо максимума, потому что одна накрученная карточка может сдвинуть максимум, но не 90-й перцентиль. Нижняя граница не даёт молодому каталогу раздавать полный балл за один голос. Шкала пересчитывается при каждом ежедневном сканировании.
Для голосования нужна авторизация, и один аккаунт может отдать продукту только один голос. Если на момент голосования аккаунту было меньше 24 часов, голос получает вес 0,25. Голос аккаунта старше суток получает вес 1. Это не устраняет все скоординированные кампании, но делает одноразовые аккаунты в четыре раза менее эффективными и создаёт понятную основу для анализа аномалий.
W = Σ vote_weight; vote_weight = 0.25 if account_age < 24h, otherwise 1Возраст аккаунта измеряется в момент голосования, поэтому ожидание позже не позволяет "обновить" подозрительно новый голос.V_votes = 12 × min(1, ln(1 + W) / ln(1 + W₉₀)); W₉₀ = max(10, P90 of W across the catalog)При минимальной шкале один полный голос даёт около 3,47 балла, три — около 6,94, а десять достигают потолка в 12 баллов. С ростом каталога растёт и W₉₀, и то же число голосов весит пропорционально меньше.V = V_votes + V_discussionОбсуждение описано в следующем разделе и добавляет не больше 3 баллов, поэтому V никогда не превышает 15.Обсуждение учитывается немного
О продуктах, которые обсуждают, обычно говорят потому, что ими пользуются. Начиная с версии 2, компонент сообщества учитывает и обсуждение под продуктом. Единица счёта — человек, а не сообщение: каждый отдельный комментатор считается один раз, сколько бы комментариев он ни написал, поэтому длинный спор двух аккаунтов не выглядит как толпа.
Учитываются только комментарии, прошедшие модерацию. Комментарии самого создателя продукта не учитываются: отвечать на вопросы полезно, но поднимать собственный балл нельзя. Комментатор, чьему аккаунту было меньше 24 часов в момент первого комментария, считается как 0,25 — та же скидка, что и для голосов свежих аккаунтов. Скрытые, отклонённые и удалённые комментарии дают ноль.
Вес намеренно маленький. Аккаунты дешёвые, а текст комментариев легко сгенерировать, поэтому обсуждение — это способ различить похожие продукты, а не рычаг. Оно использует ту же шкалу относительно каталога, что и голоса, с нижней границей в пять комментаторов.
D = Σ commenter_weight; commenter_weight = 0.25 if account_age < 24h at first comment, otherwise 1Одна запись на каждого отдельного комментатора хотя бы с одним одобренным комментарием, без создателя продукта.V_discussion = 3 × min(1, ln(1 + D) / ln(1 + D₉₀)); D₉₀ = max(5, P90 of D across the catalog)При минимальной шкале один комментатор со стажем даёт около 1,16 балла, три — около 2,32, а пять достигают потолка в 3 балла.Пример
Рассмотрите продукт с идеальным временем безотказной работы, активностью за последние тридцать дней, результатом оценки сайта 80, социальным рейтингом 70, тринадцатью точками полноты и тремя подтвержденными голосами. Продукт получает 20 баллов за время безотказной работы, 21,25 балла за обслуживание, 12 баллов за качество, 7 баллов за социальную активность, 13 баллов за полноту и 6,94 балла за взаимодействие с сообществом.
Его итоговый балл составляет 80,19. Больше голосов все еще могут помочь, но даже достаточное количество голосов, чтобы достичь максимального значения, добавит всего 8,06 баллов. Более эффективным является улучшение доказательств продукта: исправление неработающих медиа, обеспечение доступности сайта, публикация реальной версии, завершение описания или добавление полезного журнала изменений.
20 + 21.25 + 12 + 7 + 13 + 6.94 = 80.19Примеры входных данных: U=100, M=85, Q=80, S=70, C=13, W=3, D=0, W₉₀=10. Почему это отличается от лент запуска
Ленты, основанные на времени, такие как Hacker News, созданы для быстрого выявления свежих новостей: популярность теряет свою силу по мере старения публикации. NeedSift имеет другую задачу. Полезный продукт не должен просто исчезнуть, потому что он был запущен несколько месяцев назад, но он должен постепенно терять баллы за обслуживание, если каждый публичный признак становится устаревшим. Шаговое окно обслуживания дает новым продуктам справедливый старт и позволяет более старым продуктам немедленно восстановиться, выпуская проверенные работы.
Исследования по поводу отказа от проектов с открытым исходным кодом также показывают, почему одна дата последнего коммита недостаточно для описания выживания проекта. NeedSift не утверждает, что любой публичный след доказывает здоровье продукта. Он объединяет независимые пути и намеренно устанавливает ограничения для каждого компонента. Формула будет меняться, но изменения должны оставаться понятными и проверяемыми.
Результат можно проверить, а не просто видеть "черный ящик"
Каждый компонент хранится на сервере и отображается на странице продукта в блоке "Почему этот результат?". Разработчики могут видеть время безотказной работы, обслуживание, качество сайта, активность в социальных сетях, полноту и вклад сообщества, вместо того, чтобы гадать, почему конкурент оказался выше. Изменение порядка каталога происходит только после пересчета результатов сервером; оно не меняется в браузере, пока кто-то читает.
Прозрачность не означает публикацию всех пороговых значений для предотвращения злоупотреблений навсегда. Это означает публикацию стандартных правил, разделение измеримых фактов от редакционных решений и объяснение существенных изменений. Цель – не математически идеальное определение качества. Это рейтинг, который стимулирует к созданию надежных продуктов, честному обслуживанию и полезной общественной работе.
История версий
Формула меняется по мере того, как NeedSift узнаёт, чем поддерживаемые продукты отличаются от заброшенных. Для каждой версии ниже указано, что изменилось и почему. Баллы пересчитываются при следующем ежедневном сканировании после выхода изменения.
- v2 — 25 сентября 2026 года. Поддержка сообщества теперь складывается из голосов (до 12 баллов) и обсуждения (до 3 баллов): учитываются отдельные комментаторы с одобренными комментариями, без создателя продукта, со скидкой для свежих аккаунтов. Полный балл больше не привязан к фиксированному числу голосов: он находится на 90-м перцентиле каталога с нижними границами в 10 голосов и 5 комментаторов, поэтому шкала растёт вместе с NeedSift.
- v1 — 24 сентября 2026 года. Первая публичная формула: доступность 20, обслуживание 25, качество сайта 15, публичная активность 10, полнота карточки 15 и голоса 15 по фиксированной логарифмической кривой V = min(15, 5 × ln(1 + W)), где голоса свежих аккаунтов весят 0,25.