Generalmente trato de aproximar el tiempo en horas que me llevará hacerlo y después multiplico por el coste en horas que considere adecuado. Este coste en horas ya depende del país donde vivas, lo que aspires a ganar, etc.
A la hora de calcular el coste por horas, o el coste final, lo subo un poco si la web requiere programación o si es simplemente HTML estático. No es lo mismo cobrar por una hora de trabajo en HTML/CSS simple que una hora de trabajo con PHP/JQuery o algo así.
Pero si te soy sincero, lo que peor llevo de ser freelance es hacer un presupuesto.