What it is for
Each morning My Dashboard opens with today's day, date, place, the "feels like" temperature and the conditions, today hour by hour from 06:00 to 23:00 (feels-like °C, rain in mm, wind in mph; hours gone are faded, this hour is shaded, the sunset hour is labelled), the sunset time, a one-line reason, and six options: Stay at home, Out casual, Out smart casual, Site visits, Football training (the touchline) and Padel (outdoors).
Left open, the card keeps up with the clock: the shaded hour moves on when the hour changes, and the weather is read again every new hour and at least every 15 minutes, so "Feels like now" is always this hour's.
Press Wearing this on the one you put on. It saves today's date on that outfit and its clothes, so the card offers something else tomorrow.
Wearing something different? Press I'm wearing something else under the options, tick what you have on (type in Search your clothes to find a piece fast; ticks are kept while you search; it starts from the card's suggestion, or from what you logged earlier today) and save. Changing your mind the same day moves the wear; it is never counted twice.
The Wardrobe page lists the clothes you own, the recommended additions and what to clear out.
How the outfits are chosen
- For each option, the card takes an outfit from the Outfits table that is in season (October to March is autumn and winter) and whose clothes are all owned.
- The outfit worn longest ago comes first, and an outfit you have never worn comes before all of them, so every outfit gets its turn before one repeats (3 Nov 2026). Once you press Wearing, that outfit stays on the card for the rest of the day.
- The weather then adds the rest:
| When | Out casual | Out smart casual |
|---|---|---|
| Feels-like low under 12° | Adds a jacket: the rain jacket if rain is 50% or more, else the casual jacket | — |
| Feels-like low under 10° | — | Adds the smart coat |
| Rain 50% or more | Swaps trainers for that option's leather boots | |
| Low of 6° or below | Adds a beanie | |
| Low of 4° or below | Adds a scarf | |
An outfit that already includes a jacket or coat gets no extra one. Stay at home never gets layers. The rules live in js/wardrobe-pick.js and are pinned by tests/wardrobe-pick.test.js.
Washing
Each day a piece is worn adds one wear. When it reaches its limit it goes in the wash: the card stops offering any outfit with it in, and 2 days later it counts as clean again by itself. Nothing to press.
| Type | Wears before washing |
|---|---|
| Tee and polo (next to the skin) | 1 |
| Shirt | 2 |
| Lounge (hoodies, sweatshirts, fleeces, joggers) and Knit | 3 |
| Sport and football kit (set on the piece) | 1 |
| Dressing gown (set on the piece) | 7 |
| Trousers, Shorts | 5 |
| Pyjamas (nights) | 3 |
| Jacket, Coat, Shoes, Accessory | Not counted |
Twins: identical pieces (your white tees, your white shirts) share a Twin group in Airtable. When one is in the wash, the card offers the outfit with a clean twin and Wearing logs the twin.
At the bottom of the card, Tonight's wash works this out for you from what you logged today: Into the wash tonight (pieces that reached their limit, with the day they are back in your picks) and Hang back up (pieces still under their limit, for example "1 of 5 wears"). Jackets, coats and shoes are never listed.
Tonight's pyjamas (31 Oct 2026) sits above Tonight's wash. It names the pair to wear tonight, which night of its 3 this is, and the night it goes in the wash, for example "Night 2 of 3. Into the wash after Sunday night". It finishes the pair you are part-way through before starting a fresh one; otherwise it picks the clean pair worn longest ago. Press Wearing these tonight, or pick another pair under "Or another pair". Pairs in the wash are listed with the day they are back. Pyjamas have their own Type, so they never appear in the day's outfits, in "I'm wearing something else" or in Tonight's wash, and logging tonight's pair never undoes the day's log (or the other way round).
On the Wardrobe page the Wash column shows where each piece is, for example "2 of 3 wears", and its own limit to change (blank = the usual, 0 = never counted). Washed brings a piece back early. The card picks the outfit worn longest ago. Between two outfits worn equally long ago, it picks the one whose washable pieces were worn longest ago, in any mix you logged.
Sport options
| Weather (feels-like low) | Football training (touchline) | Padel (outdoors) |
|---|---|---|
| Under 14° | — | A normal top skin |
| Under 10° | The long manager jacket (above 10°, the rain jacket when rain is 50% or more) | — |
| Under 9° | A thermal top skin | Thermal top skin, bottom skin and the Under Armour quarter-zip, in place of the normal skin |
| 6° or below | The Willingham Wolves beanie | — |
| 4° or below | A bottom skin | — |
From your diary: every hour from 06:05 to 22:05 the Mac reads today's calendar on both Google accounts. A padel session, or Willingham Wolves training or a match, marks its card "Today 19:30" and adds a chip at the top. Only the type and the time are saved, never the event's title. Winter Net Training is not counted.
Sport tees, skins and padel shorts go in the wash after each session. The touchline tracksuit bottoms and training top last 3 wears. Any clean Nike Run tee fills the Padel outfit, and the skins stand in for each other. A site visit layers like a casual day but keeps its site shoes.
Where the data lives
- Wardrobe table: one row per piece. Status is Own, Bought, Need, Clear out or Skip. Layer role marks the pieces the weather adds (rain jacket, casual jacket, smart coat, beanie, scarf, leather boots). Last worn, Previous worn, Wears since wash, Wash every and In wash since hold the wear and wash record.
- Outfits table: one row per outfit, with its option, season and linked clothes.
- Weather: Open-Meteo, free and with no key. It uses your location when the browser allows it, otherwise central Cambridge. Press "Use my location" on the card to switch.
To add an outfit, add an Outfits row, link its clothes and give it an Order number (lower comes first when two outfits are equally due; a row without one goes last).
Changing your clothes on the Wardrobe page
| You want to | Press | What it saves |
|---|---|---|
| Add something new | Add a piece on Current clothes | A new Wardrobe row, Status Own. Pick Replaces if it takes an old piece's place: it joins every outfit the old piece was in, takes over its weather job (for example the rain jacket), and the old piece moves to Get rid of. |
| Say a delivery came | Arrived on a piece marked New | Status Bought to Own. Until then the card never offers it: Bought means paid for and on the way. |
| Get rid of something | Remove, then choose Sell, Donate, Recycle or Site drawer | Status Clear out, with the action and reason. Nothing is deleted. Outfits that use it stop being offered until it is replaced. |
| Record a purchase | Bought it on Recommended additions | Status Need to Bought |
| Undo a removal | Keep it on Get rid of | Status back to Own |
A piece added without Replaces is listed but sits in no outfit yet, so the card does not offer it until an outfit uses it. If a save fails, the page undoes any part already saved and says so.
Health bar checks (Wardrobe page)
- Wardrobe table read
- Outfits table read
- Every outfit links to clothes that exist
- Today's weather read
- An outfit ready for every option today
Troubleshooting
- "No outfit ready for this season": every outfit for that option uses something not owned, or is out of season. Add or edit an Outfits row.
- "Today's weather could not be read": the options still show, without weather layers. Press Refresh on the Wardrobe page's bar.
- "That did not save": nothing changed in Airtable. Press Wearing again.