# Building the Airtable Sprint Tracker **From Chapter 10 of *The 4-Hour Side Hustle*.** Every milestone as a record, the three time audits scheduled at weeks 4, 8 and 12, and four views that make the thing usable. Twenty minutes, and most of that is the import. You need `sprint-tracker-airtable.csv` — 79 rows, already in this bundle. --- ## Step 1 — Create the table by importing **Don't build the fields by hand.** Airtable creates them from the CSV headers, and typing eight field names is eight chances to typo one that a view later filters on. 1. Open your `Command Center` base — this belongs beside your other tables, not in a base of its own. 2. Bottom of the table tabs → **+** → **Import data** → **CSV file**. 3. Upload `sprint-tracker-airtable.csv`. 4. Airtable shows a preview with **"Use first row as header"** — make sure it's on. 5. Import. You now have a table with 79 records. Rename it `Sprint`. --- ## Step 2 — Fix the field types Airtable guesses on import, and it guesses wrong on three of them. This is the part worth doing carefully, because views depend on types. | Field | Set it to | Options / notes | |---|---|---| | **Week** | Number | Integer, 0 decimal places | | **Phase** | Single select | Validate, Offer + Command Center, Content, Capture, Convert, Delivery, Run mode | | **Hours this week** | Number | 1 decimal place | | **Task** | Single line text | This is your primary field — drag it to first position | | **Milestone type** | Single select | Build, Time audit | | **Done** | Checkbox | Airtable will import it as text. **Change it to Checkbox** — this is the one that matters | | **Date done** | Date | ISO format, no time | | **Notes** | Long text | | **To change a type:** click the field header → **Edit field** → pick the new type → Save. **On `Done`:** an empty text column looks identical to an empty checkbox column and behaves completely differently. Every view below filters on it. Change this one first and confirm you get tickboxes. **On `Task` as primary field:** Airtable makes the leftmost column primary and it can't be deleted or reordered away. If `Week` landed first, drag `Task` to position one before you do anything else. --- ## Step 3 — Add two formula fields **`Status`** — so a glance tells you where a week stands: ``` IF({Done}, "✓ done", IF({Week} <= {Current week}, "⚠ overdue", "upcoming")) ``` That needs a current-week number, and Airtable can't know your start date. Simplest honest version, which needs no configuration: ``` IF({Done}, "✓ done", "open") ``` **`Week label`** — for grouping headers that read properly: ``` "Week " & {Week} & " — " & {Phase} ``` --- ## Step 4 — Build four views Views are the whole reason this is a database rather than the markdown checklist. Four, and no more. ### View 1 — `This week` (Grid) Your working view. **Filter:** `Week` is `1`. Change the number each Monday — five seconds, and it's the only maintenance this table needs. Sort by `Milestone type` descending so time audits sit at the top of the weeks that have one. ### View 2 — `By phase` (Grid, grouped) **Group by** `Phase`, then by `Week`. **No filter.** Collapse all groups and you have the whole sprint on one screen with completion counts per phase. This is the view for the Sunday review — you're looking at shape, not detail. ### View 3 — `Open` (Grid) **Filter:** `Done` is unchecked. **Sort:** `Week` ascending. The honest list. When it's empty you've finished the sprint, and there is no other definition worth using. ### View 4 — `Time audits` (Grid) **Filter:** `Milestone type` is `Time audit`. Four records — weeks 1, 4, 8 and 12. This view exists because the audits are the easiest thing in the sprint to skip and the most expensive to skip. Revenue lags the machines by months; hours don't. A week-8 audit showing Admin down from six hours to two is real evidence of progress in a month where nothing has sold, and without it you have no evidence at all. Put the four bucket totals from each audit in the `Notes` field of its record. By week 12 this view is four rows that show you the entire argument of the book, in your own numbers. --- ## Step 5 — Set the start date Add one record to a `Sprint meta` table, or just write it in the `Notes` of the week 1 record: ``` Sprint start: 2026-__-__ Week 12 ends: 2026-__-__ ``` **Count twelve weeks forward and write the end date down before you start.** The date you finish is the date you switch to run mode, and Chapter 11 exists because people miss that transition when it isn't on a calendar. --- ## What not to add You will want to add fields. Resist: - **Estimated hours per task.** You have hours per week, which is the number you actually plan against. Per-task estimates are a forecast you'll be wrong about and then maintain. - **Priority.** Everything in a week is required. That's what a sprint is. - **Dependencies / linked records.** The order is the week number. Modelling it twice means keeping two models in sync. - **Assignee.** It's you. Chapter 3.1's rule applies here exactly: every field you add is a small tax you pay forever, in a form you'll never fill in. --- ## If you'd rather not use Airtable at all The markdown checklist and the A3 wall chart cover the same twelve weeks. Print the wall chart, tick boxes with a pen, and you lose nothing except the four views. The tracker earns its place if you're already in Airtable daily for the Command Center. If you aren't, the wall chart is genuinely the better tool — it's on your wall, and the sprint's real failure mode is forgetting it exists in week seven. --- ## Checklist - [ ] CSV imported into the `Command Center` base, not a new one - [ ] "Use first row as header" was on - [ ] Table renamed `Sprint` - [ ] `Done` changed from text to **Checkbox** — confirmed you see tickboxes - [ ] `Task` is the primary field, in position one - [ ] `Phase` and `Milestone type` set to Single select - [ ] `Week` and `Hours this week` set to Number - [ ] `Date done` set to Date - [ ] Four views built: This week · By phase · Open · Time audits - [ ] `Time audits` view shows exactly four records — weeks 1, 4, 8, 12 - [ ] Sprint start and week-12 end date written down before starting - [ ] No extra fields added