I do a consult first with potential clients to assess and discuss goals to see exactly what they need. This will give you a chance to give the client an individual time-frame based on goals. It also gives you a chance to really connect with the client–which is an important factor in retention.
I offer packages from starter 3 session package, to 20 sessions (which offer a small percentage off the hourly rate). Clients pay up front for their package. The majority of my clients are long-term, and just re-purchase their packages when sessions run out. This has worked for me and I retain my clients for long periods of time (many for years).
If contracts work for you, perhaps shorten the time-frame a bit, and offer an “8 week” or “12 week” special. Weeks sound shorter than months. Hope this helps!