such as box.com in runbox.com no longer identify unrelated services;
documented regional/service aliases remain recognized.
mlsend.com is MailerLite; hostedemail.com is OpenSRS. Alibaba Mail takesprecedence over generic Alibaba Cloud; Digital Pacific mailcluster MX names
no longer identify Loopia. Microsoft mx.microsoft, MXroute mxrouting.net,
Hosting Ukraine mx.services and Zone zonemx.eu names are now recognized.
An arbitrary amazonaws.com MX no longer establishes the WorkMail product.
360. Complete .yandex.net/.yandex.ru suffixes remain recognized; fourteen
own-domain names return to the existing naming heuristic.
same normalized DNS name. Letter case and the optional root dot no longer
change that choice; lower numeric preference remains primary.
1,830 hostedemail.com primary MX domains and 1,691 hostedemail.com SPF domains;
four newly recognized MX families cover 1,928 primary domains. Groups overlap.
Rule evidence and retained aliases.
alerts and aggregate provider movers require matching known hashes; unknown
or changed versions establish a new baseline without claiming migration.
Independent DMARC/SPF qualifier changes remain eligible. Historical aggregates
are not recomputed; a provider-count discontinuity here is not a market trend.
Counts describe unique domains; repeated observations do not add weight, and
conflicting DMARC records are invalid. Missing p and malformed/out-of-range pct
do not establish full enforcement. Security previously reported 481,876 publishers
and 46.1% for 2026-09-04 versus the headline's 479,978 and 47.14%; those independent
Security figures are withdrawn. Updated values are published by the current run.
Security KPI and API name that denominator. The RFC 7489 historical definition
(p=quarantine/reject, pct=100 or absent) remains distinct from the DMARCbis series.
HTML states this explicitly; JSON/MCP expose not_measured with null adoption.
Observed apex TXT anomalies remain separately labelled counts.
could count bare a/mx twice. No recursive evaluation is performed, so headroom,
PermError rates and an executed lookup count cannot be inferred. The old
11+ (PermErr) bucket is now 11+ (review); API includes the measurement scope.
without the actual sending IP; cross-zone PTR is not a forward/reverse mismatch.
Missing coverage is no_data; DNS changes do not establish purchase or buying intent.
Historical aggregates are not recomputed; compare methodology versions before
interpreting a discontinuity as a change in the market.
Каждое изменение определения метрики фиксируется здесь и попадает в
methodology_version каждой точки истории. Без этого ступенька в ряду
читается как изменение реальности, а не формулы.
Публичная копия: /email-stats/changelog.html.
Итог аудита научности 30.08.2026. Первый прогон под этой версией — 2026-08-31.
| Метрика | Было | Стало | Влияние |
|---|---|---|---|
total_domains_scanned | тождественно domains_with_mx (числитель выдавался за размер выборки) | domains_resolved — фактически резолвнутые домены снапшота | на снапшоте 2026-08-29: 618 823 → 960 066 (+341 243 домена без MX перестали быть невидимыми); hero-текст показывает обе величины |
quality (детекция partial) | отклонение вниз >15% от медианы окна ±15д | для плотного окна (≥4 соседей в ±15д) порог 5%; для прореженной истории — прежние 15% | точка 2026-08-29 (names_measured −9.75%, партиция источника −8%) помечается partial вместо ok |
kpi_deltas_* в api/latest.json | ближайшая точка «не позже N дней назад» без предела расстояния и без учёта quality | только quality == ok точки; метка окна обязана совпадать с фактическим интервалом (d1 = ровно 1 день, d30 ≤ 40), иначе null; если последняя точка не ok — дельты не публикуются | «дневная» дельта −58 396 (фактически за 4 дня, 08-25→08-29, от partial-точки) больше невозможна |
| Поле дельт счётчиков | абсолютные разности доменов лежали в kpi_deltas_pp | счётчики (domains_with_mx/spf/dmarc) → kpi_deltas_abs; в _pp остались только метрики в процентных пунктах | имя поля перестало врать о единицах; добавлено машиночитаемое kpi_delta_policy |
rank в domains.csv.gz | колонка объявлена и пуста во всех 1 944 978 строках | заполняется по свежему списку Tranco каждый прогон; выпавшие из top-1M — NULL | мёртвая колонка датасета ожила |
lint_consistency.check_deltas переписан с индексной арифметики на даты:опубликованная дельта требует существования ok-точки того же источника в
окне метки; последняя точка не-ok с опубликованными дельтами — блокер.
check_dictionary_hash_on_new_points: каждая точка с 2026-08-31 обязана нести dictionary_hash (обещание «провенанс у каждой точки» из 2026.07.26
фактически не выполнялось: 0 из 214 точек архива).
quality=partial (неполный срезисточника: единственный part-файл 386.3 МБ против 420.0–420.4 МБ у соседних
дней; названные KPI просели на −8.6…−10.5% пропорционально, доля mx/resolved
стабильна). Ряды и дельты её больше не используют; заголовочные цифры дня
замещаются первым полным снапшотом.
— остаются честными дырами ряда.
Первый прогон под новой методикой — 2026-07-27 (скан 2026-07-25 или новее).
| Метрика | Было | Стало | Влияние | |
|---|---|---|---|---|
domains_with_mx | все домены с любой MX-записью | без RFC 7505 null-MX (MX 0 .) | −4 201 домен (−0.63%) на снапшоте 2026-07-24 | |
long_tail.self_hosted_domains | пересчёт `same\ | sub_of` по всем доменам | provider == 'Self-Hosted', как в таблице провайдеров | −187 доменов; таблица и long-tail сошлись (было 151 019 / 151 206) |
| DMARC-ряды до 2022-08-11 | 0 | null | 84 точки: у alexa-партиций OpenINTEL нет запросов _dmarc.* вообще, ноль означал бы «никто не публикует DMARC» | |
| Месячная точка при прореживании | первый день месяца | медоид ok-дней месяца | один сбойный день больше не представляет месяц (2022-08-11 = весь август 2022) | |
| Дельты 7d/30d/365d | ближайшая точка по дате | ближайшая сопоставимая: тот же list_source, quality == ok | дельты через границу alexa→tranco не публикуются | |
| Проценты в HTML | локальные :.1f / сырые значения | единый fmt_pct, два знака | 47.0% / 46.99% / 46.9% для одной метрики стали одним значением |
names_measured, domains_resolved — фактический размер измеренной популяции.«Топ-1M» — не знаменатель: alexa-партиция 2022-04-01 содержит 1 637 544 apex-имени,
2021-02-01 — 559 235, tranco 2026-07-24 — 1 087 498.
domains_with_null_mx — домены, явно отказывающиеся принимать почту.dmarc.without_rua, dmarc.none_without_rua, dmarc.rua_unparseable, dmarc.rua_external_vendor_only, dmarc.maturity (enforcing / monitoring / inert),
dmarc.top_rua_vendors.
dmarc.enforced_dmarcbis, dmarc.with_np, dmarc.with_psd — DMARCbis (RFC 9989/9990/9991), где тега pct= больше нет. enforced (RFC 7489)
сохраняется ради непрерывности ряда с 2016 года.
tier_breakdown — разрез по тирам Tranco (§15 методологии обещал его с самого начала, но функция tier() не вызывалась ни разу).
mailbox_esp_matrix — кросс-таблица mailbox × ESP (§11, обещана и не публиковалась).list_source, quality, classifier_generation, dmarc_available, methodology_version, dictionary_hashes — провенанс каждой точки.
Числа §2-§17 больше не литералы, а считаются из данных. Разошедшиеся значения
на момент правки: паттернов MX 328 (писали ~310), токенов верификации 149 (~70),
реестр 1 867 221 домен (~1.2 M), domains.csv.gz 22 МБ (~13 МБ),
SPF-покрытие 82.57% (~81.5%), длинный хвост 17.43% и 80 425 уникальных целей
(~18.5% и «~84 k синглтонов» — на деле синглтонов 64 741).
эту границу несопоставимы: разные измеренные популяции.
классификатора (5 категорий, без бакета Self-Hosted). Ряды провайдеров на
этом участке разорваны намеренно; интерполяция убрана.