Calculate somewhere else
There will be times when you will need to process data in messages. This can be done in code in cProcessor components but not everybody is comfortable with reading/writing code.
You will also find that sometimes the same processing may be needed across several Routes. In order to make this processing reusable it is good practice to package this logic up in a Data Integration Job that can be shared amongst all areas that need that bit of logic. Data can be supplied in exchange messages as XML and Headers (for example) which DI can easily consume and output.