Astra Draft Diary · Week 0

I let Astra draft two fantasy teams. I kept a hand on the mouse.

Two Sleeper leagues, my existing DELPHI project, and an AI agent working across research, code and a live browser. A field report from a draft night that was impressive, frustrating, and useful to run.

Astra in Codex beside the live VCU x VT fantasy draft on Sleeper.
Screenshot: Pranav Patel, September 8, 2026. Other managers’ names blurred for privacy; full capture below.

Astra Draft Diary · Week 0 · Experiment run September 8, 2026

I gave Astra control of my fantasy football drafts because I wanted to see how much of the job I could actually hand over. Research the players. Read the league settings. Use the backtesting work I already had. Watch the board. Pick the team.

Then I gave it a second league whose draft overlapped with the first.

That was the experiment: GPT-6 Astra in Codex, my existing football analysis project on a server, and two live Sleeper rooms. I stayed at the laptop, asked questions, challenged recommendations and occasionally took over. The entry money went to charity. The part I cared about was still very simple: I wanted good teams, and I wanted to see the agent do the work.

There were moments when it felt like having a researcher, an analyst and a draft assistant at the same desk. There were also moments when I was typing, “you didnt pick,” because the clock had expired.

Both belong in the account.

I had already written about DELPHI, my Monte Carlo project for a Superflex league. That earlier work explored draft strategies and exposed problems in its own assumptions. Before draft night, I asked Astra to go back through it and make the preparation specific to both leagues.

The audit found reasons to be careful. Parts of the old implementation assumed one league’s size, roster settings and playoff structure. Some player estimates came from historical positional ranking curves rather than current forecasts. A failed request could look like an empty draft board. Those are consequential mistakes when a program is telling you who is still available.

Astra helped prepare a separate path using current player projections, each league’s scoring rules, and player IDs to track selections. The analysis code handled the data; browser tools handled the live interface. This mattered because the two rooms called for different teams.

SettingVCU x VTNYC
Teams1410
ScoringFull PPRFull PPR
Quarterback formatOne starting QBQB plus Superflex
My draft positionSixthTenth
Roster size1517

PPR awards a point for each reception. Superflex lets a second quarterback occupy a flexible starting slot. In VCU, spending heavily on quarterbacks would compete with the running backs and receivers needed in a deeper league. In NYC, securing two usable quarterbacks and coverage for them was part of the plan.

Drafting tenth in NYC also meant consecutive picks followed by a long wait. I kept asking for the best combination available. Taking the first player needed to change how the agent evaluated the second; a fixed list of names would lose track of the roster it was building.

The preparation was substantial. The saved results show 31 automated tests and 72 simulated draft rehearsals covering 13,920 selections. The tests checked things such as draft order, legal roster construction, duplicate players, scoring rules and completion. The rehearsals included opponents who took quarterbacks or running backs aggressively.

Those were mechanical checks. They did not establish that we had found a winning strategy, and they did not test whether the browser agent would always beat a live countdown.

We also checked a simple weekly forecasting model against historical data. Adding recent scoring and usage improved its error relative to a recent-scoring baseline; the extra opponent adjustment did not improve it consistently. That was useful restraint. I had asked whether schedules could give us another edge, and the result gave us a reason to avoid adding a strong schedule adjustment to the rankings.

Once the draft started, the interesting part was watching those separate pieces become one workflow. Astra could inspect the current board, look up a player’s news, explain the tradeoff, and use the browser to make a selection. OpenAI describes Astra as supporting reasoning, coding, research and computer use. In this session, those capabilities were being used on the same task, with other people changing the available choices between turns.

Astra in Codex alongside the live VCU x VT Sleeper draft, with the first three selections visible.
My screenshot from the live draft. The conversation is on the left; Sleeper is on the right. My first three VCU selections were Jaxon Smith-Njigba, Brock Bowers and Javonte Williams. The model selector shows GPT-6 Astra at Medium reasoning effort. Other managers’ names have been blurred for privacy.

The screenshot catches a good example of why I wanted the browser involved. I was questioning whether we were taking Ashton Jeanty. Astra checked the injury question, distinguished another team’s selection from ours, and explained the next choices. Bowers went at 23, then Javonte Williams at 34. I could compare the explanation with what had actually appeared on the board.

