Forwarded from Запасник экономиста
Пешим ходом (1)
Цветом отобразил доступность городской инфраструктуры — от высокого зеленого (Москва) до низкого красного (Кинешма). Размер кружочков — площадь в расчете на человека: чем больше «ареал обитания» среднего жителя, тем сложнее добраться до инфраструктуры. В принципе, здесь видна взаимосвязь, если сравнить, опять же, Кинешму с Москвой, но более четко эту взаимосвязь увидим позже.
Сейчас же хочется отметить, что во многих областях ЦФО второй крупный город (Кинешма, Елец, Мичуринск, Обнинск) не дотягивает до региональной столицы (Иваново, Липецк, Тамбов, Калуга). Вероятно, это следствие перетока части населения в локальные центры экономической активности или в Москву. Хотя есть и исключения – например, в паре Орел / Ливны второй город, наоборот, выделяется высокой доступностью инфраструктуры
Цветом отобразил доступность городской инфраструктуры — от высокого зеленого (Москва) до низкого красного (Кинешма). Размер кружочков — площадь в расчете на человека: чем больше «ареал обитания» среднего жителя, тем сложнее добраться до инфраструктуры. В принципе, здесь видна взаимосвязь, если сравнить, опять же, Кинешму с Москвой, но более четко эту взаимосвязь увидим позже.
Сейчас же хочется отметить, что во многих областях ЦФО второй крупный город (Кинешма, Елец, Мичуринск, Обнинск) не дотягивает до региональной столицы (Иваново, Липецк, Тамбов, Калуга). Вероятно, это следствие перетока части населения в локальные центры экономической активности или в Москву. Хотя есть и исключения – например, в паре Орел / Ливны второй город, наоборот, выделяется высокой доступностью инфраструктуры
Forwarded from FRAT - Financial random academic thoughts
Сравнение цен Росстата и Магнолии: никаких сенсаций 2.
Продолжаем сверять цены Росстата (июль) и Магнолии (август), а также среднюю инфляцию за последние 12 месяцев по корзине Росстата и медианное изменение цены товаров.
Тезис 1.
Поскольку весь каталог анализировать лень, то вот самые полезные десять товаров:
1) апельсины руб. за кг (Росстат 154, Магнолия 170 но это какие-то премиальные)
2) молоко стерилизованное руб. за литр (Росстат 108, Магнолия 105)
3) картофель руб. за кг (Росстат 61, Магнолия 50)
4) сметана руб. за кг (Росстат 340, Магнолия 366)
5) зубная паста руб. за 100 г (Росстат 208, Магнолия 150)
6) мёд пчелиный руб. за кг (Росстат 633, Магнолия 680)
7) сыр плавленый руб. за кг (Росстат 736, Магнолия 750)
8) стиральный порошок руб. за кг (Росстат 213, Магнолия 217)
и этого нет в Магнолии но:
9) сотовая связь руб. в мес. (Росстат 727)
10) интернет руб. в мес. (Росстат 629)
11) кофе в орг. быстрого обслуживания за 400 мл. (у меня 190, у Росстата 194)
Тезис 2.
Проверяем медианное изменение цен на товары и услуги в Москве за август 2023 - июль 2024 по файлу Росстата. У меня получилось вот так. Медианное значение изменения цены среди всех = 10,06%, а накопленная инфляция = 9,99%.
Выводы:
1) в августе 2024 у Росстата разумные цены на отдельные товары и услуги;
2) ИПЦ согласуется с ценами отдельных товаров и услуг. Это важно, потому что "корзину Росстата" часто ругают за непонятные веса, но медиана примерно как общий индекс. Росстат молодец!
#Russia #Inflation #Rosstat
Продолжаем сверять цены Росстата (июль) и Магнолии (август), а также среднюю инфляцию за последние 12 месяцев по корзине Росстата и медианное изменение цены товаров.
Тезис 1.
Поскольку весь каталог анализировать лень, то вот самые полезные десять товаров:
1) апельсины руб. за кг (Росстат 154, Магнолия 170 но это какие-то премиальные)
2) молоко стерилизованное руб. за литр (Росстат 108, Магнолия 105)
3) картофель руб. за кг (Росстат 61, Магнолия 50)
4) сметана руб. за кг (Росстат 340, Магнолия 366)
5) зубная паста руб. за 100 г (Росстат 208, Магнолия 150)
6) мёд пчелиный руб. за кг (Росстат 633, Магнолия 680)
7) сыр плавленый руб. за кг (Росстат 736, Магнолия 750)
8) стиральный порошок руб. за кг (Росстат 213, Магнолия 217)
и этого нет в Магнолии но:
9) сотовая связь руб. в мес. (Росстат 727)
10) интернет руб. в мес. (Росстат 629)
11) кофе в орг. быстрого обслуживания за 400 мл. (у меня 190, у Росстата 194)
Тезис 2.
Проверяем медианное изменение цен на товары и услуги в Москве за август 2023 - июль 2024 по файлу Росстата. У меня получилось вот так. Медианное значение изменения цены среди всех = 10,06%, а накопленная инфляция = 9,99%.
Выводы:
1) в августе 2024 у Росстата разумные цены на отдельные товары и услуги;
2) ИПЦ согласуется с ценами отдельных товаров и услуг. Это важно, потому что "корзину Росстата" часто ругают за непонятные веса, но медиана примерно как общий индекс. Росстат молодец!
#Russia #Inflation #Rosstat
kuper.ru
МАГНОЛИЯ доставка продуктов и товаров на дом по низкой цене в Купере
▶ Доставка продуктов и товаров из магазина МАГНОЛИЯ по выгодной цене в Купере! Мы лично выбираем самые свежие продукты и лучшие товары, аккуратно упаковываем их и привозим в удобное для Вас время ✔ Доставка день в день от 30 минут ✔ Скидки и акции ✔
ХОЛОДНЫЙ РАСЧЕТ ∅
Сравнение цен Росстата и Магнолии: никаких сенсаций 2. Продолжаем сверять цены Росстата (июль) и Магнолии (август), а также среднюю инфляцию за последние 12 месяцев по корзине Росстата и медианное изменение цены товаров. Тезис 1. Поскольку весь каталог анализировать…
Признаемся, что каждому из нас нужен предлог, чтобы зайти в любимый магаз за углом
Вместе с тем, приобретение сырка Б.Ю. Александрова, и защита чести и достоинства российской статистики вряд ли стоит совмещать в один поход
Заинтересованный исследователь может получать десятки тысяч цен с уровнем написания кода в Python "тят-тяп и готово"
Вот шаблон кода, который пару лет назад давал возможность скрейпить один из крупнейших розничных магазинов - осталось запустить, собрать цифры и разметить позиции в справочник Росстата
Шаг 1. Введение
Вместе с тем, приобретение сырка Б.Ю. Александрова, и защита чести и достоинства российской статистики вряд ли стоит совмещать в один поход
Заинтересованный исследователь может получать десятки тысяч цен с уровнем написания кода в Python "тят-тяп и готово"
Вот шаблон кода, который пару лет назад давал возможность скрейпить один из крупнейших розничных магазинов - осталось запустить, собрать цифры и разметить позиции в справочник Росстата
Шаг 1. Введение
import urllib.parse
import datetime
import json
import os
import random
import sys
import time
import pickle
import re
from bs4 import BeautifulSoup
from utilities.BaseParser import open_url_engine
def getPricePages(VPROKURL):
# global rs
# rs.get(VPROKURL)
# time.sleep(6)
# htmlSource = rs.driver.page_source
# rs.driver.close()
with open_url_engine(engine_type='selenium', headless=True) as url_engine:
# soup = BeautifulSoup(htmlSource, "html.parser")
soup = url_engine.get_soup(VPROKURL)
time.sleep(4)
soup = BeautifulSoup(url_engine.browser.get_page_source())
mmenu = soup.select("a.xf-catalog-categories__link")
sections = []
for m in mmenu:
sections.append(urllib.parse.urljoin(VPROKURL, m['href']))
print(m['href'])
return sections
def scrapePrices(VPROKURL, secURL, url_engine):
# collector for prices
# rs = RobustSelenium(7)
products = {}
page = 1
psoup = url_engine.get_soup(urllib.parse.urljoin(secURL, f'?page={page}&sort=rate_desc'))
time.sleep(8)
while True:
# rs.get(urllib.parse.urljoin(secURL, f'?page={page}&sort=rate_desc'))
# htmlp = rs.driver.page_source
# psoup = BeautifulSoup(htmlp, "html.parser")
psoup = url_engine.get_soup(urllib.parse.urljoin(secURL, f'?page={page}&sort=rate_desc'))
time.sleep(1)
psoup = BeautifulSoup(url_engine.browser.get_page_source())
cards = psoup.select('.js-catalog-product')
newcards = {}
if cards:
for c in cards:
url = c.select_one('.xf-product-title > a')['href']
url = urllib.parse.urljoin(VPROKURL, url[1:])
pattern = '(https://www.vprok.ru/product/)(.+)(--)([0-9]+)'
res = list(re.findall(pattern, url)[0])
url = res[0] + 'product--' + res[-1]
if url not in products.keys():
try: # 44211
newcards[url] = parseCard(c, url)
except ValueError as e:
with open('44211_psoup.pkl', 'w') as wrong_price_file: # 44211
pickle.dump(psoup, wrong_price_file) # 44211
with open('wrong_url', 'w') as wrong_url_file: # 44211
wrong_url_file.write(url) # 44211
print(f'44211 found in {url}', file=sys.stderr) # 44211
if newcards:
products.update(newcards)
page += 1
print(f'page {page} ' + secURL)
else:
break
else:
break
# rs.driver.close()
return products
ХОЛОДНЫЙ РАСЧЕТ ∅
Сравнение цен Росстата и Магнолии: никаких сенсаций 2. Продолжаем сверять цены Росстата (июль) и Магнолии (август), а также среднюю инфляцию за последние 12 месяцев по корзине Росстата и медианное изменение цены товаров. Тезис 1. Поскольку весь каталог анализировать…
Шаг 2. Парсинг карточки отдельного товара
def parseCard(card, url):
parsed = {}
parsed['DateTimeObserved'] = str(datetime.datetime.now())
parsed['URL'] = url
# Check for out of stock status
stockStatus = card.select_one('.xf-product__out')
if stockStatus:
parsed['Status'] = 'OutOfStock'
parsed['CurrentPrice'] = None
parsed['CrossedPrice'] = None
else:
parsed['Status'] = 'InStock'
currentprice = card.select_one('.xf-product-cost__current')
parsed['CurrentPrice'] = float(currentprice['data-cost'])
crossedprice = card.select_one('.xf-product-cost__prev')
try:
if crossedprice and float(crossedprice['data-cost']) > 0.0:
parsed['CrossedPrice'] = float(crossedprice['data-cost'])
except:
parsed['CrossedPrice'] = None
try:
parsed['ProductName'] = card.select_one('.xf-product-title > a')['title']
except:
print('some error was occurred during obtaining productName, url is:\n', url, file=sys.stderr)
pass
if parsed['CurrentPrice'] == 44211: # 44211
raise ValueError('Odd value in CurrentPrice, 44211') # 44211
return parsed
ХОЛОДНЫЙ РАСЧЕТ ∅
Шаг 2. Парсинг карточки отдельного товара def parseCard(card, url): parsed = {} parsed['DateTimeObserved'] = str(datetime.datetime.now()) parsed['URL'] = url # Check for out of stock status stockStatus = card.select_one('.xf-product__out')…
Шаг 3. Главный цикл и дамп собранных данных
def main():
"""
Main function.
"""
# walk original subset of link and find price lists
# but not every time, but say 5% of the time
timeexec = datetime.datetime.now().strftime('%Y%m%d%H')
print(timeexec)
PRICEDIR = os.path.join(os.path.dirname(__file__), 'json', os.path.basename(__file__).replace('.py', ''))
PRICEDIR = os.path.join(PRICEDIR, timeexec)
os.makedirs(PRICEDIR, exist_ok=True)
DATAFILE = os.path.join(os.path.dirname(__file__), os.path.basename(__file__).replace('.py', '.data'))
VPROKURL = 'https://www.vprok.ru/catalog'
r = random.uniform(0, 1)
if r > 0.2 or not os.path.exists(DATAFILE):
pricePages = getPricePages(VPROKURL)
with open(DATAFILE, 'wb') as f:
pickle.dump(pricePages, f)
# load price pages
with open(DATAFILE, 'rb') as f:
pricePages = pickle.load(f)
# scrape price lists
pricePages = [*set(pricePages)]
random.shuffle(pricePages)
url_engine_options = {
# 'type': 'requests'
'type': 'selenium'
, 'max_attempts': 5
, 'sleep_time_sec': 3
}
with open_url_engine(url_engine_options, headless=True) as url_engine:
for sectionNumber, page in enumerate(pricePages):
pricePack = scrapePrices(VPROKURL, page, url_engine)
# and save data
with open(os.path.join(PRICEDIR, 'sec' + str(sectionNumber) + '.json'), 'w', encoding='utf8') as f:
json.dump(pricePack, f, indent=1, ensure_ascii=False)
if __name__ == '__main__':
main()
Forwarded from Долгосрок
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from PRO облигации
Аукционы ОФЗ. Хирургическая точность
🔨 На втором аукционе размещался 15-летний ОФЗ-26247. Цена отсечения составила 81,01 (YTM 16,16%, т.е. лишь 4 бп премии к закрытию вторника), размещено 23,8 млрд руб. по номинальной стоимости (20,1 млрд «по рынку»)
🧮 Спрос составил 56,6 млрд руб. (спрос/размещение: 2,4х). Допразмещение было решено не проводить
🦛 Мы думаем, что весь объем забрали в лучшем случае 4 участника. Почти 100% удовлетворенного спроса расположились в узком диапазоне 81,01-81,03. В результате цена отсечения отличалась от средневзвешенной меньше, чем на 1 бп
Выделим 🥇 биды на суммарные 12,8 млн бумаг по отсечке, 🥈 на 7 млн бумаг на 8 копеек выше и 🥉 на 3 млн бумаг еще на 10 копеек выше. Также выделялся большой неконкурентный бид на 1 млн бумаг
📅 Годовой план выполнен на 40%, размещено облигаций на 1,57 трлн руб. Чтобы идти вровень с графиком, нужно привлекать «в деньгах» почти 140 млрд руб. в неделю. Квартальный план выполнен на 29%
#ofz
@pro_bonds
🔨 На втором аукционе размещался 15-летний ОФЗ-26247. Цена отсечения составила 81,01 (YTM 16,16%, т.е. лишь 4 бп премии к закрытию вторника), размещено 23,8 млрд руб. по номинальной стоимости (20,1 млрд «по рынку»)
🧮 Спрос составил 56,6 млрд руб. (спрос/размещение: 2,4х). Допразмещение было решено не проводить
🦛 Мы думаем, что весь объем забрали в лучшем случае 4 участника. Почти 100% удовлетворенного спроса расположились в узком диапазоне 81,01-81,03. В результате цена отсечения отличалась от средневзвешенной меньше, чем на 1 бп
Выделим 🥇 биды на суммарные 12,8 млн бумаг по отсечке, 🥈 на 7 млн бумаг на 8 копеек выше и 🥉 на 3 млн бумаг еще на 10 копеек выше. Также выделялся большой неконкурентный бид на 1 млн бумаг
📅 Годовой план выполнен на 40%, размещено облигаций на 1,57 трлн руб. Чтобы идти вровень с графиком, нужно привлекать «в деньгах» почти 140 млрд руб. в неделю. Квартальный план выполнен на 29%
#ofz
@pro_bonds
Forwarded from Helicopter Macro
This media is not supported in your browser
VIEW IN TELEGRAM
Банк России в ОНДКП: Одним из запросов профессионального сообщества была публикация кода прогнозных моделей Банка России. Соответствующие материалы планируется разместить во второй половине 2024 года.
Холодный расчет и аналитики:
@helicoptermacro
Холодный расчет и аналитики:
@helicoptermacro
• Официальные цифры по добыче не доступны с начала 2023 года
• Оценка обратным счетом из общей динамики добычи и доступных данных по субсекторам кроме добычи нефти и газа говорит о снижении на 1.7% г/г
#обратныйсчет
@c0ldness
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Alexey Raksha
Уважаемые господа, у кого какие мнения по пересчёту ДДН и соответственно РРДДН за 2022? Он выходит далеко за рамки всех предыдущих пересчётов и не соответствует динамике З/П. Сильно пересчитаны вверх все компоненты, как если бы дефлятор резко занизили. Но речь об абсолютах!. Фантастика какая-то. При этом все цепные индексы после 2022 изменились слабо и вверх. То есть Росстат "обнаружил" около 5% стабильных доходов, размазанных по всем источникам
Миллион новых рабочих мест
В 2кв24 занятость выросла почти на 0.9 млн. рабочих мест против 2кв23 за счет:
• занятости в неторгуемых секторах на 400 тыс.
• занятости в госсекторе на 340 тыс.
• занятости в торгуемых секторах на 110 тыс.
@c0ldness
В 2кв24 занятость выросла почти на 0.9 млн. рабочих мест против 2кв23 за счет:
• занятости в неторгуемых секторах на 400 тыс.
• занятости в госсекторе на 340 тыс.
• занятости в торгуемых секторах на 110 тыс.
@c0ldness
Оборона и безопасность перестали быть драйверами роста занятости в госсекторе
• В 2кв24 занятость в обороне и госуправлении снизилась на 60 тыс. г/г
• Рост занятости в целом по госсектор генерировали образование и здравоохранение - каждый +200 тыс. рабочих мест
@c0ldness
• В 2кв24 занятость в обороне и госуправлении снизилась на 60 тыс. г/г
• Рост занятости в целом по госсектор генерировали образование и здравоохранение - каждый +200 тыс. рабочих мест
@c0ldness