Summary
Frontend counterpart to FAC-145. Surfaces the faculty Overall Rating (50% Faculty Feedback + 25% Out-of-Classroom + 25% In-Classroom) and reorganises the per-type rating strip so the two ratings are no longer stacked and redundant at the top of the report.
Scope
- New
CompositeRatingSummaryStrip above the Insights/Scores/Feedback tabs, consuming GET /api/v1/analytics/faculty/:facultyId/overview. Shows:
- Weighted rating + interpretation label
- Coverage indicator (amber dot) for PARTIAL / PARTIAL_NO_FEEDBACK / FEEDBACK_ONLY / INSUFFICIENT states
- Info popover with a per-track breakdown (weight / effective weight / contribution) and a coverage banner per state
- New
useFacultyOverview hook (TanStack Query) with a 60s stale time, gated on facultyId + semesterId.
- Relocated per-type rating strip (
HeadlineMetricsStrip) out of the screen header and into the Scores and Feedback tabs, directly under the questionnaire-type sub-tabs where the type is actually selected. Strip still shows rating + sentiment mini-bar + response count.
- Rename: user-facing
"Composite rating" → "Overall rating" in the strip, breakdown popover, and Export PDF tooltip. Internal identifiers (COMPOSITE_TYPE_ORDER, CompositeCoverageStatus, file names, etc.) kept as-is.
- Always-rendered report shell so the sticky title + overall rating strip stay visible even while
/report is loading or errored; a dual-failure placeholder shows "Faculty details unavailable".
- Deleted unused
faculty-analysis-hero.tsx (no consumers).
Non-goals
- PDF export of the composite value (stays dashboard-only; tooltip on the Export button documents this).
- Changes to the Insights tab — the existing
FacultyAnalysisSentimentStrip already serves a similar headline role.
Related
Summary
Frontend counterpart to
FAC-145. Surfaces the faculty Overall Rating (50% Faculty Feedback + 25% Out-of-Classroom + 25% In-Classroom) and reorganises the per-type rating strip so the two ratings are no longer stacked and redundant at the top of the report.Scope
CompositeRatingSummaryStripabove the Insights/Scores/Feedback tabs, consumingGET /api/v1/analytics/faculty/:facultyId/overview. Shows:useFacultyOverviewhook (TanStack Query) with a 60s stale time, gated onfacultyId+semesterId.HeadlineMetricsStrip) out of the screen header and into the Scores and Feedback tabs, directly under the questionnaire-type sub-tabs where the type is actually selected. Strip still shows rating + sentiment mini-bar + response count."Composite rating"→"Overall rating"in the strip, breakdown popover, and Export PDF tooltip. Internal identifiers (COMPOSITE_TYPE_ORDER,CompositeCoverageStatus, file names, etc.) kept as-is./reportis loading or errored; a dual-failure placeholder shows "Faculty details unavailable".faculty-analysis-hero.tsx(no consumers).Non-goals
FacultyAnalysisSentimentStripalready serves a similar headline role.Related
_bmad-output/implementation-artifacts/tech-spec-faculty-composite-overall-rating.md(inapi.faculytics)