For Crystal 8.5, a command like
DateAdd ("m", -3, {billing.date})
would get you a date three months ago. The comlpication in your case is the variable, {billing.frequency}. I don't think the command would accept a variable, though it might. Otherwise you'd need a series of tests,
if {billing.date} = 3
then DateAdd ("m", -3, {billing.date})
etc.
Madawc Williams
East Anglia, Great Britain