mi rispondo da solo
il valore era null perchè il ciclo for supearava i campi realmente esistenti
es.: ho 5 campi mentre con for arrivava fino a 30
1 ok
2 ok
3 ok
4 ok
5 ok
6 null
e quindi addio somma
ho messo un

if (document.getElementById('spese'+i)) {
somma = somma+parseInt(document.getElementById('spese'+i). value);
}

così se il campo non c'è non mi da null.
quelle poche volte che mi avvicino a javascript mi fa sudare sette camicie......
..... una somma figuriamoci per il resto