Kettle throws an error though: column "discount" is of type money but _expression_ is of type double precision.
The value in the offending insert is: 0.0
Why does Postgres decide that 0.0 is "double precision" (which is a weird name in my opinion -- why can't it just be double) and not money?
The lack of quotes surrounding the value is significant. Money input requires a string literal. Only (more or less) integer and double literal values can be written without the single quotes.
David J.