Extract ourdigital-estimate-engine; presales-seo now calls it

New skill 96-ourdigital-estimate-engine: method-aware quoting engine
(effort / coaching / procurement) with universal rate_card + per-service
catalog. Real catalogs: seo (effort), education (coaching); stubs:
digital_ads, digital_branding. Validated to reproduce real quotes —
SEO basic ₩10.5M / treatment ₩25.0M, SHR chain ₩29.5M, L'Escape basic
₩10.5M, GA4/GTM coaching ₩1,570,000, procurement +15%.

Refactor 95-ourdigital-presales-seo: remove rate_card.yaml, sow_templates.yaml,
estimate.py (migrated to engine); add findings_to_scope.py; Stage 5 now maps
findings→scope.json and calls the engine CLI. build_deck/kg_query unchanged;
end-to-end validated on SHR (29.5M) + deck renders engine estimate.json.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-28 01:54:11 +09:00
parent 34c3a1df4f
commit c9bdbb57f7
20 changed files with 822 additions and 349 deletions

View File

@@ -0,0 +1,67 @@
# OurDigital / D.intelligence — UNIVERSAL rate card (shared across all service lines).
# Methods: effort (role×billing×hours), coaching (lesson_type×hours), procurement (+15%).
# Source: real quotes (06_Working Template = SEO; 견적 자료 = GA4/GTM, education). Keep PRIVATE.
company:
legal_name: "(주)디인텔리전스 (D.intelligence Lab)"
brand: "OurDigital"
ceo: "임명재"
contact: "info@ourdigital.org"
address: "경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 업무동 1층 128호"
quote_prefix: OD
currency: KRW
rounding_unit: 500000 # 제안가 절사 단위(효과 기반 프로젝트 견적). 실제 견적 25,340,000→25,000,000 재현.
terms:
vat: "부가세 별도"
validity_days: 14
payment: "현금"
# ── effort method (project services: SEO Audit & Treatment 등) ──────────────
billing_rate: 0.70 # 청구율 표준 70%
billing_rate_floor: 0.60 # 협상 시 -10%p 까지(>10%p 는 CEO/CFO 승인)
basis: {hours_per_day: 8, weeks_per_month: 4}
procurement_markup: 0.15 # 외부 조달 물품/서비스 수수료
role_rates: # 시간 단가 KRW/hr (직급 기준)
ceo: 180000
evp: 150000
svp: 120000
technical_advisor: 120000
director: 100000
senior_manager: 90000 # 부장 (Senior SEO·PM·Senior Analyst·Account Director)
deputy_manager: 80000 # 차장
manager: 70000 # 과장 (SEO·Data Analyst·Engineer|Developer)
assistant_manager: 60000 # 대리
junior: 50000 # 주임
associate: 30000 # 사원
intern: 12000
tiering: # 자동 티어 선택 보정(effort 카탈로그가 tier 를 가질 때)
premium_verticals: ["luxury", "premium", "deluxe", "5_star", "5성", "특1급", "boutique_luxury"]
premium_min_tier: basic # 프리미엄 단일 프로퍼티 최소 티어
scaling: # On-page(scale:true) 시간 스케일 — 브랜드/템플릿 수 기준, 캡 ×2.0
driver: subbrands_total
bands: [[1, 1.0], [3, 1.3], [6, 1.6], [999999, 2.0]]
tools:
semrush_guru: {label: "Advanced SEO Tools — SEMrush Guru", unit: "월간 구독", price_usd: 249.95, note: "고객사 별도 구독(TBD)"}
# ── coaching method (education: 1:1 코칭, 워크숍) ────────────────────────────
# 실제 견적 재현: 비용 = Σ(lesson_type_prices[type] × hours). subject 행렬은 base×level_multiple
# (list price) 이나 실제 견적은 base 가격으로 청구되므로 pricing_mode 기본값 base.
coaching:
pricing_mode: base # base | matrix
lesson_type_prices: {화상: 80000, 대면: 100000, 실습: 150000, 워크숍: 300000, 트리트먼트: 500000}
level_multiple: {Beginners: 1.0, Intermediate: 1.5, Advanced: 2.0, Expert: 2.5, Trainers: 3.0}
subject_levels: # matrix 모드에서 subject×type 단가 = base × level_multiple[level]
"Content Marketing": Beginners
"SEO": Beginners
"Google Analytics": Intermediate
"Google Tag Manager": Advanced
"Digital Marketing Strategy": Advanced
"Digital Communication": Intermediate
"KPI Setup & Measurement Plan": Expert
"Business Model Canvas": Expert
"e-Commerce Audit": Advanced
student_discount:
apply_default: false # 실제 1:1 견적은 할인 미적용 → 기본 off (opt-in)
bands: [[5, 0.20], [10, 0.0], [20, 0.20], [30, 0.30]] # 30+ = 별도 협의