Sprint 5 — vW5 — Four Markets, Catalysts First
Same rhythm as Sprint 4, with two additions: a fourth market, the US 10-year Treasury yield, and a catalyst calendar so the week's big economic releases are part of your thinking, not an afterthought. Every other change on this page comes straight from what happened in Sprint 4.
The Sprint Goal
main, so your dashboard shows the whole week.What Changed From Sprint 4, and Why
| Change | Why (what happened in Sprint 4) |
|---|---|
| A fourth market: the 10-year Treasury yield, owned by R6 | Yields drive all three other markets. Now you call them directly. |
A catalyst calendar (catalysts/vW5.json), owned by R2, due Tuesday | The US jobs report came out on Friday 2 October, the very day you were predicting. Most teams gave it one sentence or nothing. |
| Every required file sits exactly where the folder diagram shows. Files anywhere else don't count. | Several teams did the work but filed it inside evidence/ folders, so their dashboards couldn't find it. |
Only main counts. Work on a branch isn't done until it's merged. | Work was left on branches that were never merged. |
| The dashboard shows "X / 9 files loaded". Hand-typed values count as missing. | Some panels had numbers typed into the page that didn't match the committed files. |
No prediction without "r1_confirms": true. | Calls were filed that R1 never confirmed. |
| The Wednesday check-in must have real content. An empty file is a missing file. | A check-in file existed at noon but was empty. |
Cut the vW5 tag once, before Saturday 23:59, and never move it. | A release tag was moved after the deadline. |
Every FigJam Done card links to its file on main, not just a Discord message. | Done cards claimed files were on main when they weren't. |
| Blockers are raised by Wednesday noon. | Access problems were still unsolved on Sunday night. |
| One deadline per item, stated once, in the timeline. | Last sprint's page gave some items two different deadlines. |
Prediction Challenge — Four Markets
main. Anything committed after that is not a prediction: if you file it late, label it late. Never present a late file as your locked call.| Market | You predict | Where to read it | Owner |
|---|---|---|---|
S&P 500 (^GSPC) | The closing level on Friday 9 Oct | Yahoo Finance · ^GSPC history | R2 |
Nasdaq-100 (^NDX) | The closing level on Friday 9 Oct | Yahoo Finance · ^NDX history | R3 |
Gold futures, December 2026 (GCZ26.CMX) | Direction only: UP or DOWN. Will Friday 9 Oct's close be above or below Friday 2 Oct's close? | Yahoo Finance · GCZ26.CMX (then Historical Data) | R4 |
New: US 10-year Treasury yield (^TNX) | The closing yield on Friday 9 Oct, in percent to two decimals, e.g. 4.27 | Yahoo Finance · ^TNX history | R6 |
How to read the close
The close is the close of Friday's New York session, which lands early Saturday morning in Singapore. Check Saturday morning or later.
- Open the market's Historical Data page on Yahoo Finance, set to Daily.
- Find the row for the date.
- Read the Close column, not Adj Close.
Gold: use GCZ26.CMX for both Fridays. An identical close counts as no result.
How to read the 10-year yield (^TNX)
What it is: ^TNX is Cboe's index of the yield on the US 10-year Treasury note, the interest rate the US government pays to borrow for ten years. You are predicting that yield, a percentage, not the price of a bond and not a futures contract. Yields and bond prices move in opposite directions: when bonds sell off, the yield goes up.
- Open Yahoo Finance · ^TNX history. The page title must read CBOE Interest Rate 10 Year T No (^TNX).
- Set it to Daily and find the row for Friday 9 Oct.
- Read the Close column. Yahoo shows four decimals, for example
4.6640. Round to two decimals (4.66), which means 4.66%. - Do the same for Friday 2 Oct, so you know the starting point your call moves from.
When the close lands: Yahoo stamps the ^TNX close at about 2:00 pm Chicago time, which is about 03:00 Saturday in Singapore. Check Saturday morning or later. Don't use the live number you see during Friday's session.
Five traps that will give you the wrong number:
- Ten times too big. Some sites show the same index multiplied by ten:
46.64instead of4.66. If your number is above 20, you're on the wrong scale. - A different series. FRED's 10-year series (DGS10) and the US Treasury's own daily rate are calculated differently and published a day later, so they can differ by a few basis points. Don't use them for your call or your actual.
- A different feed. CNBC's US10Y and broker screens use other price sources. Use Yahoo ^TNX only, for both your call and the actual, so every team is scored against the same number.
- A futures price. Ten-year Treasury futures (ZN) trade around 110, which is a price, not a yield. Not what you're predicting.
- The wrong direction. "Bonds rally" means yields fall. Read the sentence twice before you turn news into a call.
How it's scored: the miss in basis points. One basis point is 0.01 percentage points, so 4.27 versus 4.31 is a 4 basis-point miss.
Example (invented numbers): Friday 2 Oct close 4.27. R6 calls 4.31 because a stronger-than-expected inflation release is the week's main catalyst. Friday 9 Oct close 4.35. The miss is 4 basis points, and the direction (up) was right.
New: The Catalyst Calendar (catalysts/vW5.json)
{
"sprint": "vW5",
"updated_at": "2026-10-06T21:00:00+08:00",
"events": [
{
"event": "Name of the release",
"when_sgt": "2026-10-08T20:30:00+08:00",
"consensus": "What the market expects, with the number",
"source": "https://link-to-where-you-found-the-consensus",
"affects": ["spx", "ndx", "gold", "tnx"],
"if_stronger": "One line: what it does to each affected call",
"if_weaker": "One line: what it does to each affected call"
}
]
}
- Use real releases, not examples. Check an official calendar (the Bureau of Labor Statistics, the Federal Reserve, the Bureau of Economic Analysis) and give the link in
source. - If there is no major release that week, say so in the file, with the calendar you checked. An empty week is a finding, not a missing file.
- Every call's one-sentence reason must name at least one catalyst from this file.
Your Entry: predictions/vW5.json
{
"sprint": "vW5",
"team": "team-N",
"updated_at": "2026-10-07T22:00:00+08:00",
"team_call": { "spx_close": 0.00, "ndx_close": 0.00, "gold_direction": "UP", "tnx_close": 0.00 },
"why": {
"spx": "One sentence, naming a catalyst.",
"ndx": "One sentence, naming a catalyst.",
"gold": "One sentence, naming a catalyst.",
"tnx": "One sentence, naming a catalyst."
},
"leads": { "spx": "github-username (R2)", "ndx": "github-username (R3)", "gold": "github-username (R4)", "tnx": "github-username (R6)" },
"r1_confirms": true
}
team_callis your final call. R1 files it after R5's Human Score.gold_directionmust read exactly"UP"or"DOWN".tnx_closeis a percent with two decimals.- R1 checks all four sentences are there, then sets
r1_confirmsto true. Without it, there is no entry.
Delta and Prescription: Your Sprint 4 Call
actuals/vW4.json. Do the delta for all three Sprint 4 markets: how far off you were on the S&P 500 and Nasdaq-100, and whether your gold direction was right. There's no yield delta this sprint, because there was no Sprint 4 yield call. If your team had no locked Sprint 4 call, say that in delta/vW5.json and write the prescription about how you'll lock on time. Don't invent a call after the fact.Delta and prescription work as in Sprint 4: the delta is how far off you were, whether the direction was right, and which agent pulled you furthest off. The prescription is one specific change for next sprint.
Where Every File Goes
evidence/, not inside a sprint or role folder. evidence/ is only for supporting material; your dashboard never reads it. A file anywhere else counts as missing.your-team-repo/ ├── catalysts/vW5.json R2 · Tue 23:59 ├── checkin/wednesday.md R1 · Wed 12:00 ├── data/ │ ├── roles.json R1 · Tue 23:59 │ ├── github_activity.json R6 · Tue 23:59, then daily │ └── figjam_status.json R1 · Tue 23:59, then daily ├── predictions/vW5.json R1 · Wed 23:59 ├── llm-synthesis/vW5.json R6 · Wed 23:59 ├── human-score/vW5.json R5 · Wed 23:59 ├── actuals/vW5.json R4 · Sat 23:59 ├── delta/vW5.json R4 · Sat 23:59 ├── prescriptions/vW5.json R4 + R1 · Sat 23:59 ├── instruments.json R3 + R6 · Sat 23:59 (add ^TNX) ├── ui/index.html R5 · Tue 23:59, then daily └── evidence/ supporting material only
Tuesday housekeeping: if any Sprint 4 file is in the wrong place, move it to its required path by Tuesday night, so your dashboard starts the week complete.
The Backlog — All Six Roles
File predictions/vW5.json, check all four sentences are there, and set r1_confirms to true. Commit checkin/wednesday.md by Wednesday 12:00 using the check-in template: each role's real progress and blockers, in their own words. If anyone can't edit GitHub or FigJam, or isn't responding, post it in Discord and tell Prof Tan by Wednesday noon. Add this sprint's row to data/roles.json and update data/figjam_status.json daily. Every Done card links to its file on main. With R4, write the prescription.
main.Build catalysts/vW5.json by Tuesday 23:59 (see above). Almanac and macro outputs for all four markets, committed before the LLMs are queried. You own the S&P 500 call and its sentence.
Technical outputs for all four markets, committed before the LLMs are queried. You own the Nasdaq-100 call and its sentence. With R6, add ^TNX to instruments.json.
instruments.json including ^TNX.You own the gold call and its sentence. Record the Friday 9 Oct closes for all four markets, with source URLs, in actuals/vW5.json. Produce delta/vW5.json for your Sprint 4 call with a committed script (see above), and with R1 write prescriptions/vW5.json.
Human Score on all four markets in human-score/vW5.json before the Wednesday lock: confirm, adjust or override each call, with the reason. Keep ui/index.html live all week with all nine panels reading committed files, and the "X / 9 files loaded" line at the top.
You own the 10-year yield call and its sentence. Query ChatGPT, Gemini and DeepSeek with identical prompts on all four markets, and commit llm-synthesis/vW5.json before the Wednesday lock. Refresh data/github_activity.json every day. Cut the vW5 release tag once, before Saturday 23:59, on the commit that contains everything, and never move it. Where two people share R6, one can take the yield call and the other the LLM and GitHub work.
vW5 tag cut once, on time.Your Dashboard
| Panel | Attribute | Reads |
|---|---|---|
| Roles | data-panel="roles" | data/roles.json |
| GitHub Activity | data-panel="github" | data/github_activity.json |
| FigJam Activity | data-panel="figjam" | data/figjam_status.json |
| New: Catalysts | data-panel="catalysts" | catalysts/vW5.json |
| Predictions (four markets) | data-panel="predictions" | predictions/vW5.json |
| LLM Synthesis | data-panel="llm-synthesis" | llm-synthesis/vW5.json |
| Human Score | data-panel="human-score" | human-score/vW5.json |
| Delta | data-panel="delta" | delta/vW5.json |
| Prescription | data-panel="prescription" | prescriptions/vW5.json |
Timeline — One Deadline Per Item
| When (Singapore time) | What |
|---|---|
| Mon 5 Oct | Sprint 5 starts |
| Tue 6 Oct 23:59 | Roles, GitHub and FigJam files; dashboard live with the "X / 9" line; catalyst calendar; Sprint 4 files moved to their required paths |
| Wed 7 Oct 12:00 | Wednesday check-in, with real content. Blockers raised in Discord and with Prof Tan |
| Wed 7 Oct 23:59 | Prediction locked and R1-confirmed; LLM synthesis; Human Score |
| Fri 9 Oct | The target Friday. The US close lands early Saturday morning Singapore time |
| Sat 10 Oct 23:59 | Actuals, delta, prescription, instruments.json, vW5 tag. Dashboard at 9 / 9 |
| Sun 11 Oct | Nothing is due. Your work is reviewed ahead of Monday |
| Mon 12 Oct | Presentations |
Monday 12 October
Practical B: Team 4, in the Practical B session.
Each team's presentation runs in this order:
- Live progress block, 4 minutes, the real thing on screen, not screenshots:
- R5, 2 minutes: open
ui/index.html, show the "X / 9 files loaded" line, and walk through the panels. - R6, 1 minute: GitHub: this week's commits, merges into
main, and thevW5tag. - R1, 1 minute: FigJam Done cards, each linked to its file on
main.
- R5, 2 minutes: open
- Slides, R1 to R6, using the Sprint 5 presentation template.
- Oral defense of all four calls. Any team member can be asked about any call.