{
  "version": "v1",
  "note": "Research 007 five-occasion timelines. Profile facts come from recipient-bank-v1.json. 'update' is the new clue known before that occasion. 'given' and 'outcome' are pre-registered: what was given at that occasion and how it went, added to history for later occasions. The short condition only ever sees the base interests plus the current occasion update.",
  "timelines": {
    "r01": [
      {"occasion": "birthday", "budget": 70, "update": "She mentioned she would love a proper camera one day.", "given": "pottery workshop day", "outcome": "a big success, she booked another herself"},
      {"occasion": "Christmas", "budget": 60, "update": "She bought herself a good camera last month.", "given": "camera strap and lens cloth", "outcome": "uses the strap"},
      {"occasion": "birthday", "budget": 80, "update": "She now avoids fragranced skincare after a reaction.", "given": "BFI Player subscription", "outcome": "watches something most weekends"},
      {"occasion": "Christmas", "budget": 60, "update": "She started working from a small home office two days a week.", "given": "desk lamp", "outcome": "polite thanks, she already had one"},
      {"occasion": "birthday", "budget": 80, "update": "She mentioned cold hands cycling last month.", "given": null, "outcome": null}
    ],
    "r02": [
      {"occasion": "birthday", "budget": 60, "update": "He has been complaining about punctures on the new commute.", "given": "tubeless repair kit", "outcome": "used it twice already"},
      {"occasion": "Christmas", "budget": 50, "update": "He has switched to commuting by train three days a week.", "given": "Audible membership", "outcome": "listens on the train every day"},
      {"occasion": "birthday", "budget": 60, "update": "He has stopped drinking alcohol this year.", "given": "cast-iron pan", "outcome": "uses it constantly"},
      {"occasion": "Christmas", "budget": 50, "update": "He is planning a cycling trip in Normandy next summer.", "given": "WWII Normandy battlefield guidebook", "outcome": "already owned it"},
      {"occasion": "birthday", "budget": 70, "update": "He mentioned his knees ache after long rides.", "given": null, "outcome": null}
    ],
    "r05": [
      {"occasion": "Mother's Day", "budget": 45, "update": "She said the coffee grinder wakes everyone up.", "given": "quiet manual coffee grinder", "outcome": "loves the morning ritual"},
      {"occasion": "birthday", "budget": 60, "update": "She has joined a book club that meets monthly.", "given": "book club novel bundle", "outcome": "had already read two of them"},
      {"occasion": "Christmas", "budget": 50, "update": "Her swimming pool closed for refurbishment; she now swims outdoors in a lake.", "given": "changing robe", "outcome": "wears it every swim"},
      {"occasion": "Mother's Day", "budget": 45, "update": "She has gone fully retired.", "given": "flowers", "outcome": "nice but gone in a week"},
      {"occasion": "birthday", "budget": 60, "update": "She mentioned the cold water is hard on her hands and feet.", "given": null, "outcome": null}
    ],
    "r07": [
      {"occasion": "anniversary", "budget": 100, "update": "He has been talking about a baking course.", "given": "sourdough baking course", "outcome": "the best thing he did all year"},
      {"occasion": "birthday", "budget": 80, "update": "His running has turned into training for a 10k race.", "given": "running watch", "outcome": "returned it, he never wears a watch"},
      {"occasion": "Christmas", "budget": 70, "update": "He has started a new job and works from an office again.", "given": "insulated lunch box", "outcome": "uses it daily"},
      {"occasion": "anniversary", "budget": 100, "update": "He is sleeping better since the job change.", "given": "weekend in Bath", "outcome": "lovely, a little rushed"},
      {"occasion": "birthday", "budget": 90, "update": "He mentioned wanting to bake more bread for friends.", "given": null, "outcome": null}
    ],
    "r09": [
      {"occasion": "birthday", "budget": 50, "update": "She has started learning to cycle again after twenty years.", "given": "beginner cycling lessons", "outcome": "now cycles to the shops"},
      {"occasion": "Christmas", "budget": 40, "update": "She has finished decluttering and is proud of the empty shelves.", "given": "tea subscription", "outcome": "enjoyed it, did not renew"},
      {"occasion": "birthday", "budget": 50, "update": "She has started volunteering at a community garden.", "given": "gardening gloves", "outcome": "uses them weekly"},
      {"occasion": "Christmas", "budget": 40, "update": "She is learning Italian for a trip next year.", "given": "Italian cookbook", "outcome": "polite thanks, it went to a charity shop"},
      {"occasion": "birthday", "budget": 50, "update": "She mentioned her bike gets wet parked outside.", "given": null, "outcome": null}
    ],
    "r14": [
      {"occasion": "Valentine's Day", "budget": 80, "update": "She has said she misses having time to read.", "given": "audiobook membership", "outcome": "uses it on runs"},
      {"occasion": "birthday", "budget": 100, "update": "She finished the half-marathon and is now resting an injured ankle.", "given": "sports massage voucher", "outcome": "booked it straight away"},
      {"occasion": "Christmas", "budget": 70, "update": "The plant shelf is full and she has run out of window space.", "given": "grow light", "outcome": "the plants love it"},
      {"occasion": "Valentine's Day", "budget": 80, "update": "Her new job has calmed down and she has evenings back.", "given": "true-crime escape room for two", "outcome": "a great evening"},
      {"occasion": "birthday", "budget": 100, "update": "She mentioned wanting to try trail running.", "given": null, "outcome": null}
    ]
  }
}
