← Main Site RAMS AI

From vibes & paper to predictive data.

3Scout modes
BPSper-second solver
CV pipeline
FIRST® Robotics Competition · Team 7729 RAMs · The Koç School, İstanbul · 2026 Season
Welcome back
Sign in to your scouting account.
Join the scouting crew
Create an account - it's saved on this device so you can sign back in.
ScoutCollect data
LeadRun groups
StrategyAnalytics

Welcome back, Elif

Team 7729 RAMs · The Koç School, Tuzla · rookie 2019, Rookie All-Star. Live OPR/EPA below is pulled from real FRC data feeds.

42
Teams tracked
100% pre-scouted
312
Matches logged
+18 today
38
Pit reports
4 pending
CV processing speed
live pipeline
Top robots by OPR · live from TBA
TeamOPR
The 3-mode workflow
Pre-Scout - every match of every team in our division, scouted at the alliance level before quals start.
Pit Scout - near-total awareness of every robot: specs, drivetrain, vision, scoring, ops & autos.
Match Scout - 7 time-tracked action segments, fused with a Computer-Vision scoreboard tracker.
Why it matters

Top-level FRC is won on data-driven decisions. We don't ask scouts to count every game piece - the CV pipeline does the counting, the scouts flag who and when, and a weighted ridge + NNLS solver turns it into honest per-team BPS.

Team Analytics

Real Bosphorus Regional teams with live OPR/EPA pulled from The Blue Alliance & Statbotics, alongside our bespoke BPS. Advanced metrics the per-match models simply can't see.

-
OPR leader
live · TBA
-
Field avg OPR
-
Best defender
lowest DPR
-
Best win rate
OPR - top 10 · live from The Blue Alliance
Full team table (click a header to sort · click a row for detail)
#Team OPR ▾BPS estEPA CCWMWin%DPRRecord

Match Strategy

Because our model operates at the alliance level, we can predict any 3-v-3 outcome from per-team BPS and stack qualitative pit notes on top.

Red Alliance
Blue Alliance

Pre-Scout Operation

Before the Championship we scouted every single match from previous events of every team in our division - at the alliance level - so we walked in with complete statistical insight before a single qual was played.

1 · Pull match list

Auto-import every prior event & match for every team in the division from TBA/match video archives.

2 · Alliance-level capture

Scouts log not just their team but every alliance partner - the model needs complete alliance rows.

3 · Accelerated pipeline

Multiple devices + the 3× CV scoreboard tracker make a full-division sweep feasible for a small team.

Division pre-scout coverage
0%
0 / 312 matches
TeamPrior eventsMatches capturedAlliance rowsStatus

Pit Scout

Built by polling every subteam on what they wanted to know. The result: we can know almost everything about a robot.

1 · Physical Specs
2 · Drivetrain & Motors
3 · Vision Processing
Has vision processing?
4 · Scoring, Intake & Passing
Robot type
Can pass game pieces?
5 · Team Operations & Quality
6 · Autonomous & Notes
Saved pit reports
TeamDrivetrainCapacityBPSVisionBy

Match Scout

Join your group, pick the match, tap your robot. Every one of the 7 action segments is automatically time-tracked - we know exactly what the robot did, at which second, for how long.

1 · Select match
2 · Tap the robot to scout

CV Scoreboard Tracker

We don't ask scouts to count every game piece. A parallel Computer-Vision system reads the official livestream scoreboard and logs every point change - which alliance, at which second - then feeds the BPS solver.

1 · Scoreboard processing

Hook into the match livestream and select the official FRC scoreboard region on screen.

Processing speed
Scoreboard region locked✓ calibrated
2 · Real-time logging
0:00
3× speed
// idle - press “Process match” to begin OCR of the scoreboard…
3 · JSON output

Every score fluctuation + exact timestamp, ready for the dashboard import.

// no deltas yet
4 · Data pipeline
A
Operator logs matches

One person runs the CV system at 3× and exports the JSON of score deltas.

B
Upload to Google Drive

JSONs drop into a shared Drive folder, organized by match.

C
Import & populate

A teammate imports the logs; analytics + BPS recompute instantly.

Advanced metrics this unlocks
Average scoring per match, per robot
Scoring efficiency over time
Lost scoring opportunities under defensive pressure
Quantified impact of defense on scoring

The BPS Model

Traditional OPR uses one linear equation per match - treating 2.5 minutes as a single aggregate. We slice each match into per-second windows for a far more honest, granular, physically-grounded metric.

Windowed equations

A new window opens whenever scouts flag a change in the set of robots actively scoring. Instead of one equation per match, we get dozens - far finer attribution. Each window w gives one linear equation:

Σi∈Aw BPSi · Lw ≈ Sw
Aw - set of teams flagged scoring in window w
Lw - exact window duration (seconds)
Sw - positive score gained (from CV tracker)
BPSi - team i's points-per-second rate, the unknown we solve for
How we solve it - Weighted Ridge + NNLS

Robots can't score negative points and have real mechanical limits, so we solve a bounded, regularized least-squares problem:

β = argmin ‖W½(Xβ − Y)‖² + λ‖β‖²  s.t.  0 ≤ βj ≤ capj
W
Weighted matrix

Longer, isolated windows carry more mathematical weight.

λ
Adaptive ridge penalty

Keeps near-singular alliance matrices stable - Gaussian elimination w/ partial pivoting.

Non-negativity & caps

Forces the math to obey real physics - a turret can't beat its intake ceiling.

Advanced optimization passes
1
Two-pass prior shrinkage

Pass 1 computes event-wide baseline BPS priors; Pass 2 re-solves each match, shrinking outliers toward those priors.

2
Time-sync auto-tuning

Applies a small (±3 s) shift to align human scout flags with actual CV score deltas.

3
Per-phase breakdown

Calculates independent autoBps and teleopBps metrics.

4
Anomaly cleanup

Scores with no plausible flagged team are redistributed; obvious misflags are stripped.

Why not just use OPR or EPA?
AspectOur BPSOPREPA
GranularityPer-second windowsPer-match aggregatePossession-based
SolverWeighted ridge + NNLSPlain least squaresML model
Data sourceHeavily uses scouting flagsMatch results onlyMatch results only

In short: a bespoke, weighted ridge non-negative least-squares model running at per-second granularity. Same linear-algebra roots as classic FRC metrics - but forced to obey live scouting telemetry.

Scout Leaderboard

None of this works without the people. We're a small group, so we tracked every match scouted all season to celebrate the effort.

-
Total matches scouted
-
Total scout-hours
-
Active scouts
-
Top scout
#ScoutMatchesHoursPit reportsContribution

Roadmap

We're happy with the results - but if we pulled this off, we can do better. Here's what's next.

Local scoreboard recording

Stop relying 100% on the official livestream (stream lag/drops hurt us). Physically record the arena scoreboard locally to eliminate internet dependency entirely.

Further CV speed optimization

Find new ways to push the CV pipeline beyond the current 3× so we can process matches even faster during high-intensity brackets.

Scaling up scouter power

Expand the scouting subteam and add human power to manage the workflow more efficiently when the schedule gets brutal.

Streamlining auto-path tracking

Auto mapping is manual and slow. Inspired by 498 The Cobra Commanders: open the video next to the map, click the robot's position second-by-second, and auto-generate the timestamped path.

During the off-season we'll sit down with our scouters and the whole team to review the entire workflow, gather feedback on what worked best, and brainstorm even more ways to elevate the platform. This platform completely transformed our 2026 season.

- RAMS 7729