I wondered if modding could be used to improve the trade system, but it's beyond remedy without access to source code (except the trade routes). As it is right now it has some good simple approaches, but it's still a heap of cog wheels instead of a clockwork.
Profitability
One good aspect currently is to sum up the value of all ingredients and add a profitability per item to it. But then it's plain wrong to give the player only half of this, because there is a global multiplier for the difference between buy and sell prices.
Because of this it's now impossible to buy ingredients, cook some food and sell it with a profit. If effort was put in it, the price one gets for it should reflect this.
Profitablity is the difference between buy and sell price. And this should have a random variance per shopkeeper, not the buy price. That way a player needs to check all shops in town to find the best sell price for a certain item. Not just unload everything in the first shop.
Suggestion: Define the base (sell; from a players perspective) price via the ingredients, but leave profitability out of it and to the shopkeeper. Profitability per shopkeeper should have different factors like item type, faction relations, local trade culture and of course randomness (which handles the rest like his personal greed, number of children, whatever).
Trade routes
Because there's no system which models demand and supply which would lead to dynamic trade routes a player can influence, Kenshi needs more trade routes via the trade culture. This is currently only used for swamp, southern UC and slavers and therefore restricting real trade playthroughs to these regions.
What helps here is the already present hierarchy of items as their value rises if the price for the ingredients rise. That means if wheat doesn't grow in some region and the base price is defined higher then the price of everything based on wheat will rise in turn. Just be careful with the price of water as it makes sleeping bags more expensive.
Suggestion: Define trade routes using more trade culture templates all over the map taking local needs (e.g. lots of water, no wheat) into account.
Global price mutlipliers
Please get rid of them, they are crude. Because they apply to the whole map it's not worth traveling around.
A shopkeeper has to buy low and sell high and this depends on item type, because a shopkeeper needs to clean the blood stains out of any armor a player brought (maybe put in a dialog line for this?