Here in Berlin the idea floating around is to make yearly tickets very cheap (365€), while keeping prices for single travel (2.80€) or daily tickets (9.50€) more expensive. That's probably the easiest, least bureaucratic route to go.
For poorer households, the yearly ticket will still be subsidized, but the public transport companies (fully owned by the state) will still have direct income to maintain a corporate-like structure.