Блог им. NatGasLens
Разбираю, как из погоды получается число, чем ансамбль отличается от одного прогона и какая часть прогноза вообще торгуется. В конце — моя оценка запасов к завтрашнему отчёту EIA.
Погода — крупнейший двигатель недельного спроса на газ в США: летом кондиционеры, зимой отопление. Смотрят на три прогноза — CPC, GFS и ECMWF. Независимых источников среди них не три.
В шапке суточного файла CPC написано прямым текстом: Daily Cooling Degree Days Forecast Based on NDFD Data. NDFD — сетка Национальной метеослужбы США, а она и GFS живут под одной крышей NOAA, то есть школа одна и та же. Когда CPC «подтверждает» GFS, это одно мнение, сказанное дважды. Второй независимый голос в этой тройке ровно один — европейский ECMWF.
И есть вопрос поважнее первого: какая часть прогноза вообще несёт новую информацию. Вот сколько ещё перепишут в прогнозе конкретных суток — в зависимости от того, за сколько дней до этих суток прогноз сделан.

Читается карточка так. Возьмём конкретный день — пусть 20 июля. Прогноз на этот день существует не в одном экземпляре: он был сделан и за неделю до, и за пять дней, и за трое суток, и накануне вечером. Самый последний, сделанный накануне, ближе всего к тому, что в этот день реально случилось. Его и берём за эталон.
Дальше сравниваем с эталоном все более ранние прогнозы на ту же дату. Насколько прогноз, сделанный за N дней, расходится с кануном — это и есть «сколько в нём ещё перепишут». По горизонтали отложено N, за сколько суток до даты сделан прогноз. По вертикали — средний размер этой переписки, в градусо-днях. Считано по 36 датам июля и начала августа, отдельно для каждой модели.
Дальше интересна форма кривой. У GFS прогноз, сделанный за двое суток, расходится с кануном на 0.8 CDD — практически ничего. Сделанный за трое — уже на 1.9, скачок больше чем вдвое. А потом кривая ложится почти горизонтально: 1.9, 2.0, 2.1, 2.2 на шестом дне.
Читать это надо как две разные вещи. Между вторым и третьим днём проходит граница определённости: до неё атмосфера уже сложилась и переписывать в ней нечего, после неё модель деталей ещё не знает и будет их менять. А плато справа означает, что дальше третьего дня новой неопределённости почти не прибавляется — прогноз за шесть суток разойдётся с кануном примерно так же, как за трое. На таких сроках модель рисует уже не конкретный день, а правдоподобный его вариант.
У ECMWF та же форма и тот же излом, но амплитуда втрое меньше: 0.3 на втором дне и 0.8 на шестом против 0.8 и 2.2 у GFS. Он реже переписывает сам себя. Это не то же самое, что «он точнее»: устойчивость здесь меряется против собственного кануна, а не против факта.
Ближний край почти не несёт новой информации — не потому, что он плохой, а ровно наоборот. Причин три.
Всё выше — про мою оценку. Но довод есть и шире, он верен, даже если никаких балансов вы не считаете.
Цена сегодня уже содержит в себе всё, что известно про ближние дни. Жара послезавтра — не новость: её видят все, видят одинаково и из одного и того же прогона. И, как видно по карточке выше, этот прогон её уже почти не переписывает. Торговать тут нечем просто потому, что меняться нечему.
Новость возникает там, где мнение ещё двигается. Карточка показывает, где именно: ближе третьего дня прогноз стоит, а дальний край переписывается постоянно и переписывается крупно — на пару CDD в сутки у GFS. За неделю набегает десяток градусо-дней. В моей летней регрессии один градусо-день в сутках стоит около 1 Bcf спроса, то есть речь о величине порядка трети нынешней недельной закачки в хранилища. Когда очередной прогон переносит жару с двенадцатого дня на девятый или отменяет её вовсе, меняется ожидаемый баланс — а вчерашняя погода не меняется никогда.
Поэтому вторая неделя важнее первой не потому, что она надёжнее. Она заведомо хуже: именно там прогноз и врёт. Важнее она потому, что это единственное место, где неопределённость ещё осталась. Первая неделя — по сути уже свершившийся факт, и разница только в том, что моя оценка узнаёт о нём из EIA-930, а рынок узнал раньше.
Одна оговорка, чтобы не звучало как рецепт. «Важнее» здесь про то, где живёт информация, а не про то, что на ней просто заработать: рынок отыгрывает свежий прогон за минуты, а публичные файлы приходят часами позже. Что из этого получается на истории — в разделе про торговое применение ниже, и результат там не тот, которого ждёшь.
Градусо-дни на охлаждение считаются проще, чем кажется. Берётся суточная средняя температура — полусумма максимума и минимума — и из неё вычитается 65 °F. Что осталось сверху, то и есть CDD этих суток. День с максимумом 95 и минимумом 75 даёт среднюю 85 и, значит, 20 CDD. Если средняя ниже 65, CDD равен нулю, а разница вниз уходит в HDD — градусо-дни на отопление.
База 65 °F выбрана как температура, при которой типичному зданию не нужно ни греть, ни охлаждать. Метрике больше века, она родилась именно в энергетике, и весь смысл её в том, что расход топлива растёт почти линейно от этого порога.

