Real-world feedback: list-rate calc overshot SMB-acceptable levels. - scaling: driver properties_total -> subbrands_total (chains share templates), cap x6.5 -> x2.0, applied to On-page only (Technical now fixed site-wide) - add 'smb' entry tier (lean hours @ 0.55 billing); 3-tier auto-select (smb/basic/treatment) by portfolio size; per-tier billing; --baseline smb enabled - docs (findings_to_service.md, SKILL.md) synced to 3-tier model Effect: SHR 25-property chain 71.5M -> 29.5M; SMB single hotel ~3.0M; basic/treatment still reproduce real 10.5M/25.0M at 1 property. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.3 KiB
Findings → estimate mapping (effort-based, SMB-aware)
estimate.py builds the 견적 from sow_templates.yaml priced via rate_card.yaml:
cost = role_rate × billing_rate × standard_hours, grouped by module; 제안가 = 합계
floored to rounding_unit. Mirrors OurDigital/D.intelligence's real SOW-based quoting.
Tier selection (smb / basic / treatment)
treatmentifproperties_total > 5ORsubbrands_total > 3(multi-brand / chain)smbifproperties_total <= 1ANDsubbrands_total == 0(single-property SMB)basicotherwise (small multi-property / mid)- override with
--baseline. Note: tiering is by portfolio size only — quote a single premium property asbasic/treatmentmanually.
Per-tier billing: smb uses billing_rate: 0.55 (set in sow_templates); basic/
treatment use rate_card.billing_rate (0.70). Override with --billing.
Module inclusion
Each tier carries its standard module set (P&M · Technical SEO · On-page SEO ·
SEO Growth). Findings annotate modules via the trigger field:
| Module | trigger finding classes |
|---|---|
| Planning & Management | always |
| Technical SEO | crawlability, cwv, schema_entity |
| On-page SEO | onpage, schema_entity |
| SEO Growth | measurement, always |
Hours scaling (portfolio)
Only On-page tasks (scale: true) scale, sub-linearly, by the
rate_card.scaling.driver (= subbrands_total, i.e. distinct brands/templates),
capped at ×2.0. Rationale: chains share page templates, so on-page work grows
with template variety, not raw property count. Technical SEO is fixed site-wide
work (scale: false); P&M and SEO Growth are fixed too. Single-brand → ×1.0.
Tools & terms
tools (e.g. SEMrush Guru) listed separately — client-subscribed, +15% procurement
markup if billed through us. VAT 별도 · 유효기간 14d · 현금 · 절사 from rate_card.terms.
Validated (2026-05-28)
basic×1.0 → 합계 10,612,000 → 제안가 10,500,000 (real Basic quote)treatment×1.0 → 합계 25,340,000 → 제안가 25,000,000 (real Treatment quote)smbsingle property → ~3,000,000 (lean × 55% billing)- chain example (SHR, 5 sub-brands ×1.6, treatment) → ~29,500,000 (vs naive 71.5M)
Edit rate_card.yaml + sow_templates.yaml together when rates, hours, tiers, or
scaling change.