Some train companies are charging peak rates well outside busy travel times, according to Which? magazine.
The East Coast train company and West Coast Main Line operator Virgin Trains both start their "evening peak" from mid-afternoon, Which? said.
It added that this meant East Coast's evening peak now lasted four hours. By comparison, others companies, including Chiltern and Merseyrail, did not have an evening peak at all.
Which? also said that other companies made things "very confusing" for passengers. For instance, East Coast's morning peak to London ends at 10.05am unless you are travelling first class, or travelling with an off-peak day return or travelcard or on a super off-peak ticket.
Other companies are more straightforward. Merseyrail's morning peak ends at 9.30am as does that of train company Northern at Leeds, Liverpool and Manchester.
Which? said it can pay to choose where you depart from. Travelling with Virgin, the earliest you can arrive off-peak at Euston station in London from Oxenholme in the Lake District is 10.12am.
But peak from Penrith in Cumbria (one stop and 30 miles from Oxenholme) to Euston lasts an hour longer. Which? said that Virgin said this was due to timetabling constraints caused by the Department of Transport.
Which? said: "You'd be forgiven for not knowing if you're coming or going, yet the Association of Train Operating Companies (Atoc) claims 'four out of five passengers are happy with their journey'."
Responding to the Which? article, an Atoc spokesman said: "Demand differs greatly at different times in different parts of the country, so it's not surprising that peak times vary.
"Millions of people travel on the railways every week and the overwhelming majority buy the right ticket and get on the right train with no problem whatsoever."