Quem vai assumir o risco? O fornecedor ou o cliente? Desenvolver software como qualquer outro produto implica em riscos. Na hora do orçamento não há tanta diferença entre um programador e um pedreiro. Ambos vivem de vender seu trabalho.
Vamos às dicas básicas:
(1) para calcular seu dia de trabalho (esquece hora que é fino demais para um projeto de informática) você pega o que seria seu salário no mercado (ao menos o piso da categoria) multiplica por dois (previdência, tributos etc.) multiplica por 13 (12 meses mais 13º) e divide por 160 (provavalmente a quantidade de dias úteis que um profissional autônomo consegue faturar por ano.
(2) então faz um projeto, mas daí é preciso saber que estimativa não é chute e que orçamento não é feito com estimativas, então você precisaria, em tese, ser remunerado pelo planejamento do projeto, daí, projeto em mãos, você poderia ter um projeto com preço fixo e margens de erro (atrasos com cobrança de adicionais) previstos em contrato (25% é uma boa margem para aditivos).
(3) usa algo pronto, ou que ao menos já tenha saído do zero. Um programa de gestão de cemitérios, que ainda não está pronto, mas que já teve várias etapas cumpridas como a modelagem de dados e infraestrutura básica, é o Epitáfio, a questão é que é GPL, mas essa também é uma ótima forma de proteção tanto para fornecedor quanto para cliente, o software ser dsenvolvido GPL desde que seja especificado em contrato quem é o autor, se o cliente ou o desenvolvedor/).
(4) deixa claro em contrato que o valor total do projeto é apenas uma estimativa, que o cliente deve desembolsar mês a mês, aprovando o trabalho realizado e autorizando o trabalho a ser realizado no mês seguinte, com direito de desistir ao final do ciclo, aliás, usa scrum, xp ou qualquer coisa semelhante. Mete uma coisa na cabeça: desenvolvimento de software é prestação de serviço, pois tem cliente que vai querer pedir "devolução" do dinheiro pago em caso de desistência no meio do projeto!
(5) Desenvolver qualquer coisa nova é algo necessariamente caro e arriscado. Quem assume risco é empresário e deve ter um plano de negócios viável. Desenvolvedor não assume risco em nome de empresa cliente. Se o cliente quiser que você assuma os riscos, saia da relação o quanto antes.