estimate.py: scale local_seo/onpage_entity by portfolio size

Add configurable sub-linear scope-scaling bands to rate_card.yaml; estimate.py
now multiplies monthly line-item rates by properties_total (local_seo) and
subbrands_total (onpage_entity), with the scope note written into the 견적.

Validated: L'Escape (1 property) stays at base 23-47M; SHR (25 properties,
5 sub-brands) scales to 54.8-110.6M (local ×4.5, on-page ×2.2).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-28 00:24:33 +09:00
parent 4f48ba3c59
commit 3a8edebfef
2 changed files with 46 additions and 5 deletions

View File

@@ -49,3 +49,15 @@ services:
defaults:
retainer_months: 6 # default contract length for monthly line items
disclaimer_ko: "본 견적은 공개 데이터 기반 사전 추정 범위이며, Search Console/Analytics 권한 확보 후 정밀 진단을 통해 확정됩니다."
# Scope scaling — monthly line items scale (sub-linearly) by portfolio size.
# driver: a count under findings.entity (properties_total | subbrands_total).
# bands: ordered [max_count, multiplier]; first band whose max_count >= count wins.
# A 25-property chain costs more to run than a single hotel, but not 25x.
scaling:
local_seo:
driver: properties_total
bands: [[1, 1.0], [5, 1.6], [15, 2.8], [30, 4.5], [999999, 6.5]]
onpage_entity:
driver: subbrands_total
bands: [[1, 1.0], [3, 1.6], [6, 2.2], [999999, 3.2]]