gendesign/data/sql/20_schema_domrf_extras.sql
2026-04-26 22:30:52 +03:00

136 lines
6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- DOM.RF additional snapshots (downloaded as XLSX/PDF from наш.дом.рф via "Скачать" buttons).
-- Snapshot date stamped on the file: 26.04.2026 (mortgage_rates is 19.04.2026).
-- These extend the JSON dashboard data with: full developer registry, escrow banks,
-- 214-FZ guaranty per region, sold-out (Tile3 velocity), housing info by mechanism, mortgage rates.
-- 1. Полный реестр застройщиков с метриками (НЕ группа компаний — а юрлица из проектных деклараций)
CREATE TABLE IF NOT EXISTS domrf_developers_full (
snapshot_date DATE NOT NULL,
developer_name TEXT NOT NULL,
area_thousand_sqm NUMERIC,
permits_count INT,
houses_count INT,
flats_count INT,
market_share_pct NUMERIC,
PRIMARY KEY (snapshot_date, developer_name)
);
-- 2. Банки эскроу с метриками
CREATE TABLE IF NOT EXISTS domrf_escrow_banks (
snapshot_date DATE NOT NULL,
bank_name TEXT NOT NULL,
houses_count INT,
permits_count INT,
area_thousand_sqm NUMERIC,
developers_count INT,
regions_count INT,
PRIMARY KEY (snapshot_date, bank_name)
);
-- 3. Долевое стр-во по 214-ФЗ — по регионам с разбивкой эскроу/ПП480
CREATE TABLE IF NOT EXISTS domrf_guaranty_regions (
snapshot_date DATE NOT NULL,
territory_name TEXT NOT NULL, -- 'Российская Федерация' | 'Центральный ФО' | 'Свердловская область' ...
territory_level TEXT NOT NULL, -- 'rf' | 'fo' | 'region'
-- Всего строится
total_permits INT,
total_area_th_sqm NUMERIC,
total_developers INT,
-- Имеют право привлекать ДУ по 214-ФЗ (всего)
fz214_permits INT,
fz214_area_th_sqm NUMERIC,
fz214_developers INT,
fz214_pct_of_total NUMERIC,
-- В т.ч. с эскроу
escrow_permits INT,
escrow_area_th_sqm NUMERIC,
escrow_developers INT,
-- В т.ч. ПП №480 (без эскроу)
pp480_permits INT,
pp480_area_th_sqm NUMERIC,
pp480_developers INT,
PRIMARY KEY (snapshot_date, territory_name)
);
-- 4. Сводные показатели по механизмам привлечения (housing_info)
CREATE TABLE IF NOT EXISTS domrf_housing_summary (
snapshot_date DATE NOT NULL,
territory_name TEXT NOT NULL, -- 'Российская Федерация' | город | регион
territory_level TEXT NOT NULL, -- 'rf' | 'region' | 'city'
mechanism TEXT NOT NULL, -- 'all' | 'escrow' | 'fund' | 'no_attraction'
developers_count INT,
permits_count INT,
declarations_count INT,
houses_count INT,
area_thousand_sqm NUMERIC,
flats_thousand NUMERIC,
PRIMARY KEY (snapshot_date, territory_name, mechanism)
);
-- 5. Плановые сроки ввода (housing_info, нижняя таблица)
CREATE TABLE IF NOT EXISTS domrf_planned_commissioning (
snapshot_date DATE NOT NULL,
plan_year INT NOT NULL,
escrow_th_sqm NUMERIC,
fund_th_sqm NUMERIC,
no_attraction_th_sqm NUMERIC,
total_th_sqm NUMERIC,
PRIMARY KEY (snapshot_date, plan_year)
);
-- 6. Реализация (sold_out_info) — РФ итог + регионы
CREATE TABLE IF NOT EXISTS domrf_sold_out (
snapshot_date DATE NOT NULL, -- '2026-04-11' (отчёт за март 2026)
territory_name TEXT NOT NULL,
-- Площади
total_area_th_sqm NUMERIC,
sold_area_th_sqm NUMERIC,
unsold_area_th_sqm NUMERIC,
not_open_area_th_sqm NUMERIC,
-- Проценты
sold_pct NUMERIC,
unsold_pct NUMERIC,
not_open_pct NUMERIC,
-- Дополнительно (только для РФ)
avg_price_per_sqm NUMERIC, -- ₽/м²
attracted_funds_mln_rub NUMERIC, -- млн ₽
PRIMARY KEY (snapshot_date, territory_name)
);
-- 7. Реализация по году ввода
CREATE TABLE IF NOT EXISTS domrf_sold_out_by_year (
snapshot_date DATE NOT NULL,
plan_year TEXT NOT NULL, -- '2026' .. '2031+'
total_th_sqm NUMERIC,
pct_of_total NUMERIC,
sold_pct NUMERIC,
unsold_pct NUMERIC,
not_open_pct NUMERIC,
PRIMARY KEY (snapshot_date, plan_year)
);
-- 8. Распределение по % реализации в доме
CREATE TABLE IF NOT EXISTS domrf_sold_out_by_progress (
snapshot_date DATE NOT NULL,
progress_bucket TEXT NOT NULL, -- 'not_open' | '0-20' | '21-40' | '41-60' | '61-80' | '80+'
total_th_sqm NUMERIC,
pct_of_total NUMERIC,
sold_pct_within NUMERIC,
unsold_pct_within NUMERIC,
PRIMARY KEY (snapshot_date, progress_bucket)
);
-- 9. Ставки ипотеки топ-20 банков (mortgage_rates)
CREATE TABLE IF NOT EXISTS domrf_mortgage_rates (
snapshot_date DATE NOT NULL,
bank_name TEXT NOT NULL,
primary_rate NUMERIC, -- %, NULL если 'не предоставляет'
secondary_rate NUMERIC,
refinance_rate NUMERIC,
note TEXT, -- 'Максимальный срок 19 лет', 'ПВ от 50%' etc.
PRIMARY KEY (snapshot_date, bank_name)
);
CREATE INDEX IF NOT EXISTS idx_domrf_developers_full_share ON domrf_developers_full (market_share_pct DESC);
CREATE INDEX IF NOT EXISTS idx_domrf_guaranty_level ON domrf_guaranty_regions (territory_level);
CREATE INDEX IF NOT EXISTS idx_domrf_housing_summary_terr ON domrf_housing_summary (territory_name, mechanism);