Всередині алгоритму ранжування 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.- Доступність U: до 20 балів.
- Обслуговування M: до 25 балів.
- Якість сайту Q: до 15 балів.
- Соціальна активність S: до 10 балів.
- Повнота опису 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)швидкість = 30, коли медіана ≤ 800 мс; 22, коли ≤ 2 000 мс; 12, коли ≤ 5 000 мс; інакше 4.Технічне обслуговування використовує найновішу підтверджену дату.
Продукт не повинен переписувати свою головну сторінку щотижня, щоб вона виглядала свіжою. NeedSift отримує найновішу надійну дату з п'яти незалежних джерел: зміна головної сторінки, власний лог змін або блог продукту, випуск в App Store або Google Play, URL новоствореної sitemap, або публічний оновлення GitHub або Telegram.
Перший аналіз створює базовий рівень і не прикидається, що все, що вже є, є новою версією. Продукт також отримує семиденний період запуску з дати його створення в NeedSift. Після цього він повинен демонструвати активність. Підрахунки для магазину, sitemap та соціальних мереж залишаються видимими для пояснення, але їх найновіші підтверджені дати потрапляють у технічне обслуговування, щоб загальна оцінка не винагороджувала одне й те саме випуск кілька разів.
M(age) = 100 ≤7d · 85 ≤30d · 60 ≤90d · 35 ≤180d · 10 otherwiseВік вимірюється від найновішої підтвердженої дати активності або, якщо активність ще не спостерігалася, від дати створення продукту.Якість сайту вимірюється на основі довіри, а не розміру веб-сайту.
Аналізатор якості може надати одному невеликому незалежному продукту таку ж оцінку 100, як і великому веб-сайту. Він шукає корисні метадані, підтримку мобільних пристроїв, favicon та сигнал canonical або мови; юридичні та контактні канали; шляхи ціноутворення, документації, завантаження або реєстрації; лог змін; достатньо реального контенту продукту; та докази, що сторінка дійсно описує перелічений продукт.
Метадані можуть давати до 40 "чистих" балів якості, довіру та структуру продукту – 36, ідентичність – 12, а також сутність – 12. Сторінка з менше сорока словами отримує вдвічі менше результату. Домен, який перебуває в "заблокованому" або "продається" стані, отримує 0 балів. 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 використовує позитивні голоси, а не шкалу позитивних і негативних оцінок. Тому інтервал Вілсона є неправильною моделлю, тоді як Bayesian average у стилі 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 бали.Приклад
Розгляньте продукт із 100% доступністю, активністю за останні тридцять днів, результатом оцінки сайту 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.