Customize the close date in deals

I would like the ability to edit the default close date based on the average duration of our sales cycle. But then have a calculated actual based on the day the deal was created and when it was moved to a closed status.