Recalibrate estimate for SMB acceptability

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>
This commit is contained in:
2026-05-28 01:13:38 +09:00
parent e519a49cc4
commit 60734dbde7
6 changed files with 107 additions and 60 deletions

View File

@@ -286,7 +286,8 @@ def main():
sc = EST.get("scope", {})
note = f"청구율 {int(EST.get('billing_rate', 0.7) * 100)}% · 일8h/월4주 · SOW 기반"
if sc.get("hours_multiplier", 1.0) != 1.0:
note += f" · 프로퍼티 {sc.get('properties_total')}×{sc['hours_multiplier']:g}"
dl = "브랜드/템플릿" if sc.get("driver") == "subbrands_total" else "프로퍼티"
note += f" · {dl} {sc.get('driver_count')}×{sc['hours_multiplier']:g}"
textbox(s, 0.85, 2.2 + 0.5 * rows, 11.6, 1.3, [
[(note, 10, GREY, False)],
[(EST.get("disclaimer", ""), 9, GREY, False)],