Вот как это выглядит на живых данных: линия — средняя суточная температура по стране, взвешенная по населению, пунктир внизу — та самая база. Вся закрашенная площадь между ними и есть градусо-дни. Самый жаркий день лета в этом ряду, 15 июля, дал 83 °F в среднем по стране, то есть 18 CDD за сутки. Зимой картинка переворачивается: линия уходит под базу, площадь становится HDD, и считает она уже не кондиционеры, а котлы.
Но число по одному городу никому не нужно, нужен национальный ряд. Значит, точки надо взвесить — и вот здесь мои источники устроены по-разному.
CPC я беру готовым, ничего не пересчитывая. NOAA взвешивает градусо-дни сама и выкладывает бесплатным файлом: строки — census-дивизионы, последняя строка — итог по континентальным штатам, отдельно факт и отдельно семидневный прогноз. Тут работа сводится к «скачать и прочитать». Сам я считаю по этим файлам только норму, среднее за десять прошлых лет на те же даты, — её в готовом виде нет.
А вот по GFS и ECMWF готового национального CDD в свободном доступе я не нашёл. Наружу отдаётся температура: суточные максимум и минимум по любой запрошенной точке. Градусо-дни из неё каждый считает себе сам. Поэтому взвешивать приходится мне — те самые 25 метро-агломераций континентальных штатов, вес каждой равен её населению в миллионах: Нью-Йорк 20.1, Лос-Анджелес 13.2, Чикаго 9.6 и так вниз до Солт-Лейк-Сити с 1.3, сумма около 134 миллионов человек. Это заведомо грубее census-дивизионов CPC, зато ряд целиком в моих руках и одинаково устроен для обеих моделей.
Заодно это единственный способ добраться до ансамблей. 31 сценарий GEFS и 51 сценарий ENS приходят тоже температурой, и градусо-дни по каждому сценарию отдельно, как на карточке с ансамблями ниже, тоже никто готовыми не выкладывает.
Теперь про сетки. Модель считает погоду не «в городе», а в узлах трёхмерной решётки, накинутой на всю планету, с десятками слоёв по высоте. У GFS шаг решётки порядка 13 км, у главного прогона ECMWF — около 9 км, у ансамблевых расчётов грубее, потому что их полсотни штук на тот же суперкомпьютер. Наружу в свободный доступ и то, и другое отдаётся уже перемолотым на четверть градуса, это примерно 28 км. Для суточных максимума и минимума по агломерации такой зернистости хватает с запасом: город сам размером с ячейку.
Одна тонкость нашей кухни. В бесплатном канале GFS ближние сутки подмешаны из HRRR — американской модели высокого разрешения, которая пересчитывается каждый час. Поэтому «пришёл ли новый прогон» я определяю только по дальним дням: по ближним поймаешь дрожь HRRR, а не выход цикла.
GWDD — те же градусо-дни, но взвешенные не по населению, а по потреблению газа. Разница существенная. В Северной Дакоте живёт мало людей, а газа на душу зимой уходит много. Во Флориде наоборот: жары полно, но газ там жгут электростанции ради кондиционеров, а не котлы в домах, и отклик на градус совсем другой. Гэс-взвешивание сдвигает карту весов с того, где живут люди, на то, где горит газ.
Именно в этих единицах рынок обычно и разговаривает: «пятнадцатидневные GWDD прибавили столько-то против нормы». Живого бесплатного фида, эквивалентного вендорскому, я не знаю: веса — это и есть продукт, который Atmospheric G2, Commodity Weather Group, MDA и Maxar продают десками по подписке, и состав смеси наружу они не показывают.
Секрета в самой метрике при этом нет, открыты все ингредиенты. Температуру дают те же модели. Веса можно собрать из потребления газа по штатам и секторам, которое EIA публикует бесплатно, — правда, месячным шагом и с лагом около двух месяцев. Получится своя гэс-взвешенная версия, не совпадающая с вендорской, но своя и воспроизводимая.
Ответ в том, какая у меня задача. Я не торгую прогон и не угадываю погоду на две недели вперёд — я оцениваю недельный отчёт EIA о запасах, то есть неделю, которая на момент счёта уже закончилась. Отсюда три следствия.
И честная оговорка, чтобы это не звучало как «у меня всё оптимально». Переход на гэс-взвешенные градусо-дни не там, где сейчас живёт моя ошибка. Она живёт на стороне предложения: добычу и импорт из Канады я в недельной оценке не измеряю вовсе, а считаю неизменными от недели к неделе. Вот это и есть открытая дыра, и никакая замена весов в температурном ряде её не закрывает.
Отдельная ловушка, на которой легко построить ложную сенсацию. Семидневный CDD в свежих выпусках: CPC — 80, GFS — 112, ECMWF — 110.
Это не значит, что CPC видит другую погоду. База одна и та же, 65 °F, а вот усреднение по стране разное — те самые веса, о которых выше. Уровни у таких рядов живут в разных шкалах и совпадать не обязаны. Сравнивать между продуктами можно только сдвиги — насколько каждый переписал сам себя, — и место цифры внутри её собственного разброса. Уровень к уровню сравнивают только внутри одного продукта.
Информация живёт на второй неделе, дни 8–14. И там же выясняется, что привычная формулировка «GFS против ECMWF» описывает не то, что кажется.
Кроме одного главного прогона у каждой школы есть ансамбль — тот же расчёт, запущенный десятками раз с чуть разными начальными условиями. У американского GEFS 31 член, у европейского ENS — 51. Вот они все на второй неделе, снимок 11 августа.

