Skip to content

Add maximum benefit scoring for plan analysis findings#219

Merged
erikdarlingdata merged 1 commit intodevfrom
feature/benefit-scoring
Apr 13, 2026
Merged

Add maximum benefit scoring for plan analysis findings#219
erikdarlingdata merged 1 commit intodevfrom
feature/benefit-scoring

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Introduces BenefitScorer — a second-pass analysis that calculates the maximum % of elapsed time each finding could save if addressed ([FEATURE] Add system to assign a "maximum benefit" for plan analysis rules #215)
  • Findings are now sorted by benefit descending across all outputs (CLI text/HTML, JSON API, desktop app Properties panel, tooltips)
  • Stage 1 scores operator-level rules (Filter, Spill, Key Lookup, Scan, UDF, Nested Loops) using operator self-time, with CostPercent fallback for estimated plans
  • Bumps version to 1.5.0

Test plan

  • dotnet build — 0 errors
  • dotnet test — 75/75 pass
  • Load actual plan in desktop app, verify benefit % shown in Properties panel warnings
  • Load estimated plan, verify CostPercent fallback works
  • Check CLI planview analyze output shows (up to N% benefit) tags
  • Verify HTML export includes benefit badges

🤖 Generated with Claude Code

Introduce BenefitScorer — a second-pass analysis that calculates the
maximum percentage of elapsed time each finding could save if addressed.
Findings are now sorted by benefit descending across CLI text/HTML output,
JSON API, and the desktop app's Properties panel and tooltips. This reduces
noise on large plans by surfacing high-impact findings first.

Stage 1 of the maximum benefit system scores operator-level rules
(Filter, Spill, Key Lookup, Scan, UDF, Nested Loops) using actual
operator self-time, with CostPercent fallback for estimated plans.

Bump version to 1.5.0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant