OpenRouter API Settings
Model is used for all review steps via OpenRouter.
Upload Excel Submissions
Drag & drop Excel files here
or click to browse (.xlsx files only)
Uploaded Files
{{ f.name }}
{{ (f.size / 1024).toFixed(1) }} KB — {{ f.courseCount || 0 }} courses, {{ f.eventCount || 0 }} events
Parsed Courses/Events ({{ selectedCount }} of {{ filteredParsedCourses.length }} selected)
Review Progress
📋
No reviews in progress. Upload files and click "Start AI Review".
Token Usage
Reviews
Unable to connect to the review dashboard.
| Date | Course Title | TP Name | Verdict | Rev | Status | ||
|---|---|---|---|---|---|---|---|
| Loading reviews... | |||||||
| No reviews found. Process some submissions first. | |||||||
| {{ new Date(row.created_at).toLocaleDateString('en-SG') }} | {{ row.course_title }} | {{ row.tp_name || '—' }} | {{ row.overall_verdict }} | Rev {{ row.review_seq }} | {{ row.review_actions[0].action === 'agree' ? '✓ Agreed' : '⚠ Overridden' }} Pending — |
|
{{ selectedReview.course_title }}
Rev {{ selectedReview.review_seq }}{{ selectedReview.tp_name }} · {{ new Date(selectedReview.created_at).toLocaleDateString('en-SG') }}
Verdict
{{ selectedReview.overall_verdict }}
Risk Tier
Tier {{ selectedReview.risk_tier }}
TAE
{{ selectedReview.tae_assessment }}
Domain
{{ selectedReview.domain_assessment }}
Verdict Reasons
- {{ reason }}
Section Results
{{ sd.guide }}
{{ selectedReview.review_result.sections[sd.key].tpFeedback }}
TP's Submission
{{ field.label }}
Bot's Evaluation
Justification
{{ selectedReview.review_result.sections[sd.key].justification }}
Suggested Rewrite
{{ selectedReview.review_result.sections[sd.key].suggestedRewrite }}
Please select an issue type.
Reviewer Action
Review submitted
Review History
by {{ ra.reviewer_name }}
Changed to: {{ ra.new_verdict }}
{{ ra.override_reason }}
{{ flaggedSectionCount }} section{{ flaggedSectionCount > 1 ? 's' : '' }} flagged for feedback
{{ dashboardStats.totalReviews }}
Total Reviews
{{ dashboardStats.pendingReviews }}
Pending Human Review
{{ dashboardStats.agreementRate }}%
Agreement Rate
{{ dashboardStats.overrideRate }}%
Override Rate
Verdict Distribution
Tier Breakdown
| Tier | Total | Sampled | Reviewed | Agree % |
|---|---|---|---|---|
| Tier {{ tier.tier }} ({{ tier.tier === 1 ? 'High' : tier.tier === 2 ? 'Medium' : 'Low' }}) | {{ tier.total }} | {{ tier.sampled }} | {{ tier.reviewed }} | {{ tier.agreeRate }}% |