- Open the public Cloudflare Pages demo
- Scope: credential-free, synthetic-data demo for civic operations review paths and evaluators.
Status: Snowflake Korea Hackathon 2026 submission repository; no placement or award outcome is claimed.
Snowflake Korea Hackathon 2026 - Tech Track 이사 직후 72시간 골든타임 — 홈서비스 수요를 예측하고 구별 집행 액션을 추천하는 Snowflake-native AI 에이전트
A district operations planner that converts forecasting into action cards, monitoring, and local decision support.
| Area | Details |
|---|---|
| Users | Home-service growth teams, marketplace planners, and field-operations leaders allocating post-move installation capacity. |
| System scope | Demand forecasting, action cards, Streamlit/Snowflake/Cortex framing, semantic views, and decision-agent patterns. |
| Operating boundary | Forecasts are decision support; public-sector use needs transparent assumptions, data lineage, and human oversight. |
| Evaluation path | Run the local app/tests and inspect forecast outputs, action cards, and monitoring views. |
- Start here: Read
JUDGE_FASTPATH.md, then run14_judge_fastpath.sqlin Snowsight to verify the live evidence chain. - Demo flow: In Streamlit, move through
Capture Plan -> Move-in Signals -> AI Playbook -> Ops / Trust. - Checks: Run
python3 scripts/validate_repository_surface.pyandpython3 scripts/validate_architecture_blueprint.pyfor repository-level checks.
- Service launch playbook maps the repository to its product scope, operating gates, operating boundaries, and risk controls.
- Architecture guide summarizes the system scope, first files to inspect, runtime commands, and known boundaries.
- Quality notes lists the local checks, CI surface, and release expectations for this repository.
- Enterprise readiness notes outlines security, data, operations, integration, and handoff expectations.
"다음 달 서초/영등포/중구 중 어디에 홈서비스 설치 인력을 먼저 배치하고, 어떤 강도로 집행해야 하는가?"
한국에서 연간 700만 건의 이사가 일어나고, 이사 직후 72시간이 홈서비스 수요의 골든타임입니다.
DistrictPilot AI는 이사 직후 골든타임을 예측하고 구별 집행 액션을 추천하는 100% Snowflake Native AI 에이전트입니다.
- Semantic View + Cortex Analyst -- 전입·이사/소비/관광 신호를 자연어에서 정확한 SQL로 변환
- ML FORECAST + Ablation -- 외생변수 효과를 정량 증명한 지역 수요 예측
- AI_COMPLETE Structured Output -- 추천 지역, 집행 강도, 리스크, 다음 액션을 JSON으로 반환
- Dynamic Tables + Tasks -- 운영 가능한 월간 집행 시스템을 증명 (1h lag, daily/weekly refresh)
외부 서비스 없이 Snowflake 안에서 데이터 수집부터 전입 신호 해석, 집행 추천, 운영 모니터링까지 완결됩니다.
- Snowsight에서
14_judge_fastpath.sql을 실행해 라이브 스택과 증거 체인을 확인합니다. - Streamlit 앱에서
Capture Plan -> Move-in Signals -> AI Playbook -> Ops / Trust순서로 클릭합니다. - 레포에서는
DOMAIN_POSITIONING.md,JUDGE_FASTPATH.md,DEMO_SCRIPT.md순서로 보면 됩니다.
Data Sources
Marketplace: SPH (유동인구/카드소비) + Richgo (부동산/인구이동)
Public: 공휴일 + 연령구조 + 관광수요 + 상권변화
|
v
DT_FEATURE_MART (Dynamic Table, 1h lag) -> FEATURE_MART_V2
3구 x 60개월, 50+ features
| |
v v
DISTRICTPILOT_FORECAST_V2 Semantic View (DISTRICTPILOT_SV)
Ablation A->E Cortex Analyst (VQR 10개)
Feature Importance Cortex Search (정책 문서)
| |
v v
Streamlit in Snowflake (5 tabs)
Capture Plan | Move-in Signals | AI Playbook | Scenario Lab | Ops/Trust
Current live alignment:
- Feature pipeline:
DT_FEATURE_MART->FEATURE_MART_V2 - Final production model:
DISTRICTPILOT_FORECAST_V2 AJDis optional and not required for the base demo flow
| Step | Snowflake Object | Evidence |
|---|---|---|
| Forecast | DISTRICTPILOT_FORECAST_V2 |
3구 수요 예측 + evaluation metrics + feature importance |
| Feature Importance | FEATURE_IMPORTANCE + ABLATION_RESULTS |
전입·이사/소비 신호별 Top-5 기여도, ablation 전후 MAPE 개선 |
| Semantic View | DISTRICTPILOT_SV |
VQR 10개, SQL 규칙 13개, synonym 100+, 카테고리 7개 |
| Search Grounding | CORTEX.SEARCH() |
설치/온보딩/집행 룰북 컨텍스트로 hallucination 방지 |
| AI Structured Output | AI_COMPLETE() + SNOWFLAKE.CORTEX.COMPLETE() |
JSON action card (recommended_district / allocation_pct / risk / next_action) |
| Refresh State | V_APP_HEALTH |
실시간 LAG_SEC, task 상태, query_tag 감사 |
- Version-tolerant app: Streamlit 앱이
DISTRICTPILOT_FORECAST_V2와 레거시 모델명을 자동으로 흡수해 라이브 데모 리스크를 낮춥니다. - Grounded move-in engine: Feature Mart JSON 컨텍스트와 Search grounding으로 전입·이사 시그널을 설명 가능한 추천으로 바꿉니다.
- Partner-data intersection: SPH, Richgo, optional AJD가 가장 자연스럽게 만나는 도메인 축으로 문제를 정의했습니다.
- Observable ops:
V_APP_HEALTH, query tag, 실행 컨텍스트, Dynamic Table/Task 상태를 앱과 SQL에서 확인할 수 있습니다.
| 심사 항목 | 배점 | DistrictPilot AI 대응 |
|---|---|---|
| 비즈니스 임팩트 | 25% | 연 700만 이사 × 72시간 골든타임. SPH+Richgo+AJD 3사 데이터가 이사 밸류체인 주요 구간을 포괄 |
| 기술 구현 | 25% | Marketplace 3사 + ML FORECAST(외생변수) + Ablation 5모델 + AI_COMPLETE + DT + Tasks + Streamlit = 8개 Snowflake 기능 통합 |
| 솔루션 완성도 | 20% | 데이터 수집 → 예측 → 액션 추천 → 시뮬레이션 → 운영 모니터링 End-to-End 완결 |
| 데이터 분석 & 인사이트 | 20% | Feature Importance(외생변수 기여도) + Ablation(5모델 MAPE 비교) + 구별 인사이트 콜아웃 |
| 발표 품질 | 10% | 5탭 라이브 데모 + Judge Fast Path + Q&A 9문항 대비 |
보너스 포인트: Snowpark, Cortex AI (Complete + Search), Marketplace (SPH + Richgo + AJD), Streamlit 모두 활용
| Source | Data | Level |
|---|---|---|
| SPH | 유동인구 (거주/직장/방문), 카드소비 (8 카테고리), 자산/소득 | 법정동 -> 구 집계 |
| Richgo | 아파트 매매/전세 시세, 인구이동 (전입/전출/순이동) | 시군구 |
| AJD (Optional) | 통신 가입 / 렌탈 / 마케팅 / CS | 별도 통합 시 사용 |
| Source | Data | License | 비고 |
|---|---|---|---|
| 한국천문연구원 | 공휴일/특일 캘린더 | 공공누리 1유형 | 합성: 공개 캘린더 기반 |
| 행정안전부 | 연령/성별 주민등록 인구 | 공공누리 1유형 | 합성: KOSIS 통계 기반 트렌드 |
| 한국관광 데이터랩 | 관광수요/외래객 지수 | 공공누리 1유형 | 합성: 계절 패턴 모사 |
| 서울시 상권분석서비스 | 상권변화지표 | 공공누리 1유형 | 합성: 상권 안정성 트렌드 |
15_public_api_integration_readiness.sql maps selected Korean public APIs from public-apis-4Kr to DistrictPilot staging objects and feature usage.
It keeps the current demo synthetic and reviewable while making live replacements explicit for KOSIS, data.go.kr, Seoul Open Data, TourAPI, KMA, AirKorea, and MOLIT-style housing signals.
투명성 노트: 외부 공개 데이터와 AJD 통신/렌탈 데이터는 해커톤 환경에서 공개 통계와 도메인 지식 기반으로 현실적인 패턴을 재현한 합성 데이터입니다. Production에서는 각 API/Marketplace 실데이터로 자동 교체되도록 파이프라인이 설계되어 있습니다. 스폰서 데이터(SPH, Richgo)는 Marketplace 실데이터입니다.
districtpilot-ai/
|-- README.md
|
|-- Snowflake SQL Pipeline --
|-- 00_rename_database.sql # DB rename (MOVESIGNAL -> DISTRICTPILOT)
|-- 02_feature_mart_v4.sql # Feature Mart (5 STG -> FEATURE_MART_FINAL)
|-- 03_ml_and_cortex_v2.sql # ML Forecast + Cortex LLM
|-- 06_semantic_view.sql # Semantic View + VQR 10개 (Cortex Analyst)
|-- 07_dynamic_tables_tasks.sql # Dynamic Tables + Tasks + V_APP_HEALTH
|-- 08_ajd_integration.sql # AJD 통신/렌탈 데이터 통합 + FEATURE_MART_V3
|-- 09_cortex_search_agent.sql # Cortex Search + Agent
|-- 10_external_data.sql # 4개 외부 데이터 + FEATURE_MART_V2
|-- 11_ablation_study.sql # Ablation A->E (5 모델 비교)
|-- 15_public_api_integration_readiness.sql # 공공 API -> Feature Mart 전환 지도
|
|-- Streamlit App --
|-- streamlit_app_v8.py # 최종 앱 (5탭)
|-- snowflake.yml # SiS 배포 설정
|
|-- Docs --
|-- DEMO_SCRIPT.md # 10분 데모 스크립트
|-- evidence_chain_slide.md # Evidence Chain 슬라이드 + 30초 멘트
|-- DATA_SOURCES_AND_LICENSES.md # 데이터 소스 + 라이선스
|-- SUBMISSION_CHECKLIST.md # 제출 체크리스트
|-- DOMAIN_POSITIONING.md # 도메인 정의와 심사 메시지
|-- FINAL_PRE_SUBMISSION_RUNBOOK.md # 제출 직전 15분 런북
|-- LIVE_SUBMISSION_NOTES.md # 라이브 오브젝트 정합성 기준
|-- 12_final_precheck.sql # Snowsight 최종 점검 SQL
|-- 14_judge_fastpath.sql # 심사자용 빠른 검증 SQL
|-- 13_live_app_compatibility_patch.sql # 라이브 앱 호환 패치
|-- JUDGE_FASTPATH.md # 심사자용 3분 가이드
|-- generate_pptx.py # 최종 PPT 생성 스크립트
|-- build_demo_video.py # 한국어 TTS 데모 영상 생성 스크립트
| Object | Type | Description |
|---|---|---|
FEATURE_MART_V3 |
Table | AJD 통합 Feature Mart (60+ features, 렌탈/CS 포함) |
FEATURE_MART_V2 |
Table | 확장 Feature Mart (50+ features) |
STG_TELECOM |
Table | AJD 통신/렌탈 스테이징 (구별 월별) |
DT_FEATURE_MART |
Dynamic Table | 자동 갱신 (1h lag) |
DISTRICTPILOT_FORECAST_V2 |
ML Model | Ablation 최종 모델 (외생변수 포함) |
ABLATION_RESULTS |
Table/View | 5 모델 MAPE/SMAPE/MAE 비교 |
DISTRICTPILOT_SV |
Semantic View | Cortex Analyst용 비즈니스 메트릭 (VQR 10개) |
DISTRICTPILOT_SEARCH_SVC |
Cortex Search | 정책/룰북 문서 검색 |
PUBLIC_API_SOURCE_REGISTRY |
Table | public-apis-4Kr 기반 공개 API 전환 지도 |
V_PUBLIC_API_INTEGRATION_READINESS |
View | 공개 API별 Feature Mart 교체/확장 준비도 |
V_PUBLIC_API_SIGNAL_GROUP_COVERAGE |
View | 신호 그룹별 API coverage와 필요한 secret 목록 |
V_APP_HEALTH |
View | 운영 상태 모니터링 |
- Snowflake account with ACCOUNTADMIN role
- Marketplace datasets: SPH, Richgo
- Warehouse:
COMPUTE_WH(X-Small) - Streamlit in Snowflake enabled
CREATE DATABASE IF NOT EXISTS DISTRICTPILOT_AI;
CREATE SCHEMA IF NOT EXISTS DISTRICTPILOT_AI.ANALYTICS;
CREATE STAGE IF NOT EXISTS DISTRICTPILOT_AI.ANALYTICS.STREAMLIT_STAGE
DIRECTORY = (ENABLE = TRUE);-- 1. Base pipeline
02_feature_mart_v4.sql
03_ml_and_cortex_v2.sql
-- 2. External data + extended features
10_external_data.sql
-- 2.1. Public API live-readiness map
15_public_api_integration_readiness.sql
-- 2.5. AJD 통신/렌탈 통합
08_ajd_integration.sql
-- 3. Ablation study
11_ablation_study.sql
-- 4. AI layer
06_semantic_view.sql
09_cortex_search_agent.sql
-- 5. Operations
07_dynamic_tables_tasks.sql
-- 6. Optional live hardening
12_final_precheck.sql
13_live_app_compatibility_patch.sql
-- 7. Deploy Streamlit
streamlit_app_v8.pyFrom the repo root, deploy the app with a Snowflake CLI connection that points
to DISTRICTPILOT_AI.ANALYTICS:
snow streamlit deploy DISTRICTPILOT_APP --replace --openSmoke-test deployment immediately after:
SHOW DATABASES LIKE 'DISTRICTPILOT_AI';SHOW STREAMLITS LIKE 'DISTRICTPILOT_APP';- if the opened URL says
App not found, verify the same account / database / schema / role was used for deploy and for browser access
- Final PPT:
deliverables/DistrictPilot_AI_Hackathon_Final.pptx - Narrated demo video:
deliverables/DistrictPilot_AI_Demo_Narrated.mp4 - Source ZIP:
deliverables/DistrictPilot_AI_Submission.zip
To regenerate the presentation and video locally:
python3 generate_pptx.py
python3 build_demo_video.py- Ablation Study: Sponsor-only -> +Holiday -> +Age -> +Tourism -> +Commercial, MAPE 개선 정량화
- Evidence Chain: Forecast -> Feature Importance -> Semantic View -> Search Grounding -> Structured Output -> Refresh State
- Domain Fit: SPH(소비) + Richgo(이동) + AJD(렌탈/CS) 3사 데이터가 전입·이사 → 홈서비스 수요로 자연스럽게 수렴
- 데이터 투명성: 스폰서 실데이터 + 합성 외부 데이터를 명시적으로 구분, Production 교체 경로 제공
- Snowflake deployment-readiness: Dynamic Tables (1h lag), Tasks (daily/weekly), health monitoring, and query tags are prepared for a governed Snowflake deployment review.
Use the Snowflake pricing calculator for the selected region, warehouse size, Cortex usage, Streamlit runtime, and Dynamic Tables refresh cadence. Keep the demo paused or scaled down when it is not under active review.
Doeon Kim - GitHub
Snowflake Korea Hackathon 2026 Tech Track Submission deadline: 2026-04-12 23:59 KST Finals: 2026-04-29, Seoul (10min presentation + 3min Q&A)
- Cloud + AI architecture blueprint
- Machine-readable architecture manifest
- Validation command:
python3 scripts/validate_architecture_blueprint.py
- Product operating model defines the product scope, trust boundary, operating checks, and service path for this repository.
- System architecture maps the runtime boundary, data/control flow, cloud or local deployment surface, and operating assumptions for this repository.
- Service architecture defines the cloud resources, account information, cost controls, and production guardrails needed to turn this repo into a scoped service without publishing public financial assumptions.
- Public entry: public static district planning demo with architecture notes
- Paid boundary: paid readiness report, data connector pack, and private planning workspace
- Canonical URL: https://districtpilot-ai.pages.dev/
- Lead capture: https://kim3310-doeon-kim-portfolio.pages.dev/?offer=districtpilot-ai&inquiry=private-ai-readiness-sprint#private-inquiry
- Resource route: https://kim3310-doeon-kim-portfolio.pages.dev/resources/districtpilot-ai/
- Commercial route: https://kim3310-doeon-kim-portfolio.pages.dev/?offer=districtpilot-ai#service-offers
- Machine-readable offer: docs/service-offer.json
- Search growth implementation: docs/search-growth-implementation.md
- Revenue architecture: docs/revenue-architecture.md
- Public utility and architecture checklist
- Revenue model: contextual advertising on the policy-eligible central resource page.
- Aggregate value: anonymous aggregate civic analytics rollout topic interest and worksheet usage counts
- Boundary: ads allowed only on public rollout explainers; civic data workspaces, exports, and dashboards are ad-free
- Consent defaults off, DNT/GPC fail closed, and personal or sensitive data is never sold.