Коридор p10–p90 у GFS — 24.8 CDD, у ECMWF — 21.2. Расстояние между медианами двух школ — 13.4. Собственная неуверенность одной модели крупнее, чем её спор с соседкой.
Ромбами отмечен тот самый главный, детерминированный прогон — то число, которое обычно и цитируют. У GFS в этот день оно село на 94-й перцентиль своего же ансамбля: горячее почти всех собственных сценариев. Причём на первой неделе тот же прогон сидел на 3-м перцентиле — холоднее почти всех. Один прогон за один день успел побывать на обоих краях. Это не поломка, это природа детерминированного расчёта: он один сценарий из многих, а не «мнение модели».
Практический вывод: расхождение школ имеет смысл мерить ансамбль против ансамбля — медианами и пересечением коридоров. Сравнение двух одиночных прогонов систематически занижает разногласие, потому что вы сравниваете случайную точку из одного распределения со случайной точкой из другого.
Сначала про то, кто вообще эти прогнозы делает. За GFS стоит NOAA — американское управление океанических и атмосферных исследований; в него же входят и Национальная метеослужба с её сеткой NDFD, и Climate Prediction Center, тот самый CPC. Отсюда и «полтора мнения»: два продукта из трёх — из одного ведомства. ECMWF — не модель, а организация: Европейский центр среднесрочных прогнозов погоды, межправительственный, около трёх десятков стран-участниц, штаб-квартира в Рединге, вычислительный центр в Болонье. Его модель формально зовётся IFS, но в разговоре её называют по имени центра.
Глобальных моделей в мире больше этих двух. Считают немецкая ICON от службы DWD, канадская GEM от Environment and Climate Change Canada, британская UKMO от Met Office, японская GSM от JMA, французская ARPEGE от Météo-France. Есть и новое поколение — GraphCast от DeepMind, Pangu от Huawei, AIFS у самого ECMWF: нейросети выдают глобальный прогноз за секунды вместо часа на суперкомпьютере.
Отдельным слоем идут вендоры — Atmospheric G2, Commodity Weather Group, MDA, Maxar, Speedwell. Они смешивают несколько моделей в один взвешенный прогноз и продают его торговым десками по подписке. Что у них внутри, снаружи не видно, поэтому рассуждать об этом не стану.
Мой выбор из этого списка сознательный, и он не про полноту. Газовый рынок торгует прогоны 0z и 12z GFS и ECMWF — цена дёргается через минуты после их выхода. Если задача описывать не «погоду вообще», а то, на что реагирует рынок, смотреть надо ровно на них. Плюс всё, чем я пользуюсь, бесплатно и воспроизводимо: любой читатель может взять те же файлы и получить те же числа. Мне это ценнее лишней строчки в списке источников.
Плата за такой выбор — задержка. Дески получают прогон в пределах часа, я — когда его выложат в открытый доступ, а суточный файл CPC приезжает и вовсе пятнадцатичасовым. Для недельного отчёта EIA это не мешает: он описывает уже закончившуюся неделю, где бóльшая часть закрыта наблюдением, а не прогнозом. Для внутридневной торговли на свежем прогоне — мешает, и сильно. Границу знаю и за неё не лезу.
Дешёвое улучшение тут всё-таки есть: ICON и GEM тоже бесплатны, и обе не из американской школы. С ними проверка согласия стала бы честнее, чем на нынешних полутора мнениях.
Раз независимых голосов два, а не три, согласие между ними — единственная проверка, которая у меня есть. Я держу расхождение GFS и ECMWF по недельному CDD как отдельную величину и смотрю на него каждый раз перед тем, как что-то утверждать.

