ЦБ: инфляция с устранением сезонности в мае продолжила снижаться

news 1781265791

В мае инфляция продолжила замедляться. Даже если убрать сезонные скачки.

Центробанк подтвердил тренд. Цены растут всё медленнее. Это не просто календарь виноват — мол, в мае всегда так. Реальная динамика улучшается.

Точных цифр в сообщении нет. Но сам факт важен. Регулятор фиксирует снижение второй месяц подряд. До этого инфляция долго не хотела отступать.

Что стоит за этим? Жёсткая политика ЦБ даёт плоды. Высокая ставка охлаждает спрос. Люди меньше берут кредиты, реже покупают в импульсе. Компании не могут бесконечно задирать цены — покупатель упирается.

Ещё фактор — укрепление рубля в начале года. Импорт подешевел. Это давит на цены вниз.

Но рано выдыхать. Один месяц — не тренд. Май вообще хитрый месяц. Овощи дешевеют из-за нового урожая. Услуги ведут себя спокойнее. Нужно смотреть июнь-июль.

ЦБ ждёт возврата к цели в 4% к концу 2027 года. Пока инфляция выше. Но если снижение продолжится, регулятор сможет начать смягчение политики. Первый шаг — снижение ключевой ставки.

Когда? После стабильного замедления. Не раньше осени.

Пока рынок замер в ожидании. Бизнес считает издержки. Люди — свои расходы. А ЦБ смотрит на графики и не спешит.

Инфляция отступает. Но война с ней ещё не выиграна.

); if ( in_array( $cat_slug_lc, $section_aliases, true ) ) { continue; } if ( $section_label && $cat_name_lc === $section_label ) { continue; } return $category; } return null; } function bezpafosafin_get_portfolio_metrics() { $dataset = bezpafosafin_get_portfolio_dataset(); // Get real total_change from DB (same source as hero block #150) global $wpdb; $alex = $wpdb->get_row("SELECT total_change, total_value, total_invested FROM wp_bpf_reader_portfolios WHERE alias = 'Алекс' AND status = 'approved' LIMIT 1"); if ( $alex && $alex->total_invested > 0 ) { $total_change = ($alex->total_value - $alex->total_invested) / $alex->total_invested * 100; $total_change_fmt = number_format( $total_change, 2, ',', '' ) . '%'; } elseif ( $alex ) { $total_change_fmt = number_format( $alex->total_change, 2, ',', '' ) . '%'; } else { $total_change_fmt = '—'; } if ( $dataset ) { // col4 = "Изм за неделю %" from TSV (index 4 in data row) $week_change = $dataset['week_change'] ?? '—'; return array( array( 'label' => 'Общая стоимость', 'value' => $dataset['total'], ), array( 'label' => 'Доходность с начала', 'value' => $total_change_fmt, ), array( 'label' => 'За неделю', 'value' => $week_change, ), array( 'label' => 'Позиций', 'value' => (string) count( $dataset['rows'] ), ), array( 'label' => 'Индекс ММВБ', 'value' => $dataset['mmvb'], ), ); } return array( array( 'label' => 'Общая стоимость', 'value' => '3 420 000 ₽', ), array( 'label' => 'Доходность с начала', 'value' => $total_change_fmt, ), array( 'label' => 'За неделю', 'value' => '—', ), array( 'label' => 'Позиций', 'value' => '4', ), array( 'label' => 'Индекс ММВБ', 'value' => '2 765,33', ), ); } function bezpafosafin_get_portfolio_table() { $dataset = bezpafosafin_get_portfolio_dataset(); if ( $dataset ) { return $dataset['rows']; } return array( array( 'name' => 'Сбер', 'total_value' => '117 600 ₽', 'current_price' => '336 ₽', 'quantity' => '350', 'change' => '+23.9%', ), array( 'name' => 'Новатэк', 'total_value' => '307 020 ₽', 'current_price' => '7 310 ₽', 'quantity' => '42', 'change' => '+18.3%', ), array( 'name' => 'НорНикель', 'total_value' => '741 000 ₽', 'current_price' => '154,00', 'quantity' => '0.12', 'change' => '+33.6%', ), array( 'name' => 'Яндекс', 'total_value' => '121 440 ₽', 'current_price' => '2 481', 'quantity' => '120', 'change' => '+3.2%', ), ); } if ( ! defined( 'BPF_PORTFOLIO_CSV_URL' ) ) { define( 'BPF_PORTFOLIO_CSV_URL', 'https://docs.google.com/spreadsheets/d/1qijGn06S3G2qEBrkY4khn18zrgNX980uqkMrryFaIGM/export?format=tsv&gid=0' ); } if ( ! defined( 'BPF_PORTFOLIO_CSV_PATH' ) ) { define( 'BPF_PORTFOLIO_CSV_PATH', '' ); } function bezpafosafin_get_portfolio_csv_source() { $url = defined( 'BPF_PORTFOLIO_CSV_URL' ) ? BPF_PORTFOLIO_CSV_URL : ''; $url = apply_filters( 'bezpafosafin_portfolio_csv_url', $url ); if ( ! empty( $url ) ) { return $url; } $path = defined( 'BPF_PORTFOLIO_CSV_PATH' ) ? BPF_PORTFOLIO_CSV_PATH : ''; return apply_filters( 'bezpafosafin_portfolio_csv_path', $path ); } function bezpafosafin_csv_value( $value ) { $value = (string) $value; $value = str_replace( "\xC2\xA0", ' ', $value ); $value = trim( $value ); return $value === '' ? '—' : $value; } function bezpafosafin_looks_percent( $value ) { $value = bezpafosafin_csv_value( $value ); return false !== strpos( $value, '%' ) || false !== strpos( $value, '#DIV' ); } function bezpafosafin_looks_number( $value ) { $value = bezpafosafin_csv_value( $value ); if ( '—' === $value ) { return false; } return 1 === preg_match( '/^-?[0-9\s.,]+$/u', $value ); } function bezpafosafin_detect_asset_offset( $data, $asset_count = 6 ) { $best_offset = 3; $best_score = -1; for ( $offset = 2; $offset <= 10; $offset++ ) { $score = 0; for ( $i = 0; $i < $asset_count; $i++ ) { $base = $offset + ( $i * 4 ); $v = $data[ $base ] ?? ''; $c = $data[ $base + 1 ] ?? ''; $p = $data[ $base + 2 ] ?? ''; $q = $data[ $base + 3 ] ?? ''; if ( bezpafosafin_looks_number( $v ) ) { $score++; } if ( bezpafosafin_looks_percent( $c ) ) { $score++; } if ( bezpafosafin_looks_number( $p ) ) { $score++; } if ( bezpafosafin_looks_number( $q ) && ! bezpafosafin_looks_percent( $q ) ) { $score++; } } if ( $score > $best_score ) { $best_score = $score; $best_offset = $offset; } } return $best_offset; } function bezpafosafin_parse_csv_rows( $content ) { if ( ! is_string( $content ) ||