{
 "nodes": [
  {
   "id": "topic:housing-regulation",
   "kind": "topic",
   "label": "부동산 거래 규제"
  },
  {
   "id": "law:부동산 거래신고 등에 관한 법률",
   "kind": "policy",
   "label": "부동산 거래신고 등에 관한 법률"
  },
  {
   "id": "law:주택법",
   "kind": "policy",
   "label": "주택법"
  },
  {
   "id": "law:소득세법",
   "kind": "policy",
   "label": "소득세법"
  },
  {
   "id": "law:종합부동산세법",
   "kind": "policy",
   "label": "종합부동산세법"
  },
  {
   "id": "topic:local-currency",
   "kind": "topic",
   "label": "지역화폐 (지역사랑상품권)"
  },
  {
   "id": "law:지역사랑상품권 이용 활성화에 관한 법률",
   "kind": "policy",
   "label": "지역사랑상품권 이용 활성화에 관한 법률"
  },
  {
   "id": "topic:traffic-safety",
   "kind": "topic",
   "label": "교통안전"
  },
  {
   "id": "law:도로교통법",
   "kind": "policy",
   "label": "도로교통법"
  },
  {
   "id": "topic:air-quality",
   "kind": "topic",
   "label": "대기질"
  },
  {
   "id": "law:미세먼지 저감 및 관리에 관한 특별법",
   "kind": "policy",
   "label": "미세먼지 저감 및 관리에 관한 특별법"
  },
  {
   "id": "topic:retail-hours",
   "kind": "topic",
   "label": "대형마트 의무휴업"
  },
  {
   "id": "law:유통산업발전법",
   "kind": "policy",
   "label": "유통산업발전법"
  },
  {
   "id": "topic:birth-marriage",
   "kind": "topic",
   "label": "출산·혼인 지원"
  },
  {
   "id": "law:인구전략기본법",
   "kind": "policy",
   "label": "인구전략기본법"
  },
  {
   "id": "law:저출산ㆍ고령사회기본법",
   "kind": "policy",
   "label": "저출산ㆍ고령사회기본법"
  },
  {
   "id": "topic:consumer-support",
   "kind": "topic",
   "label": "소비 지원금·쿠폰"
  },
  {
   "id": "topic:public-transit",
   "kind": "topic",
   "label": "대중교통 요금 지원"
  },
  {
   "id": "law:대중교통의 육성 및 이용촉진에 관한 법률",
   "kind": "policy",
   "label": "대중교통의 육성 및 이용촉진에 관한 법률"
  },
  {
   "id": "issue:seoul-ltp-1015-2025",
   "kind": "issue",
   "label": "10·15 부동산 대책 — 서울 전역·경기 12곳 토지거래허가구역 지정",
   "date": "2025-10-20"
  },
  {
   "id": "issue:seoul-ltp-gangnam-2025",
   "kind": "issue",
   "label": "강남3구·용산 아파트 토지거래허가구역 지정 (2025.3)",
   "date": "2025-03-24"
  },
  {
   "id": "issue:mortgage-cap-627-2025",
   "kind": "issue",
   "label": "6·27 가계부채 관리 강화 방안 — 수도권·규제지역 주담대 6억 원 한도",
   "date": "2025-06-28"
  },
  {
   "id": "issue:consumption-coupon-2025",
   "kind": "issue",
   "label": "민생회복 소비쿠폰 (2025)",
   "date": "2025-07-21"
  },
  {
   "id": "issue:high-oil-support-2026",
   "kind": "issue",
   "label": "고유가 피해지원금 (2026)",
   "date": "2026-04-27"
  },
  {
   "id": "issue:modu-card-2026",
   "kind": "issue",
   "label": "K-패스 개편 '모두의 카드' (기준금액 초과분 전액 환급)",
   "date": "2026-01"
  },
  {
   "id": "issue:climate-card-expansion-2024",
   "kind": "issue",
   "label": "서울 기후동행카드 경기 지역 단계적 편입 (2024.3 ~ 2025.8)",
   "date": "2024-11-30"
  },
  {
   "id": "dataset:15126468",
   "kind": "dataset",
   "label": "국토교통부_아파트 매매 실거래가 상세 자료",
   "url": "https://www.data.go.kr/data/15126468/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15134761",
   "kind": "dataset",
   "label": "한국부동산원_부동산통계 조회 서비스",
   "url": "https://www.data.go.kr/data/15134761/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15044283",
   "kind": "dataset",
   "label": "한국부동산원_공동주택 실거래가격지수_아파트_월별 지역별 매매",
   "url": "https://www.data.go.kr/data/15044283/fileData.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:OA-21275",
   "kind": "dataset",
   "label": "서울시 부동산 실거래가 정보",
   "url": "https://data.seoul.go.kr/dataList/OA-21275/S/1/datasetView.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:3076115",
   "kind": "dataset",
   "label": "울산광역시_토지거래허가구역 지정현황",
   "url": "https://www.data.go.kr/data/3076115/fileData.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15125217",
   "kind": "dataset",
   "label": "한국조폐공사_지역사랑상품권_지자체별_판매정책정보",
   "url": "https://www.data.go.kr/data/15125217/openapi.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15108292",
   "kind": "dataset",
   "label": "한국조폐공사_지역사랑상품권_결제정보",
   "url": "https://www.data.go.kr/data/15108292/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15108296",
   "kind": "dataset",
   "label": "한국조폐공사_지역사랑상품권_운영정보",
   "url": "https://www.data.go.kr/data/15108296/openapi.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15107284",
   "kind": "dataset",
   "label": "행정안전부_통계연보_지역사랑상품권",
   "url": "https://www.data.go.kr/data/15107284/openapi.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15085746",
   "kind": "dataset",
   "label": "행정안전부_지역사랑상품권 월별 판매 현황",
   "url": "https://www.data.go.kr/data/15085746/fileData.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15083033",
   "kind": "dataset",
   "label": "소상공인시장진흥공단_상가(상권)정보",
   "url": "https://www.data.go.kr/data/15083033/fileData.do",
   "roles": [
    "outcome",
    "covariate"
   ]
  },
  {
   "id": "dataset:15070297",
   "kind": "dataset",
   "label": "한국도로교통공단_시도 시군구별 교통사고 통계",
   "url": "https://www.data.go.kr/data/15070297/fileData.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15056770",
   "kind": "dataset",
   "label": "한국도로교통공단_지자체별 대상 교통사고 통계",
   "url": "https://www.data.go.kr/data/15056770/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15058311",
   "kind": "dataset",
   "label": "한국도로교통공단_어린이보호구역내 어린이 교통사고 다발지역",
   "url": "https://www.data.go.kr/data/15058311/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15012891",
   "kind": "dataset",
   "label": "전국어린이보호구역표준데이터",
   "url": "https://www.data.go.kr/data/15012891/standard.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15028200",
   "kind": "dataset",
   "label": "전국무인교통단속카메라표준데이터",
   "url": "https://www.data.go.kr/data/15028200/standard.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15094185",
   "kind": "dataset",
   "label": "한국도로교통공단_음주운전 교통사고 일별 시도별 통계",
   "url": "https://www.data.go.kr/data/15094185/fileData.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15073861",
   "kind": "dataset",
   "label": "한국환경공단_에어코리아_대기오염정보",
   "url": "https://www.data.go.kr/data/15073861/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:OA-2218",
   "kind": "dataset",
   "label": "서울시 일별 평균 대기오염도 정보",
   "url": "https://data.seoul.go.kr/dataList/OA-2218/S/1/datasetView.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15156644",
   "kind": "dataset",
   "label": "한국환경공단_노후차 운행제한 정보 조회 서비스",
   "url": "https://www.data.go.kr/data/15156644/openapi.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15122707",
   "kind": "dataset",
   "label": "한국환경공단_노후차 운행제한 단속정보",
   "url": "https://www.data.go.kr/data/15122707/fileData.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15142381",
   "kind": "dataset",
   "label": "한국전력거래소_계절관리제 석탄발전 감축실적",
   "url": "https://www.data.go.kr/data/15142381/fileData.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15059093",
   "kind": "dataset",
   "label": "기상청_지상(종관, ASOS) 일자료 조회서비스",
   "url": "https://www.data.go.kr/data/15059093/openapi.do",
   "roles": [
    "covariate"
   ]
  },
  {
   "id": "dataset:15154948",
   "kind": "dataset",
   "label": "행정안전부_생활_대규모점포 조회서비스",
   "url": "https://www.data.go.kr/data/15154948/openapi.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15057575",
   "kind": "dataset",
   "label": "법제처_자치법규 목록 조회",
   "url": "https://www.data.go.kr/data/15057575/openapi.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15061360",
   "kind": "dataset",
   "label": "산업통상부_주요 유통업체 전년동월대비 매출증가율 추이",
   "url": "https://www.data.go.kr/data/15061360/fileData.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15058527",
   "kind": "dataset",
   "label": "경기도_시군별 출산장려 및 양육비 지원현황",
   "url": "https://www.data.go.kr/data/15058527/openapi.do",
   "roles": [
    "treatment"
   ]
  },
  {
   "id": "dataset:15108075",
   "kind": "dataset",
   "label": "행정안전부_행정동별(통반단위) 성별 출생등록자수",
   "url": "https://www.data.go.kr/data/15108075/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15108072",
   "kind": "dataset",
   "label": "행정안전부_행정동별(통반단위) 성/연령별 주민등록 인구수",
   "url": "https://www.data.go.kr/data/15108072/openapi.do",
   "roles": [
    "covariate"
   ]
  },
  {
   "id": "dataset:DT_1B8000G",
   "kind": "dataset",
   "label": "월.분기.연간 인구동향(출생,사망,혼인,이혼)",
   "url": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1B8000G",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:DT_1B81A28",
   "kind": "dataset",
   "label": "시군구/ 모의 평균 출산연령, 모의 연령별(5세간격) 출생",
   "url": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1B81A28",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:DT_1B040A3",
   "kind": "dataset",
   "label": "행정구역(시군구)별, 성별 인구수",
   "url": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1B040A3",
   "roles": [
    "covariate"
   ]
  },
  {
   "id": "dataset:15142080",
   "kind": "dataset",
   "label": "국토교통부_대중교통 이용인원수",
   "url": "https://www.data.go.kr/data/15142080/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15142075",
   "kind": "dataset",
   "label": "국토교통부_대중교통 수단간분담률",
   "url": "https://www.data.go.kr/data/15142075/openapi.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:OA-12914",
   "kind": "dataset",
   "label": "서울시 지하철호선별 역별 승하차 인원 정보",
   "url": "https://data.seoul.go.kr/dataList/OA-12914/S/1/datasetView.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:OA-12252",
   "kind": "dataset",
   "label": "서울시 지하철 호선별 역별 시간대별 승하차 인원 정보",
   "url": "https://data.seoul.go.kr/dataList/OA-12252/S/1/datasetView.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:OA-12912",
   "kind": "dataset",
   "label": "서울시 버스노선별 정류장별 승하차 인원 정보",
   "url": "https://data.seoul.go.kr/dataList/OA-12912/S/1/datasetView.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:OA-12913",
   "kind": "dataset",
   "label": "서울시 버스노선별 정류장별 시간대별 승하차 인원 정보",
   "url": "https://data.seoul.go.kr/dataList/OA-12913/S/1/datasetView.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:OA-15182",
   "kind": "dataset",
   "label": "서울시 공공자전거(따릉이) 대여이력 정보",
   "url": "https://data.seoul.go.kr/dataList/OA-15182/F/1/datasetView.do",
   "roles": [
    "outcome"
   ]
  },
  {
   "id": "dataset:15144886",
   "kind": "dataset",
   "label": "경기도_정류소별 승하차 인원 집계",
   "url": "https://www.data.go.kr/biz/dcat/metadata/15144886.do",
   "roles": [
    "outcome",
    "covariate"
   ]
  },
  {
   "id": "case:t3-land-permit-2025",
   "kind": "case",
   "label": "t3-land-permit-2025"
  },
  {
   "id": "climate-card-expansion:pilot",
   "kind": "policy",
   "label": "기후동행카드 시범운영 시작 (서울)",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2024-01-27",
   "source": "https://mediahub.seoul.go.kr/archives/2009830",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:gimpo",
   "kind": "policy",
   "label": "김포골드라인 적용 (첫 경기 편입)",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2024-03-30",
   "source": "https://mediahub.seoul.go.kr/archives/2015277",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:jinjeop",
   "kind": "policy",
   "label": "진접선(남양주) 적용 · 별내선 개통",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2024-08-10",
   "source": "https://mediahub.seoul.go.kr/archives/2015277",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:goyang_gwacheon",
   "kind": "policy",
   "label": "고양·과천 지하철 적용",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2024-11-30",
   "source": "https://news.seoul.go.kr/traffic/archives/513130",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:seongnam",
   "kind": "policy",
   "label": "성남 수인분당선·경강선 적용",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2025-05-03",
   "source": "https://www.dailian.co.kr/news/view/1493107/",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:hanam",
   "kind": "policy",
   "label": "하남 5호선 4개 역 승차 허용 (하차만 → 승하차)",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2025-08-09",
   "source": "https://mediahub.seoul.go.kr/archives/2015277",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:kpass",
   "kind": "policy",
   "label": "K-패스·The 경기패스 시행 (동시 정책)",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2024-05-01",
   "source": "https://magazine.hankyung.com/business/article/202405018911b",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:gtx_a",
   "kind": "policy",
   "label": "GTX-A 운정중앙~서울역 개통 (교란 사건)",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2024-12-28",
   "source": "https://www.etoday.co.kr/news/view/2432820",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:fare_hike",
   "kind": "policy",
   "label": "지하철 기본요금 1,400 → 1,550원 (동시 정책)",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": "2025-06-28",
   "source": "https://www.etoday.co.kr/news/view/2480312",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:holidays_kr",
   "kind": "dataset",
   "label": "한국 공휴일 달력 (holidays 패키지)",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": null,
   "source": "https://pypi.org/project/holidays/",
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:fare_type",
   "kind": "dataset",
   "label": "권종별(기후동행카드·K-패스·일반) 역 승하차",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": null,
   "source": null,
   "status": "missing",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:gimpo_gold",
   "kind": "dataset",
   "label": "김포골드라인 역별 일 승하차",
   "lineage": "climate-card-expansion",
   "how": "",
   "date": null,
   "source": null,
   "status": "missing",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:cohort_table",
   "kind": "transform",
   "label": "역 처치표 (노선·역 → 시군 · 첫 처치일)",
   "lineage": "climate-card-expansion",
   "how": "OA-12914의 노선·역명을 소재 시군과 묶고, 편입일을 첫 처치일로 적는다(하남은 승차 허용일). 대조는 분석 창(~2025-12)에 편입되지 않은 경기 출퇴근 노선 역. 군포·의정부·인천·구리·남양주·부천은 적용일 미확인이라 제외, 양평·가평·여주(나들이 노선)도 대조에서 제외. 성남 8호선은 시범운영부터라 제외\n",
   "date": null,
   "source": null,
   "status": "done",
   "artifact": "catalog/lineage/data/climate-card-stations.csv"
  },
  {
   "id": "climate-card-expansion:weekday_panel",
   "kind": "transform",
   "label": "역 × 주 평일 패널",
   "lineage": "climate-card-expansion",
   "how": "월~금 중 공휴일을 빼고 역 × 주(월요일 시작)로 하루 평균 승차·하차를 낸다. 평일이 3일 미만인 주와 분석 창 전체에 관측되지 않는 역은 뺀다. 코호트마다 적용 전 26주 · 후 26주, 적용일(토)이 걸친 주는 전환 주로 제외. K-패스·요금 인상은 주 고정효과가 흡수하는 공통 충격으로 기록\n",
   "date": null,
   "source": null,
   "status": "done",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:hourly_panel",
   "kind": "transform",
   "label": "역 × 월 × 시간대 패널",
   "lineage": "climate-card-expansion",
   "how": "출퇴근(07~09시, 18~20시) 승차 비중을 역 × 월로 계산. 시간 단위 기능(time.freq, active_hours) 사용 — H10",
   "date": null,
   "source": null,
   "status": "planned",
   "artifact": null
  },
  {
   "id": "climate-card-expansion:log_weekday_boardings",
   "kind": "metric",
   "label": "평일 하루 평균 승차(로그)",
   "lineage": "climate-card-expansion",
   "how": "log(역 × 주 평일 하루 평균 승차). 주말·연휴 나들이 변동을 줄이려고 평일만 쓴다",
   "date": null,
   "source": null,
   "status": "done",
   "artifact": null
  },
  {
   "id": "case:t3-climate-card-seongnam",
   "kind": "case",
   "label": "t3-climate-card-seongnam"
  },
  {
   "id": "climate-card-expansion:commute_share",
   "kind": "metric",
   "label": "출퇴근 시간대 승차 비중",
   "lineage": "climate-card-expansion",
   "how": "(07~09시 + 18~20시 승차) ÷ 하루 승차, 역 × 월",
   "date": null,
   "source": null,
   "status": "planned",
   "artifact": null
  },
  {
   "id": "t3-land-permit-2025:designation",
   "kind": "policy",
   "label": "강남·서초·송파·용산 토지거래허가구역 전역 지정",
   "lineage": "t3-land-permit-2025",
   "how": "",
   "date": "2025-03-24",
   "source": "https://www.korea.kr/news/policyNewsView.do?newsId=148940714",
   "status": "done",
   "artifact": null
  },
  {
   "id": "t3-land-permit-2025:speculation_zone",
   "kind": "policy",
   "label": "투기과열지구 지정",
   "lineage": "t3-land-permit-2025",
   "how": "",
   "date": "2025-10-16",
   "source": null,
   "status": "done",
   "artifact": null
  },
  {
   "id": "t3-land-permit-2025:gu_month",
   "kind": "transform",
   "label": "자치구 × 계약월 집계",
   "lineage": "t3-land-permit-2025",
   "how": "법정동코드 앞 5자리로 자치구 매핑 → 계약년월별 건수·㎡당 가격 중위값. 해제 거래(cdealType=O) 제외, 지정 효력일이 월 중간인 2025-03은 전환월로 제외",
   "date": null,
   "source": null,
   "status": "done",
   "artifact": null
  },
  {
   "id": "t3-land-permit-2025:treat_table",
   "kind": "transform",
   "label": "처치표 (구 × 첫 처치 월)",
   "lineage": "t3-land-permit-2025",
   "how": "지정 4개 구 treated=1, 첫 처치 월 2025-04(month_idx 15). 2025-10 전역 지정 이후 기간은 제외",
   "date": null,
   "source": null,
   "status": "done",
   "artifact": null
  },
  {
   "id": "t3-land-permit-2025:log_trades",
   "kind": "metric",
   "label": "아파트 매매 거래건수(로그)",
   "lineage": "t3-land-permit-2025",
   "how": "log(1 + 자치구·계약월별 매매 건수)",
   "date": null,
   "source": null,
   "status": "done",
   "artifact": null
  },
  {
   "id": "t3-land-permit-2025:log_price_m2",
   "kind": "metric",
   "label": "㎡당 거래가격 중위값(로그)",
   "lineage": "t3-land-permit-2025",
   "how": "log(거래금액 ÷ 전용면적의 자치구·월별 중위값)",
   "date": null,
   "source": null,
   "status": "done",
   "artifact": null
  }
 ],
 "edges": [
  {
   "from": "law:부동산 거래신고 등에 관한 법률",
   "to": "topic:housing-regulation",
   "rel": "근거"
  },
  {
   "from": "law:주택법",
   "to": "topic:housing-regulation",
   "rel": "근거"
  },
  {
   "from": "law:소득세법",
   "to": "topic:housing-regulation",
   "rel": "근거"
  },
  {
   "from": "law:종합부동산세법",
   "to": "topic:housing-regulation",
   "rel": "근거"
  },
  {
   "from": "law:지역사랑상품권 이용 활성화에 관한 법률",
   "to": "topic:local-currency",
   "rel": "근거"
  },
  {
   "from": "law:도로교통법",
   "to": "topic:traffic-safety",
   "rel": "근거"
  },
  {
   "from": "law:미세먼지 저감 및 관리에 관한 특별법",
   "to": "topic:air-quality",
   "rel": "근거"
  },
  {
   "from": "law:유통산업발전법",
   "to": "topic:retail-hours",
   "rel": "근거"
  },
  {
   "from": "law:인구전략기본법",
   "to": "topic:birth-marriage",
   "rel": "근거"
  },
  {
   "from": "law:저출산ㆍ고령사회기본법",
   "to": "topic:birth-marriage",
   "rel": "근거"
  },
  {
   "from": "law:대중교통의 육성 및 이용촉진에 관한 법률",
   "to": "topic:public-transit",
   "rel": "근거"
  },
  {
   "from": "issue:seoul-ltp-1015-2025",
   "to": "topic:housing-regulation",
   "rel": "속함"
  },
  {
   "from": "dataset:15126468",
   "to": "issue:seoul-ltp-1015-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:15134761",
   "to": "issue:seoul-ltp-1015-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:OA-21275",
   "to": "issue:seoul-ltp-1015-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:DT_1B040A3",
   "to": "issue:seoul-ltp-1015-2025",
   "rel": "씀"
  },
  {
   "from": "issue:seoul-ltp-gangnam-2025",
   "to": "topic:housing-regulation",
   "rel": "속함"
  },
  {
   "from": "dataset:15126468",
   "to": "issue:seoul-ltp-gangnam-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:15134761",
   "to": "issue:seoul-ltp-gangnam-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:OA-21275",
   "to": "issue:seoul-ltp-gangnam-2025",
   "rel": "씀"
  },
  {
   "from": "issue:mortgage-cap-627-2025",
   "to": "topic:housing-regulation",
   "rel": "속함"
  },
  {
   "from": "dataset:15126468",
   "to": "issue:mortgage-cap-627-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:15134761",
   "to": "issue:mortgage-cap-627-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:DT_1B040A3",
   "to": "issue:mortgage-cap-627-2025",
   "rel": "씀"
  },
  {
   "from": "issue:consumption-coupon-2025",
   "to": "topic:consumer-support",
   "rel": "속함"
  },
  {
   "from": "dataset:15108292",
   "to": "issue:consumption-coupon-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:15108296",
   "to": "issue:consumption-coupon-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:15125217",
   "to": "issue:consumption-coupon-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:15083033",
   "to": "issue:consumption-coupon-2025",
   "rel": "씀"
  },
  {
   "from": "dataset:DT_1B040A3",
   "to": "issue:consumption-coupon-2025",
   "rel": "씀"
  },
  {
   "from": "issue:high-oil-support-2026",
   "to": "topic:consumer-support",
   "rel": "속함"
  },
  {
   "from": "dataset:15108292",
   "to": "issue:high-oil-support-2026",
   "rel": "씀"
  },
  {
   "from": "dataset:15125217",
   "to": "issue:high-oil-support-2026",
   "rel": "씀"
  },
  {
   "from": "dataset:15083033",
   "to": "issue:high-oil-support-2026",
   "rel": "씀"
  },
  {
   "from": "dataset:DT_1B040A3",
   "to": "issue:high-oil-support-2026",
   "rel": "씀"
  },
  {
   "from": "issue:modu-card-2026",
   "to": "topic:public-transit",
   "rel": "속함"
  },
  {
   "from": "dataset:15142080",
   "to": "issue:modu-card-2026",
   "rel": "씀"
  },
  {
   "from": "dataset:15142075",
   "to": "issue:modu-card-2026",
   "rel": "씀"
  },
  {
   "from": "dataset:OA-12914",
   "to": "issue:modu-card-2026",
   "rel": "씀"
  },
  {
   "from": "issue:climate-card-expansion-2024",
   "to": "topic:public-transit",
   "rel": "속함"
  },
  {
   "from": "dataset:OA-12914",
   "to": "issue:climate-card-expansion-2024",
   "rel": "씀"
  },
  {
   "from": "dataset:OA-12252",
   "to": "issue:climate-card-expansion-2024",
   "rel": "씀"
  },
  {
   "from": "dataset:15144886",
   "to": "issue:climate-card-expansion-2024",
   "rel": "씀"
  },
  {
   "from": "dataset:OA-12912",
   "to": "issue:climate-card-expansion-2024",
   "rel": "씀"
  },
  {
   "from": "dataset:15126468",
   "to": "topic:housing-regulation",
   "rel": "outcome"
  },
  {
   "from": "dataset:15134761",
   "to": "topic:housing-regulation",
   "rel": "outcome"
  },
  {
   "from": "dataset:15044283",
   "to": "topic:housing-regulation",
   "rel": "outcome"
  },
  {
   "from": "dataset:OA-21275",
   "to": "topic:housing-regulation",
   "rel": "outcome"
  },
  {
   "from": "dataset:3076115",
   "to": "topic:housing-regulation",
   "rel": "treatment"
  },
  {
   "from": "dataset:15125217",
   "to": "topic:local-currency",
   "rel": "treatment"
  },
  {
   "from": "dataset:15125217",
   "to": "topic:consumer-support",
   "rel": "treatment"
  },
  {
   "from": "dataset:15108292",
   "to": "topic:local-currency",
   "rel": "outcome"
  },
  {
   "from": "dataset:15108292",
   "to": "topic:consumer-support",
   "rel": "outcome"
  },
  {
   "from": "dataset:15108296",
   "to": "topic:local-currency",
   "rel": "treatment"
  },
  {
   "from": "dataset:15108296",
   "to": "topic:consumer-support",
   "rel": "treatment"
  },
  {
   "from": "dataset:15107284",
   "to": "topic:local-currency",
   "rel": "treatment"
  },
  {
   "from": "dataset:15085746",
   "to": "topic:local-currency",
   "rel": "treatment"
  },
  {
   "from": "dataset:15083033",
   "to": "topic:local-currency",
   "rel": "outcome/covariate"
  },
  {
   "from": "dataset:15083033",
   "to": "topic:retail-hours",
   "rel": "outcome/covariate"
  },
  {
   "from": "dataset:15083033",
   "to": "topic:consumer-support",
   "rel": "outcome/covariate"
  },
  {
   "from": "dataset:15070297",
   "to": "topic:traffic-safety",
   "rel": "outcome"
  },
  {
   "from": "dataset:15056770",
   "to": "topic:traffic-safety",
   "rel": "outcome"
  },
  {
   "from": "dataset:15058311",
   "to": "topic:traffic-safety",
   "rel": "outcome"
  },
  {
   "from": "dataset:15012891",
   "to": "topic:traffic-safety",
   "rel": "treatment"
  },
  {
   "from": "dataset:15028200",
   "to": "topic:traffic-safety",
   "rel": "treatment"
  },
  {
   "from": "dataset:15094185",
   "to": "topic:traffic-safety",
   "rel": "outcome"
  },
  {
   "from": "dataset:15073861",
   "to": "topic:air-quality",
   "rel": "outcome"
  },
  {
   "from": "dataset:OA-2218",
   "to": "topic:air-quality",
   "rel": "outcome"
  },
  {
   "from": "dataset:15156644",
   "to": "topic:air-quality",
   "rel": "treatment"
  },
  {
   "from": "dataset:15122707",
   "to": "topic:air-quality",
   "rel": "treatment"
  },
  {
   "from": "dataset:15142381",
   "to": "topic:air-quality",
   "rel": "treatment"
  },
  {
   "from": "dataset:15059093",
   "to": "topic:air-quality",
   "rel": "covariate"
  },
  {
   "from": "dataset:15059093",
   "to": "topic:traffic-safety",
   "rel": "covariate"
  },
  {
   "from": "dataset:15154948",
   "to": "topic:retail-hours",
   "rel": "treatment"
  },
  {
   "from": "dataset:15057575",
   "to": "topic:retail-hours",
   "rel": "treatment"
  },
  {
   "from": "dataset:15057575",
   "to": "topic:birth-marriage",
   "rel": "treatment"
  },
  {
   "from": "dataset:15057575",
   "to": "topic:local-currency",
   "rel": "treatment"
  },
  {
   "from": "dataset:15061360",
   "to": "topic:retail-hours",
   "rel": "outcome"
  },
  {
   "from": "dataset:15058527",
   "to": "topic:birth-marriage",
   "rel": "treatment"
  },
  {
   "from": "dataset:15108075",
   "to": "topic:birth-marriage",
   "rel": "outcome"
  },
  {
   "from": "dataset:15108072",
   "to": "topic:birth-marriage",
   "rel": "covariate"
  },
  {
   "from": "dataset:15108072",
   "to": "topic:local-currency",
   "rel": "covariate"
  },
  {
   "from": "dataset:15108072",
   "to": "topic:traffic-safety",
   "rel": "covariate"
  },
  {
   "from": "dataset:DT_1B8000G",
   "to": "topic:birth-marriage",
   "rel": "outcome"
  },
  {
   "from": "dataset:DT_1B81A28",
   "to": "topic:birth-marriage",
   "rel": "outcome"
  },
  {
   "from": "dataset:DT_1B040A3",
   "to": "topic:birth-marriage",
   "rel": "covariate"
  },
  {
   "from": "dataset:DT_1B040A3",
   "to": "topic:housing-regulation",
   "rel": "covariate"
  },
  {
   "from": "dataset:DT_1B040A3",
   "to": "topic:local-currency",
   "rel": "covariate"
  },
  {
   "from": "dataset:15142080",
   "to": "topic:public-transit",
   "rel": "outcome"
  },
  {
   "from": "dataset:15142075",
   "to": "topic:public-transit",
   "rel": "outcome"
  },
  {
   "from": "dataset:OA-12914",
   "to": "topic:public-transit",
   "rel": "outcome"
  },
  {
   "from": "dataset:OA-12252",
   "to": "topic:public-transit",
   "rel": "outcome"
  },
  {
   "from": "dataset:OA-12912",
   "to": "topic:public-transit",
   "rel": "outcome"
  },
  {
   "from": "dataset:OA-12913",
   "to": "topic:public-transit",
   "rel": "outcome"
  },
  {
   "from": "dataset:OA-15182",
   "to": "topic:public-transit",
   "rel": "outcome"
  },
  {
   "from": "dataset:15144886",
   "to": "topic:public-transit",
   "rel": "outcome/covariate"
  },
  {
   "from": "topic:housing-regulation",
   "to": "case:t3-land-permit-2025",
   "rel": "분석"
  },
  {
   "from": "issue:climate-card-expansion-2024",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:pilot",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:gimpo",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:jinjeop",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:goyang_gwacheon",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:seongnam",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:hanam",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:kpass",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:gtx_a",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:fare_hike",
   "to": "topic:public-transit",
   "rel": "근거",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "dataset:OA-12914",
   "to": "climate-card-expansion:cohort_table",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:goyang_gwacheon",
   "to": "climate-card-expansion:cohort_table",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:seongnam",
   "to": "climate-card-expansion:cohort_table",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:hanam",
   "to": "climate-card-expansion:cohort_table",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:pilot",
   "to": "climate-card-expansion:cohort_table",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "dataset:OA-12914",
   "to": "climate-card-expansion:weekday_panel",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:holidays_kr",
   "to": "climate-card-expansion:weekday_panel",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:cohort_table",
   "to": "climate-card-expansion:weekday_panel",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:kpass",
   "to": "climate-card-expansion:weekday_panel",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:fare_hike",
   "to": "climate-card-expansion:weekday_panel",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "dataset:OA-12252",
   "to": "climate-card-expansion:hourly_panel",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:cohort_table",
   "to": "climate-card-expansion:hourly_panel",
   "rel": "가공",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:weekday_panel",
   "to": "climate-card-expansion:log_weekday_boardings",
   "rel": "계산",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:log_weekday_boardings",
   "to": "case:t3-climate-card-seongnam",
   "rel": "씀",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "climate-card-expansion:hourly_panel",
   "to": "climate-card-expansion:commute_share",
   "rel": "계산",
   "lineage": "climate-card-expansion"
  },
  {
   "from": "issue:seoul-ltp-gangnam-2025",
   "to": "topic:housing-regulation",
   "rel": "근거",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:designation",
   "to": "topic:housing-regulation",
   "rel": "근거",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:speculation_zone",
   "to": "topic:housing-regulation",
   "rel": "근거",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "dataset:15126468",
   "to": "t3-land-permit-2025:gu_month",
   "rel": "가공",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:designation",
   "to": "t3-land-permit-2025:treat_table",
   "rel": "가공",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:speculation_zone",
   "to": "t3-land-permit-2025:treat_table",
   "rel": "가공",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:gu_month",
   "to": "t3-land-permit-2025:log_trades",
   "rel": "계산",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:treat_table",
   "to": "t3-land-permit-2025:log_trades",
   "rel": "계산",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:log_trades",
   "to": "case:t3-land-permit-2025",
   "rel": "씀",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:gu_month",
   "to": "t3-land-permit-2025:log_price_m2",
   "rel": "계산",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:treat_table",
   "to": "t3-land-permit-2025:log_price_m2",
   "rel": "계산",
   "lineage": "t3-land-permit-2025"
  },
  {
   "from": "t3-land-permit-2025:log_price_m2",
   "to": "case:t3-land-permit-2025",
   "rel": "씀",
   "lineage": "t3-land-permit-2025"
  }
 ],
 "lineages": [
  {
   "id": "climate-card-expansion",
   "owner": "jsshin2022",
   "topic": "public-transit",
   "title": "기후동행카드 경기 편입(2024.3 ~ 2025.8) → 편입 지역 역 평일 승차",
   "question": "기후동행카드가 적용된 경기 지역 역의 평일 승차가, 아직 적용되지 않은 같은 노선 경기 역보다 늘었나? (적용 역 효과, ITT)",
   "steps": [
    {
     "id": "issue",
     "kind": "issue",
     "label": "",
     "ref": "climate-card-expansion-2024",
     "source": null,
     "url": null,
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "pilot",
     "kind": "policy",
     "label": "기후동행카드 시범운영 시작 (서울)",
     "ref": null,
     "source": "https://mediahub.seoul.go.kr/archives/2009830",
     "url": null,
     "date": "2024-01-27",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "성남 8호선 구간은 이날부터 적용 → 성남 처치·대조에서 모두 제외"
    },
    {
     "id": "gimpo",
     "kind": "policy",
     "label": "김포골드라인 적용 (첫 경기 편입)",
     "ref": null,
     "source": "https://mediahub.seoul.go.kr/archives/2015277",
     "url": null,
     "date": "2024-03-30",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "김포골드라인 역은 서울 승하차 자료(OA-12914)에 없음 → 아래 빈칸(gimpo_gold) 참고"
    },
    {
     "id": "jinjeop",
     "kind": "policy",
     "label": "진접선(남양주) 적용 · 별내선 개통",
     "ref": null,
     "source": "https://mediahub.seoul.go.kr/archives/2015277",
     "url": null,
     "date": "2024-08-10",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "별내선은 같은 날 신규 개통이라 사전 기간이 없어 제외. 진접선 역은 OA-12914 수록 여부 미확인"
    },
    {
     "id": "goyang_gwacheon",
     "kind": "policy",
     "label": "고양·과천 지하철 적용",
     "ref": null,
     "source": "https://news.seoul.go.kr/traffic/archives/513130",
     "url": null,
     "date": "2024-11-30",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "seongnam",
     "kind": "policy",
     "label": "성남 수인분당선·경강선 적용",
     "ref": null,
     "source": "https://www.dailian.co.kr/news/view/1493107/",
     "url": null,
     "date": "2025-05-03",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "hanam",
     "kind": "policy",
     "label": "하남 5호선 4개 역 승차 허용 (하차만 → 승하차)",
     "ref": null,
     "source": "https://mediahub.seoul.go.kr/archives/2015277",
     "url": null,
     "date": "2025-08-09",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "kpass",
     "kind": "policy",
     "label": "K-패스·The 경기패스 시행 (동시 정책)",
     "ref": null,
     "source": "https://magazine.hankyung.com/business/article/202405018911b",
     "url": null,
     "date": "2024-05-01",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "대조 지역에도 적용 → 처치가 아니라 공통 충격. 주 고정효과가 흡수"
    },
    {
     "id": "gtx_a",
     "kind": "policy",
     "label": "GTX-A 운정중앙~서울역 개통 (교란 사건)",
     "ref": null,
     "source": "https://www.etoday.co.kr/news/view/2432820",
     "url": null,
     "date": "2024-12-28",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "고양 편입 4주 뒤. 대곡(환승역) 평일 승차 +131%, 대화 -25%, 대조 운정 -23% → 고양 편입 효과는 판단 불가"
    },
    {
     "id": "fare_hike",
     "kind": "policy",
     "label": "지하철 기본요금 1,400 → 1,550원 (동시 정책)",
     "ref": null,
     "source": "https://www.etoday.co.kr/news/view/2480312",
     "url": null,
     "date": "2025-06-28",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "카드 가격은 동결 → 적용 역이 요금 충격을 덜 받는 방향으로 편향 가능. 성남 처치 7주 뒤"
    },
    {
     "id": "subway_daily",
     "kind": "dataset",
     "label": "",
     "ref": "OA-12914",
     "source": null,
     "url": null,
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "역 × 일 승하차. 경기 코레일 구간 역(경부·분당·경의·과천·경원·안산·수인선) 포함 확인(2026-10-18). 수집기: core/adapters/seoul_subway.py (키 불필요)"
    },
    {
     "id": "holidays_kr",
     "kind": "dataset",
     "label": "한국 공휴일 달력 (holidays 패키지)",
     "ref": null,
     "source": null,
     "url": "https://pypi.org/project/holidays/",
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "평일 판정용. 대체공휴일 포함. pip install -e '.[analysis]'"
    },
    {
     "id": "subway_hourly",
     "kind": "dataset",
     "label": "",
     "ref": "OA-12252",
     "source": null,
     "url": null,
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "planned",
     "artifact": null,
     "note": "역 × 월 × 시간대. 서울 관할 역만이라 경기 편입 역은 일부만 — H10(출퇴근 시간대 비중)에 사용 예정"
    },
    {
     "id": "fare_type",
     "kind": "dataset",
     "label": "권종별(기후동행카드·K-패스·일반) 역 승하차",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "missing",
     "artifact": null,
     "note": "공개 자료에 없음 — 서울시·티머니 협조 자료 필요. 없으면 '카드 이용자' 효과(H7)를 볼 수 없고 적용 역 효과(ITT)만 가능"
    },
    {
     "id": "gimpo_gold",
     "kind": "dataset",
     "label": "김포골드라인 역별 일 승하차",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "missing",
     "artifact": null,
     "note": "OA-12914에 없음. 김포시·김포골드라인 운영사 자료를 찾으면 첫 경기 편입(2024-03-30) 코호트를 추가할 수 있음"
    },
    {
     "id": "cohort_table",
     "kind": "transform",
     "label": "역 처치표 (노선·역 → 시군 · 첫 처치일)",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "subway_daily",
      "goyang_gwacheon",
      "seongnam",
      "hanam",
      "pilot"
     ],
     "how": "OA-12914의 노선·역명을 소재 시군과 묶고, 편입일을 첫 처치일로 적는다(하남은 승차 허용일). 대조는 분석 창(~2025-12)에 편입되지 않은 경기 출퇴근 노선 역. 군포·의정부·인천·구리·남양주·부천은 적용일 미확인이라 제외, 양평·가평·여주(나들이 노선)도 대조에서 제외. 성남 8호선은 시범운영부터라 제외\n",
     "keys": [
      "line",
      "station"
     ],
     "used_by": [],
     "status": "done",
     "artifact": "catalog/lineage/data/climate-card-stations.csv",
     "note": ""
    },
    {
     "id": "weekday_panel",
     "kind": "transform",
     "label": "역 × 주 평일 패널",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "subway_daily",
      "holidays_kr",
      "cohort_table",
      "kpass",
      "fare_hike"
     ],
     "how": "월~금 중 공휴일을 빼고 역 × 주(월요일 시작)로 하루 평균 승차·하차를 낸다. 평일이 3일 미만인 주와 분석 창 전체에 관측되지 않는 역은 뺀다. 코호트마다 적용 전 26주 · 후 26주, 적용일(토)이 걸친 주는 전환 주로 제외. K-패스·요금 인상은 주 고정효과가 흡수하는 공통 충격으로 기록\n",
     "keys": [
      "line",
      "station",
      "week"
     ],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "hourly_panel",
     "kind": "transform",
     "label": "역 × 월 × 시간대 패널",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "subway_hourly",
      "cohort_table"
     ],
     "how": "출퇴근(07~09시, 18~20시) 승차 비중을 역 × 월로 계산. 시간 단위 기능(time.freq, active_hours) 사용 — H10",
     "keys": [
      "line",
      "station",
      "month",
      "hour"
     ],
     "used_by": [],
     "status": "planned",
     "artifact": null,
     "note": ""
    },
    {
     "id": "log_weekday_boardings",
     "kind": "metric",
     "label": "평일 하루 평균 승차(로그)",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "weekday_panel"
     ],
     "how": "log(역 × 주 평일 하루 평균 승차). 주말·연휴 나들이 변동을 줄이려고 평일만 쓴다",
     "keys": [],
     "used_by": [
      "t3-climate-card-seongnam"
     ],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "commute_share",
     "kind": "metric",
     "label": "출퇴근 시간대 승차 비중",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "hourly_panel"
     ],
     "how": "(07~09시 + 18~20시 승차) ÷ 하루 승차, 역 × 월",
     "keys": [],
     "used_by": [],
     "status": "planned",
     "artifact": null,
     "note": ""
    }
   ]
  },
  {
   "id": "t3-land-permit-2025",
   "owner": "jsshin2022",
   "topic": "housing-regulation",
   "title": "토허구역 확대 지정 → 강남 4구 아파트 거래량·가격",
   "question": "2025.3.24 강남·서초·송파·용산 전역 지정 뒤 이 4개 구의 아파트 거래가 나머지 21개 구와 비교해 달라졌나?",
   "steps": [
    {
     "id": "issue",
     "kind": "issue",
     "label": "",
     "ref": "seoul-ltp-gangnam-2025",
     "source": null,
     "url": null,
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "designation",
     "kind": "policy",
     "label": "강남·서초·송파·용산 토지거래허가구역 전역 지정",
     "ref": null,
     "source": "https://www.korea.kr/news/policyNewsView.do?newsId=148940714",
     "url": null,
     "date": "2025-03-24",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "서울시·국토부 공고라 법제처 DB에는 없음 → 정부 발표로 날짜 확인"
    },
    {
     "id": "speculation_zone",
     "kind": "policy",
     "label": "",
     "ref": "투기과열지구 지정",
     "source": null,
     "url": null,
     "date": "2025-10-16",
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "10·15 대책으로 서울 전역이 규제지역이 되어 대조군이 사라짐 → 분석 기간을 2025-09까지로 자른 이유"
    },
    {
     "id": "raw_trades",
     "kind": "dataset",
     "label": "",
     "ref": "15126468",
     "source": null,
     "url": null,
     "date": null,
     "inputs": [],
     "how": "",
     "keys": [],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": "아파트 매매 실거래 (계약일·법정동·거래금액·전용면적·해제여부)"
    },
    {
     "id": "gu_month",
     "kind": "transform",
     "label": "자치구 × 계약월 집계",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "raw_trades"
     ],
     "how": "법정동코드 앞 5자리로 자치구 매핑 → 계약년월별 건수·㎡당 가격 중위값. 해제 거래(cdealType=O) 제외, 지정 효력일이 월 중간인 2025-03은 전환월로 제외",
     "keys": [
      "gu_code",
      "month_idx"
     ],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "treat_table",
     "kind": "transform",
     "label": "처치표 (구 × 첫 처치 월)",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "designation",
      "speculation_zone"
     ],
     "how": "지정 4개 구 treated=1, 첫 처치 월 2025-04(month_idx 15). 2025-10 전역 지정 이후 기간은 제외",
     "keys": [
      "gu_code"
     ],
     "used_by": [],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "log_trades",
     "kind": "metric",
     "label": "아파트 매매 거래건수(로그)",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "gu_month",
      "treat_table"
     ],
     "how": "log(1 + 자치구·계약월별 매매 건수)",
     "keys": [],
     "used_by": [
      "t3-land-permit-2025"
     ],
     "status": "done",
     "artifact": null,
     "note": ""
    },
    {
     "id": "log_price_m2",
     "kind": "metric",
     "label": "㎡당 거래가격 중위값(로그)",
     "ref": null,
     "source": null,
     "url": null,
     "date": null,
     "inputs": [
      "gu_month",
      "treat_table"
     ],
     "how": "log(거래금액 ÷ 전용면적의 자치구·월별 중위값)",
     "keys": [],
     "used_by": [
      "t3-land-permit-2025"
     ],
     "status": "done",
     "artifact": null,
     "note": ""
    }
   ]
  }
 ]
}