Three 90 minute trainer rides a week - what would you do?

How much do you value your time? The reason I ask is that it makes sense to invest in a direct drive turbo trainer, and a subscription to a cycling app or training program. Personally I race on Zwift once per week in early winter, and probably 2 - 3 times as it gets colder and I do less outside. A Zwift race, in a competetive series like ZRL (Zwift Racing League) will be 45mins - 1 hour max effort, depeding on the course, it could be a series of max efforts followed by short recovery, or it may be a constant FTP level effort. Last season, my FTP went from 330w to 350w through zwift racing. 90 minutes is about right for warmup, race and recovery.

For your one of the other sessions, you could do a structured program or join a training group ride at a set w/kg, there is a social element to these rides

For the final session, I would probably look at another race, but go for a slightly less intense series. The Crit City races tend to be easier

Not interested in Zwift, the trainer road have some great ftp building programs

I will look in to the direct drive trainers and cycling apps, I don’t really know what they cost but I certainly do value my time.

Any reason you’re not looking at TrainerRoad or Sufferfest? They have canned plans for raising FTP that guaranteed will work. Price can’t be beat. As long as you have a heart rate monitor they can track virtual power (so no power meter / smart trainer required). Seriously it’s a slam dunk in my opinion.

Trainerroad won’t estimate power from heart rate, and I doubt any other app will. At a minimum you need a speed sensor and a supported trainer (absent a smart trainer or a power meter).

The controversies around their plans (especially for triathletes) have already been mentioned, so I won’t dwell on the topic.

(To be clear - I’m a paying user, and I think the app is very good, though for a pure trainer app, if you’re fine with a phone-only app and your heart rate meter has Bluetooth, you might want to go with TrainerDay).