V10.542 拆分可用比價覆蓋率口徑

This commit is contained in:
OoO
2026-06-01 10:01:48 +08:00
parent 7e057435c5
commit 4bc271f7ed
16 changed files with 57 additions and 10 deletions

View File

@@ -705,7 +705,7 @@ def _cached_payload(cache_key: str, producer, ttl_seconds: int = COMPETITOR_INTE
def fetch_competitor_coverage(engine) -> dict:
return _cached_payload(
f"coverage:v7:floor={PCHOME_MATCH_SCORE_FLOOR}:manual_reviews=1:rescore=1:review_no_fresh=1",
f"coverage:v8:floor={PCHOME_MATCH_SCORE_FLOOR}:manual_reviews=1:rescore=1:review_no_fresh=1:decision_ready=1",
lambda: _fetch_competitor_coverage_uncached(engine),
)
@@ -723,8 +723,10 @@ def _fetch_competitor_coverage_uncached(engine) -> dict:
"fresh_matches": 0,
"stale_matches": 0,
"pending": 0,
"decision_ready_matches": 0,
"match_rate": 0,
"fresh_match_rate": 0,
"decision_ready_rate": 0,
"attempt_status": {},
"unit_comparable_count": 0,
"rescore_accepted_count": 0,
@@ -838,8 +840,10 @@ def _fetch_competitor_coverage_uncached(engine) -> dict:
"fresh_matches": fresh,
"stale_matches": stale,
"pending": pending,
"decision_ready_matches": fresh,
"match_rate": round(valid / max(active, 1) * 100, 1),
"fresh_match_rate": round(fresh / max(valid, 1) * 100, 1),
"decision_ready_rate": round(fresh / max(active, 1) * 100, 1),
"attempt_status": statuses,
"unit_comparable_count": unit_count,
"rescore_accepted_count": rescore_accepted_count,

View File

@@ -607,6 +607,10 @@ def _fetch_competitor_summary() -> Dict[str, Any]:
"premium_count": int((row[3] if row else 0) or 0),
"match_rate": float(coverage.get("match_rate") or 0),
"active_with_price": int(coverage.get("active_with_price") or 0),
"decision_ready_matches": int(
coverage.get("decision_ready_matches") or coverage.get("fresh_matches") or 0
),
"decision_ready_rate": float(coverage.get("decision_ready_rate") or 0),
"unit_comparable_count": int(coverage.get("unit_comparable_count") or 0),
"rescore_accepted_count": int(coverage.get("rescore_accepted_count") or 0),
"review_queue_count": int(coverage.get("actionable_review_count") or 0),

View File

@@ -80,6 +80,14 @@ def _coverage_metadata(coverage: dict, row_count: int) -> dict:
"source": "competitor_intel_repository",
"matched_count": int(coverage.get("valid_matches") or coverage.get("matched_count") or 0),
"coverage_rate": _num(coverage.get("match_rate")),
"identity_coverage_rate": _num(coverage.get("match_rate")),
"decision_ready_count": int(
coverage.get("decision_ready_matches")
or coverage.get("fresh_matches")
or coverage.get("fresh_match_count")
or 0
),
"decision_ready_rate": _num(coverage.get("decision_ready_rate")),
"fresh_match_count": int(coverage.get("fresh_matches") or coverage.get("fresh_match_count") or 0),
"fresh_match_rate": _num(coverage.get("fresh_match_rate")),
"stale_match_count": int(coverage.get("stale_matches") or coverage.get("stale_match_count") or 0),