Current state
Does R1 follow the feed?
Feed nitrogen, monthlyR1 WABTClick a month to select it
Middle distillate output, bbl/day 7-day average
Where each barrel of fresh feed went, month by month
Diesel
Kerosene
Naphtha
LPG
Unconverted oil to FCC
Metric card (large)
Barrels on the table, this run EIA prices
In operations' control (R1 and R2)
Average gapbbl/day
Workshop · Chart XY (waterfall via stacked bar) · GapAttribution
Where the barrels go, and who owns them
Estimates, attributed in order: upset days first, then what the choice cascade would have recovered with R1 and R2 at each month's feed while holding conversion (the default objective), then the extra nitrogen in the feed compared with this run's easier months. Feed rate is set by planning and is not counted here.
Metric cards · MonthBaseline (feed lab, forward-filled)
Feed · givenWhat came in this month
sets R1’s work
Numeric slider + band (Workshop) · evaluateCascade()
Choice 1R1 temperature (WABT)
N slip
Metric card · evaluateCascade()
ConsequenceNitrogen slip into R2Estimated, not measured
R2 needed
Numeric slider + band (Workshop) · evaluateCascade()
Choice 2R2 temperature (WABT)
conversion
Metric card + stacked bar · evaluateCascade()
ResultConversion and product split
priced
Metric card (large) · evaluateCascade()
ValueNet value per dayEIA prices · costs illustrative
Workshop · Chart XY (line + area layers)
Last 90 days, bbl/day of middle distillate
Actual
Best demonstrated
At these settings
Sensitivity range
Metric card (large)
Net value per year at these settings EIA prices · costs illustrative
Metric card
Middle distillate
Metric card
Catalyst run
Workshop · Chart XY (line + area layers)
Actual
At recommended settings
Sensitivity range
Best demonstrated
Object table + action buttons (writes Recommendation object)
Recommendation
| Lever | Now | Recommended |
|---|---|---|
| R1 WABT | ||
| R2 WABT | ||
| Feed rate set by planning | unchanged |
Ramp plan
| Step | R1 | R2 | Check before next step |
|---|
Engineering detail and assumptions
- Middle distillate (MD) yield is kerosene + diesel as a percentage of fresh feed. Conversion is 100 minus unconverted oil (vol % of fresh feed). The refinery's commercial target for this run is 64% conversion.
- Feed rate is not a lever. Planning sets it. Running below design capacity is an opportunity loss that belongs to planning, so it is shown but not optimised.
- Feed sulfur and nitrogen come from the lab, sampled every one to three days. Each day uses the latest sample up to 7 days old; the sample age is shown.
- Choice cascade. Feed nitrogen and the R1 temperature set an estimated nitrogen slip into R2: about 10 ppm at this run's typical feed and R1 practice, falling about 6% per °C of extra R1. Each extra ppm of slip takes about 0.6 °C of R2's effective temperature. Conversion then moves with R2's effective temperature (fitted on this run's data, capped at 1.0 point per °C). Hotter R2 over-cracks: the middle distillate share of conversion falls 0.33 points per °C of R2 and 0.24 points per point of extra conversion (fitted on Run 6 weekly data). Nitrogen slip is not measured. Its link to R2 is the process engineer's mechanism, set between what the data supports and the engineer's rule of thumb.
- What the data shows. In Run 6, R1 rose 0.20 °C a month while R2 rose 0.41 °C a month. In Run 5 the two rose together (0.45 and 0.39). At a steady feed rate, feed nitrogen lowered conversion. In Run 6, R1 was not raised for harder feed.
- Model proposal. The model searches R1 from −3 to +5 °C and R2 from −4 to +3 °C around the month's actual values, in 0.5 °C steps. It keeps each reactor inside its operating band, keeps conversion within 0.5 points of actual or up to the 64% target ("Hold conversion" keeps it within 0.5 points), and uses only settings with at least 10 days this run at a similar offset from the catalyst-age trend (±1.5 °C on both reactors).
- Operating bands (start of run, advisory, end of run): R1 375 / 405 / 410 °C and R2 385 / 410 / 415 °C. End of run is calibrated so R2 reaches it in Sep 2025, the licensor's projected end of catalyst life; start of run and advisory are assumed. The licensor's cited R-1 inlet guidance (355 °C advisory, 360 °C hard) and top-bed rise (25 °C) still apply and are checked at build time.
- Catalyst life. The run ends when the first reactor reaches its end-of-run temperature. Months left = degrees left ÷ that reactor's rise per month, with deactivation about 3.5% faster per °C hotter. A catalyst change is valued at the cost below, spread over a 48-month run.
- Hydrogen. 0.5 Nm³ per m³ of reactor feed per °C of average reactor temperature (rule of thumb).
- Ranges show the value if the R1→R2 link (nitrogen slip) is 50% weaker or stronger and the R2→conversion response is 20% weaker or stronger. Daily noise is larger than the effect, so value should be judged over weeks, not days.
- Physical constraints are not operating choices. Equipment limits downstream of the reactors, or running below design feed because feed isn't available, are reliability and planning issues. The model only answers whether the unit ran at the right temperatures for the feed it received. Days with an active physical constraint should be flagged and left out of the recommendation and the gap; upset days already are. This needs an equipment and constraint log from the refinery.
- Ledger steps are attributed in cascade order: R1 first, then R2 on top. R1 gets credit for the room it makes for R2.
- Per day and per year. Per day uses the selected month's prices. Per year uses the run-average price × 350 operating days, so a single high- or low-price month isn't projected over a whole year. The gap waterfall uses the Hold conversion objective, the same one the page recommends.
- Prices come from EIA monthly spot prices (US Gulf Coast, a proxy for the Singapore prices an Indian refinery uses). Cracks are measured against Brent; naphtha is US Gulf gasoline less $10/bbl; unconverted oil is valued at Brent less $3/bbl (FCC feed). Each month's middle distillate and naphtha + LPG barrels are valued at that month's crack over unconverted oil, weighted by the month's product split. In the build, the client's own price deck replaces this.