114 пар снимков с 7 июля. Медиана расхождения 5.1 CDD, порог — 9.0, вдвое выше обычного; выше порога оказались 28 снимков, примерно каждый четвёртый. Когда порог пробит, на витрине сила вывода о давлении на цену режется до умеренной и добавляется строка, какая модель ведёт.
Зачем это нужно, видно на пике в начале августа. С 30 июля по 2 августа GFS поднял недельный CDD со 102.8 до 117.3, а ECMWF за то же время не сдвинулся вовсе — 102.7 против 102.8. Расхождение дошло до 15.2 при обычных пяти. Без порога карточка показала бы уверенное «жарко, бычий фактор» — хотя это было мнение одной модельной семьи, а вторая молчала. Сегодня, для сравнения, разрыв 2.3: обычный день.
Выше написано, что информация живёт на второй неделе. Сказать честно: мерить её я начал недавно. Дни 8–14 копятся у меня с 2 августа, и первая полностью закрытая пара «что обещали за неделю вперёд — что вышло» созреет только 17 августа. Одна пара — это не проверка, по ней ничего не утверждают.
Правило поэтому такое: в сводный скор и в алерты этот ряд не идёт, пока по нему не наберётся несколько десятков непересекающихся окон, а это порядка полугода. До тех пор вторая неделя у меня величина описательная — столько-то против стольких-то, уровень, а не наклон. Показываю её ровно в этом качестве и в выводы не тащу.
Отдельно про торговое применение, чтобы не было недомолвок. Связь ревизий погоды с ценой я мерил на истории с 2021 года, 1403 сессии: после крупного пересмотра CDD вверх цена за следующие 5 дней в среднем −0.81% и растёт в 39.7% случаев, после пересмотра вниз +1.64% и 58.3%. С поправкой на перекрытие пятидневных окон обе величины незначимы. Знак обратный интуиции, и правдоподобное объяснение простое: к моменту публикации файла движение уже отыграно. Цифры привожу как есть — выводы из них каждый делает свои.
Завтра, 13 августа в 17:30 МСК, EIA публикует запасы газа за неделю к 7 августа. Моя оценка — +36.1 Bcf.
Собирается она поправками к прошлой неделе. Факт прошлой недели +33. Спрос за неделю снизился на 4.1 Bcf — столько же прибавляется к закачке. Подача на СПГ-заводы, наоборот, выросла на 0.9 — это из закачки вычитается. Итого 33 + 4.1 − 0.9 = 36.2, с округлением 36.1.

