What is the best approach to get the total amount of the expenses grouped per date?
A fold, adding a new element in the accumulator when a new date is encountered? (knowing that expenses are ordered chronologically) Or is there a better way?
The idea to fold over the list and accumulate results in an associative container sounds solid.
But the most straightforward solution would be to just use Seq.groupBy followed by Seq.sumBy:
(* get your sequence of records here *)
|> Seq.groupBy (fun { Date = it } -> it)
|> Seq.map (fun (date, it) ->
date, (it |> Seq.sumBy (fun { Amount = it } -> it))
)