It is reasonably common in the oil refining sector to have production or supply arrangements with multiple participants. A refinery might make use of a nearby facility to process some of its intermediate streams in order to obtain more valuable unit feed or blend components. For example, you could send full range naptha to someone else for fractionating and take the heavy material back to use as reformer feed, while the sub-processor keeps the light. Or perhaps you send excess atmospheric bottoms to a plant that has spare VDU capacity or better residue upgrading, taking the VGO back as cracker feed while they make use of the vacres for bitumen or a coker. So, the originator ships over material A and receives B; the balance, C, is left with the sub-contractor

To make a good plan, these possibilities have to be included in LP model. If the arrangements are already quite specific as to prices, quantities and qualities, then you have to do what the contract says. You put those conditions around purchases and sales that represent the materials going in and out of your refinery system. The optimization is about fulfilling the terms as efficiently as possible so that you profit as much as possible from the arrangement.
But what if there is some flexibility built in, or you are still in the negotiating phase? In this case you have to give the model more room to optimize given a range of possible actions. How much material should you send? What is it worth paying for this extra processing?
With a processing deal, the quantity coming back will be related to the amount that was supplied. You can easily connect the purchases to the sales.

The sale and purchase are linked such that 20% of the quantity of residue is returned to you as VGO. The Atres is sold for the processing fee. The VGO purchase has a zero price.
You can work out prices by seeing what is transferred for a given sale price to represent the processing fee or look at the break-even prices for different quantities. This will give you some useful indicators.
However, you may well feel you need more detail to assess the options. The quality and quantity of what you get back is probably going to depend on the characteristics of what you supplied. If you don’t put some sort of relationship in between the properties of A and the amount and properties of B, then the model is likely to dump poor quality material into the transferred stream. At this point, people often decide that they need to add some representation of the sub-processor site in their own model. You can model it as a separate location and transport the material there. The streams that are exchanged are modelled as pools so they can have variable properties which transfer between the locations.

You can use a group limit to make a relationship between the amount out and the amount back. When A is distilled or treated or upgraded, the quantity and quality of B can be changed in response to the feed properties, improving the optimization of both the feed selection and the consumption of the returned material. The representation of the other facility might be a few simple vectors that just transform A to B, but I have seen people try to make a full model of the third-party plant, if they can get the data, in order to have a better view of the possibilities.
However, adding a representation for the processing, even a basic one, means that you also need to model some disposal of the retained material “C”. Possibly this is processed further or used on the site, but for thinking this through, let’s just assume that sooner or later the molecules are sold. A sale is easy to set up. But what price should you use?
Zero makes some sense. You don’t get any of the money from this, so it has no value for you. The objective function is correct – but model will always minimize “C” and maximize “B”. If it is a low value byproduct, such as fuel gas, then that is okay. However, if “C” would normally have some value, then you will underestimate the margin on the contract to the other company while at the same time possibly overestimating the amount of “B” they will be willing to make for you.
Market price? This is what the sub-contractor would see, and it will drive the model to optimize the processing in a more realistic way. However, the objective value covers the whole of the system – optimizing it overall. You don’t get the income for “C”, and the sub-contractor doesn’t get the value of “B”. For you the processing fee is a cost, for them it is an income. Even a facility for optimizing against two objective functions, would still assume some level of co-operation between the parties – that they might sacrifice some of their own profit for the good of the other. In reality each wants to optimize their own profits and doesn’t care if the deal ultimately benefits the other participant of not.
It also still isn’t a good representation of the economics that will drive the third-party facility. They do care about the value of “C” – but for them the value of “B” is the processing fee for “A”, but the model will be selling “B”. And what about utilities, and other feeds and products. These are going to affect what your sub-contractor wants to do, but not necessarily in the way that is best for you.
To really understand that third-party, you have to write a model from their point of view. Sellers of crudes do this all the time. They represent refineries by configuring generic models (like in our H/COMET tool) based on publicly available information, to determine what sort of profit margin the potential buyer has – to guide their negotiations. Doing the same thing with a process deal or exchange will give you some idea of the incentives that they see, and thus what they willing to pay for intermediate materials or accept as processing fees.
Of course, they have the same problem that you do – their economics depends on what you are going to do. How much material A are you going to supply and what quality is it likely to have? What is B worth to you? It would seem that you need to do this as an iterative process – where you establish the average and marginal values of the exchanged streams from each party’s point of view and do optimizations with that driving the pricing of the materials that are leaving or arriving from each site. Once you have used these optimizations to set up a good deal, then you can revert to concentrating on how to fulfil the terms of that contract.
From Kathy's Desk, 24th November 2025
Graphic courtesy of Nicola
Comments and suggestions gratefully received via the usual e-mail addresses or here.
You may also use this form to ask to be added to the distribution list so that you are notified via e-mail when new articles are posted.