Вся модель на одной картинке: слева факт, который уже опубликован, справа число, которое я обещаю на завтра, между ними — два измеренных слагаемых. Никакого уровня запасов в этой арифметике нет, только поправки.
Эти 4.1 и есть всё, о чём написано выше, переведённое в баланс: градусо-дни двух моделей идут в модель энергопотребления и выходят из неё объёмом газа. Прогноз погоды здесь не украшение отчёта, а слагаемое.
Счёт за прошлую неделю: я обещал +22.6, вышло +33.0. Ошибка −10.4, и это худшая неделя из четырёх. Средняя абсолютная ошибка вне выборки за четыре недели — 7.4 Bcf. Недели не выбираю, промахи публикую тем же шрифтом, что и попадания.
Всё выше — из моего дашборда NatGasLens. Он собирает подачу на СПГ-заводы из трубных номинаций, статусы и ремонты заводов из новостей, погодные модели — CPC, GFS и ECMWF вместе с их ансамблями — и запасы EIA из первоисточников, и сводит это в недельную оценку баланса.
Это мониторинг, а не торговые сигналы: инструмент отвечает на вопрос «что сейчас происходит с физикой рынка», решение остаётся за вами.
Раздел погодных моделей открыт без регистрации, там же лежат и расхождение моделей, и коридоры ансамблей: natgaslens.com
Сразу после выхода отчёта опубликую карточку с фактом и величиной ошибки: t.me/NatGasLens_ru
Следующий пост — про позиции CFTC. Разберу, почему привычная «нетто-позиция фондов» показывает меньше, чем её отдельные ноги; что меняет запаздывание отчёта — срез на вторник, публикация в пятницу; и как на истории ведёт себя цена после рекордного шорта. Заодно покажу, какая из позиционных величин действительно ходит вместе с ценой, а какая только выглядит связанной.
А несостыковку, которую видно прямо сейчас — запасы держатся вровень с прошлым годом, а цена заметно ниже прошлогодней, — отложу на пост после него. Там ответ в добыче и в форме фьючерсной кривой, и он стоит отдельного разбора.
Отчёт EIA по запасам газа за неделю к 7 августа: закачка в подземные хранилища США +36 Bcf. Моя оценка, названная в этом посте накануне, — +36.1. Ошибка 0.1. Консенсус был +31.
Запасы в ПХГ США по данным EIA — 3153 Bcf: на 0.8% ниже прошлого года и на 6.7% выше пятилетней средней.
Арифметика та же, что в тексте: факт прошлой недели 33, спрос за неделю ниже на 4.1 Bcf, подача на СПГ-заводы выше на 0.9. 33 + 4.1 − 0.9 = 36.1.
Счёт вне выборки за пять недель — все подряд, без выбора:
Зелёное — оценка до выхода отчёта, серое — факт EIA, сверху ошибка. Две недели из пяти — промахи на 13.4 и 10.4 Bcf. Средняя абсолютная ошибка за пять недель — 6.0 Bcf. Одно попадание остаётся одним попаданием: недели не выбираю, промахи публикую тем же шрифтом.
Дашборд открыт без регистрации: natgaslens.com