VCU eventually had Smith-Njigba, Garrett Wilson and Mike Evans at receiver, Bowers at tight end, and Trevor Lawrence at quarterback. In NYC, the early selections were Joe Burrow and Smith-Njigba, followed by Caleb Williams and Nico Collins. The construction reflected the format: more quarterback investment in Superflex, a premium tight end in the deeper one-QB league.

The experience also exposed a serious execution gap.

At NYC pick 50, the agent missed the clock and Sleeper selected Ladd McConkey automatically. McConkey was a useful receiver, but the plan had been to address running back at that turn. Travis Etienne became the next pick; the record does not show the assistant clicking that selection. Later, when the agent again failed to act in time for my turn, I selected Wan’Dale Robinson and Philadelphia’s defense myself.

At another point, an answer to a side question ended the active work instead of continuing to watch the draft. I had to call it back: “yo yo are you still controlling were up bro”.

That is a different failure from recommending the wrong player. A sensible recommendation only helps if the selection reaches the correct roster before the deadline. The interface, the queue, the confirmation and the continued monitoring all have to work together.

I cannot diagnose every missed action as a model limitation from one night. This was one particular combination of model, tools, conversation and human supervision. I can say what happened: handing over the task did not remove my responsibility to watch it.

The queue became an important fallback. By the final NYC pick, it contained only kickers, with Tyler Loop first and alternatives behind him. Astra directly submitted Loop at 170 and checked that the roster showed 17 of 17 players. VCU had already finished with 15. Both teams were complete, with human intervention along the way.

Then I asked the question that makes a flattering experiment write-up harder: how did the teams compare with everyone else?

Astra calculated each roster’s best legal offensive starting lineup using the same cached season projections that had informed the draft. It excluded kickers and defenses because their projection coverage was inconsistent. The results were uneven.

Post-draft comparisonVCUNYC
Projected offensive starter rank1st of 1410th of 10
Difference from league median+3.76%−2.35%
Starting RB pair rank12th9th
Top-three WR rank3rd2nd

VCU’s receivers and Bowers made up for a weaker running back pair. NYC had strong quarterbacks and receivers, but less projected production at running back and less advantage at tight end. Astra’s final subjective grades were 8/10 for VCU and 6.5/10 for NYC.

The NYC ranking was disappointing. It also needed context: the gap to the league median was only 2.35%. These were closely grouped estimates, not a prediction that I would finish last. The comparison used a fixed starting group, gave no credit for weekly bench substitutions, and did not simulate injuries, waivers or playoff results. It also reused the projection source from the draft, so it was not an independent test of the strategy.

At the time of writing, the football result is unknown. Two completed rosters and an encouraging projection in one league are what we have. This is the starting record for a weekly series, so I am keeping those original grades and projections instead of quietly rewriting them once the results arrive.

What I would change next time is concrete. Keep a valid queue in each room before the turn arrives. Make the next deadline visible throughout the work. Submit early enough to recover from a failed click, then verify the recorded player and roster. Answer my side questions while preserving the unfinished drafting task. Treat overlapping drafts as a coordination problem that needs explicit handling.

I would also measure the live operation separately from the player analysis: how many turns needed a rescue, how much time remained when a pick was submitted, and how often a selection matched the stated plan. Those measurements would tell me more about whether I could leave the laptop than another batch of simulated drafts.

I still thought this was a cool experiment. I watched one agent work through an existing codebase, historical checks, current research and a live application while I argued with it about football. That is a lot of useful work to be able to request in ordinary language.

It was also clear where my trust ran ahead of the result. I wanted to watch Astra draft. Some of the time, I had to help it finish the job.

I will post weekly updates for both teams: the scores and opponents, how we compared with the rest of each league, the lineup and waiver decisions, and the moments when I overruled the agent or had to rescue an action. A close loss to the highest-scoring team should look different in that record from a win with a weak score. I also want to separate a reasonable decision that went badly from one that ignored information we already had.

The next update starts with the first completed scoring week. The original rosters, the reasoning behind the picks and the mistakes on draft night are now the baseline. From here, we get to find out which parts survive contact with the season.

References

The memo

Get the memo before it becomes consensus.

One sharp memo on sports AI, media rights, athlete data, scouting systems, or sports business. No generic roundup.

Or follow on X: @TheFieldSignal