Surface this in some way. You don't have to make every part of the calculation available in every contract, but if you pick out a couple variables every time and make the player aware that the price reflects that, it will help immersion and decision making.
cgw: "We're on a tight budget, but we really need this shipment to go through for our company to survive. We can offer ..."
bc: "Don't expect us to offer you top dollar hauling fertilizer."
hp: "We're adding a bit extra because this takes you through the west belt. You might want to buy some chaff and torpedoes with that bonus."
d: "This is a long haul out to the ice belt, so we compensated you accordingly."
You don't need to be explicit, or mention every factor in the contract. But pick a few outlier values in the factors that made up the price and include algorithmic descriptions related to those outliers. Outliers should be things that set a run apart from the others available at the station. For example, in a safe zone you might mention when a shipment goes through a dangerous area, but on a frontier outpost it might be the safe milk-run that is rare and gets a mention for how safe it is and thus why it pays less.
You can make the formula as complex as you like, but if you don't describe it to the player, if you don't surface that complexity in some way, you might as well use a random number generator for all the value the player will get from it (other than game balance).