Introduction
Kpler Arbitrage is designed to help oil market professionals make faster, data-driven decisions about physical crude trading. It synthesizes real-time data from price reporting agencies (PRAs), brokers and shipbrokers, and refinery models to calculate landed values, refining margins, and arbitrage signals. By eliminating manual spreadsheet work and disconnected models, Kpler Arbitrage delivers a timely structured view of trade opportunities. Within seconds, users can assess if moving a cargo from Point A to Point B is profitable, and to what extent that opportunity is being acted on.
Landed Value
Landed values represent the total value of a crude oil barrel at its destination, factoring in all associated logistics and market adjustments. This includes freight charges, the impact of time structure, as well as operational costs like inspection fees, demurrage, and financing.
Each grade of crude is linked to a specific loading port (the origin), and each destination is tied to a single representative port (see Figure 1) that serves as a pricing center due to liquidity and data availability.
Additional factors include the type of vessel used, the selected shipping route (such as via the Suez Canal or the Cape of Good Hope), and the timing of the loading or discharge window. We assume voyage duration to be distance at 12.5 knots + 3 days for load/discharge + 1 day for Suez transit (if applicable).
The formal calculation is: Landed Value = FOB Differential +Time Structure + Costs + Freight + Financial Arbitrage (if benchmarks differ) to Destination Benchmark
This formula creates a normalized basis for evaluating different crude grades, enabling consistent comparison regardless of origin or timing.
The computation relies on a range of data sources, including Price Reporting Agencies (PRAs), market makers, shipbrokers and news sources, covering spot and forward pricing.
Time Structure
Time structure plays a crucial role in reflecting the value of oil over time and aligning prices of the voyage periods.
How is the time structure computed?
The time structure calculation begins with the reference benchmark for the physical differential (diff) at the load port.
If the crude differential is expressed against a physical price reference (e.g., Dated, Dubai), we use the corresponding swap for the month of loading. If it’s expressed against a swap or future, that value is used directly.
The arrival date is determined by adding the voyage time to the loading date.
We then use the relevant tenor (pricing period, e.g., a specific month) for the origin benchmark that corresponds to when the vessel discharges.
The difference between the loading tenor value and the discharge tenor value gives the intermonth time structure. We also make an intramonth adjustment to account for voyages that don’t last exactly a month.
Which benchmarks are we using per discharge region?
When isn’t the time structure linearization process used?
The linearization process is not adopted for crudes priced by National Oil Companies (NOCs). When NOCs sell their crude, they publish an Official Selling Price (OSP) at a premium versus a benchmark (typically ICE Brent, Dated, Oman-Dubai average, or ASCI). This benchmark is the average value for the entire loading month (which becomes known after month-end). Consequently, there is no pricing difference between loading on the 1st versus the 31st of the month, so time structure effects within the month are not applicable.
Freight
Freight is a key cost component and is handled using a blend of observed and modeled data. Where available, Kpler uses direct spot market rates for relevant routes and vessel classes. When this data is missing or unavailable, Kpler imputes values by adjusting freight rates from similar trade routes. This process includes vessel class normalization, which reflects the fact that different vessel sizes have distinct cost structures. The extra charges for port or canal costs are also taken into consideration.
To ensure freight rates are aligned to the precise voyage schedule, Kpler uses FFA curves and interpolates these to create a daily rate series. This enables the integration of freight costs into the broader landed value calculation on a day-by-day basis.
Linearization of freight time structure
Linearization of the freight time structure addresses the disconnect between standard valuation methodologies and real-world trading practices.
Why do we linearize the time structure?
A standard methodology for computing values would see that a vessel loading on the 1st of the month would have the same spot differential against the same tenor as one loading on the 30th of the month, even if the market is in strong backwardation.
This contrasts with physical trading practices, where an early-month loader typically commands a premium compared with a late-month loader in such backwardated scenarios.
Therefore, we introduced the concept of linearizing the time structure to account for intra-month loading date variations.
Costs
Demurrage
A fee incurred (usually by the charterer, payable to the shipowner) when a vessel is delayed beyond the laytime agreed in a charter party.
Computation: Demurrage fee per barrel = (Demurrage Rate * Number of Days) / Loaded Quantity.
The demurrage rate is based on a daily market rate.
Assume 3 days of demurrage.
Working capital
Traders often use bank financing for trades. Money is typically borrowed to pay for the commodity at the load port and is reimbursed upon trade completion and payment receipt. Our model assumes longer voyages incur higher financing costs.
Computation: Working Capital cost per barrel = (borrowing rate * price per barrel * voyage duration)/365.
The borrowing rate is assumed to be the US Federal Reserve rate + 1% premium.
Losses
A standard charge of 0.15% of the cargo value is applied to account for in-transit losses.
To account for losses at load port (such as tanks, pipelines, evaporation), in transit (left in cargo tanks), discharge port (tanks and pipelines).
Inspection costs
A fixed fee applied on a $/tonne basis.
Other cost types
For US-loading crude grades typically transported via pipeline to the port, a ‘dock fee’ is added to make the Free on Board (FOB) differential.
Financial arbitrage: conversion factor
In many trading scenarios, the benchmark used to price a crude oil grade at its origin may differ from the benchmark used at its destination. For example, Johan Sverdrup cargoes loading in the North Sea are typically priced against Dated Brent. However, when these cargoes are delivered to regions like Shandong, China, the pricing benchmark shifts to Dubai. To address this discrepancy and normalizes the data, Kpler incorporates a conversion factor between the origin and destination benchmarks. The Arbitrage tool is designed to present tradeable benchmark differentials, such as WTI-Brent, WTI-Dubai, and Brent-Dubai. However, users should be aware that load-port benchmarks may be expressed as swaps rather than futures, which include additional terms that can result in small discrepancies between displayed and officially listed financial arbitrage values.
Computation:
Align origin benchmark to discharge tenor
Compare to destination benchmark on discharge tenor
Calculate the spread
Crude Margins
While landed values represent the price of crude at a destination, crude margin analysis reveals value. Because delivered crude pricing is often opaque and illiquid, refining margins serve as a proxy for assessing a refiner's willingness to process a given crude.
Kpler computes three types of margins to reflect different refinery configurations:
Simple (Hydroskimming): minimal processing capability
Medium (FCC-VBR): typical mid-complexity setups
Complex (FCC-HCK-COK): full-conversion refineries with advanced upgrading units
Different crudes affect the margin calculations. The yields are based on the specific assays (quality characteristics) of the different crudes. We also account for regional variations in typical refinery output (e.g., maximizing gasoline output in the US). We also account for different products based on the sulfur (fuel oil output), but also account that higher sulfur crude yields a less finished product on a mass basis, as sulfur is removed.
Margins are generated using forward product prices, region-specific yield assumptions, and detailed crude assays. This enables traders and refiners to simulate how different grades would perform across various configurations and locations.
For each trading region, we have developed forward curves for each refined product. This allows us to compute a margin for each delivery month. We do not use finer granularity than monthly, given the constraints refiners face in selling refined product cargoes. For clarity, the refining margin calculations used in the Arbitrage model follows the same methodology as the refining margins of the Insights team.
Arbitrage: reference crudes
Despite a refining margin of an imported grade being positive, if a refiner has a local alternative that produces the same or higher margin, the incentive to import a crude from further afield would be smaller. To determine whether an arbitrage is open or closed, Kpler compares the refining margin of an imported crude to that of the regional sweet or sour reference crude. Reference crudes are carefully selected. The criteria for selecting the specific reference crudes are:
Liquidity: Transparency often correlates with high liquidity. Both are necessary for visibility along the forward curve to establish reliable arbitrage signals.
Slate-aligned: Refineries are typically configured with a base set of crudes (and their associated assays and yields) in mind, making these crudes more widely used and representative of a value in a given region.
Locally dominant: The reference crude is not typically shipped out of the production region.
We therefore identify reference crudes for each trading region that are part of the typical refinery slate and are locally produced (if possible, i.e., not already arbitraged out of the region). We also recognize that sweet (low sulfur) and sour (high sulfur) crude markets are distinct. Thus, we establish one reference crude per region for each sulfur content category.
The arbitrage is considered open when the traded crude generates a superior refining margin compared to the local benchmark. This allows for a normalized view of value.
Signal definition
Arbitrage open = Imported crude margin > Local reference crude margin
Combination choices
What criteria or market realities determine which combinations of grade, origin, destination, and vessel class are available?
Various real-world factors dictate viable combinations, such as port infrastructure (draft or beam restrictions), canal limitations, or refinery configurations. For example, VLCCs, while potentially cost-effective due to economies of scale, require deepwater ports. New York is a port VLCCs cannot access. Similarly, a fully-laden VLCC cannot transit the Suez Canal, whereas a fully-laden Suezmax can.
In some instances, certain grades are traded only in specific parcel sizes (e.g., BTC Blend trades exclusively on Aframaxes). There are also cases where some grades are simply not (or very rarely) moved to certain regions (e.g., North Sea crudes to the US West Coast).
What filters or constraints (e.g., data quality, market liquidity, strategic importance) are applied to limit these combinations?
As mentioned, due to market constraints such as transparency, liquidity, and the resulting availability of forward markets for refined products (see section on Crude Margins to learn why these are necessary), we generally consider one primary port per trading region (see Fig.1). This port is chosen for being a pricing center and/or having the most liquidity.
The dashboard
The user interface is structured around a matrix and supporting modules that allow for deep exploration of arbitrage signals.
Search panel
Search panel filters: Users can filter by origin or destination, selecting which perspective they want to take - whether they’re an importer comparing landed costs or an exporter analyzing best outlets. Crude grade, granularity, vessel type, and refinery complexity are all configurable. Users can also switch between landed value, refinery margin, and arbitrage view types.
Split By is the primary filter that allows users to tailor the perspective from which they view the arbitrage
In Split By Origin, users are able to view arbitrage signals for a specific crude grade in a specific destination region, from the point of view of an importer or refiner.
In Split By Destination, users are able to see how a specific crude grade compares across various destination regions, from the point of view of an exporter or producer.
Destination: When in Split By Origin, this filter allows users to specify which region they want to see arbitrage signals for, given a certain crude grade.
Grades: Allows users to select the crude grade they are interested in seeing signals for.
Matrix Granularity: Gives users the ability to vary the level at which they are observing loading/discharge windows. The date used for the computation of the period is the middle day. There are three levels of granularity:
Monthly
10-day
5-day
Value Type: Allows users to filter the type of value shown in the matrix
Landed value: The value of a specific crude in a destination region versus the cost at origin less costs, freight and time structure. This value type is only available in the Split By Origin view. If it were selected in the Split By Destination view, this would mean computing netback prices which was infeasible due to a lack of delivered price assessments.
Margin: The value provided by a specific crude in a destination region given that crude’s assay, regional and refinery yields, and the forward value of the refined products yielded.
Arbitrage: The difference between the margin yielded by the arbed crude versus the reference crude in a destination region
Refinery Type: Allows users to select what margin or arbitrage values they see based on which (one or more) refinery types are selected.
Simple (Hydroskimming)
Medium (FCC-VBR)
Complex (full conversion FCC-HCK-COK)
Vessel Classification: Allows users to select a specific vessel class
VLCC
Suezmax
Aframax
Arbitrage matrix
Arbitrage matrix: The arbitrage matrix presents computed data, showing positive or negative signals using red-green coloring or a grey scale. Rows represent grades or delivery regions; columns reflect time windows. Cells update every 15 minutes to reflect the latest data inputs.
How is the matrix structured (e.g., what do rows and columns represent)?
Columns: Represent either loading windows (Split By Destination) or discharge windows (Split By Origin).
We use the mid-date of the period as the reference date (e.g., for May 1-5, May 3 is the reference; for May 11-20, May 16 is the reference).
Rows:
Split By Origin: Each row represents a single grade, associated with a specific load port (e.g., Forties will always be associated with loading at Hound Point).
Split By Destination: Each row represents a single delivery region, modeled by a specific port (e.g., NWE is Rotterdam).
Split by Vessel Type: In some cases, the same crude grade can be represented by on different rows with different vessel types.
(Coming soon) Split by Route: The trade can be shown on different rows depending on voyage options (e.g. COGH or Suez).
What metrics or values are displayed in the matrix?
To the left of the matrix, the product (crude grade) is displayed in blue. Below it, in its own cell(s) within the product segment, is the applicable vessel class.
'S', 'M', and 'C' on the left indicate refinery types: Simple, Medium, and Complex, respectively.
The cells display landed values, margins, or arbitrage values, depending on the filter selections.
What visual indicators (colors, icons, etc.) are used to denote open vs. closed arbitrage?
When 'Margin' or 'Arbitrage' filters are selected, cells are colored:
Green: Arbitrage is open (profitable).
Red: Arbitrage is closed (not economical).
When the 'Landed Value' filter is selected, cells are colored on a grayscale based on the minimum and maximum values within the matrix. Cells are not colored red or green because a landed value represents a price rather than a profit or a loss.
In all configurations, a "+" sign precedes positive values, and a "-" sign precedes negative values.
How are missing or outlier data handled in the matrix display?
If no data exists for a specific loading/discharge window, no cell is displayed for that period.
How are values sorted?
Landed Value: Since lower landed prices are more desirable, values are sorted from smallest to largest, based on the first column where all values for a delivery window are populated.
Arbitrage and Margin: Higher values indicate greater potential profit and are thus more desirable. These values are sorted from largest to smallest based on the first column in which all values for a delivery window are filled. If multiple refinery types are selected, values within a product are sub-sorted by refinery type: Complex, Medium, Simple.
How frequently is matrix data updated, and what latency should users expect?
Currently, the Arbitrage Matrix refreshes approximately every 3 hours.
Flows x rolling arbitrage time series
What is this module, and what does it signify?
This module plots physical oil flows and an arbitrage price series on the same graph.
A blue-gray line represents a 28-day moving average (MA) of physical flows, shown on the primary Y-axis (Left Hand Side - LHS) in thousands of barrels per day (kbd).
A Kpler orange line represents a rolling time series of either landed value, margin, or arbitrage, shown on the secondary Y-axis (Right Hand Side - RHS) in USD/barrel ($/bbl). The arbitrage price series displays values for trading days, with non-trading day values carried forward from the previous trading day.
This overlay graph allows users to quickly view present and historical correlations between arbitrage economics and physical flows, highlighting how arbitrage opportunities impact trade flows.
Why use a 28-day moving average for flows?
The 28-day MA is selected to reduce the noise and sporadic nature inherent in daily flow data. Conversely, a simple monthly average might lack representativeness, as oil markets can be busy and strong early in the month but quieter and weaker towards the end.
How are the flow values computed, and which data points feed into this module?
Without a specific cell selection in the Matrix:
Split By Destination view: We are looking at a specific grade for export. The flow direction is therefore 'export' from the grade's origin.
Split By Origin view: We are looking for a specific trading region to import crude into. The flow direction is therefore 'import' into that destination region.
When a cell is selected in the Matrix:
The graph refines to show a trading region-to-trading region flow. It is not further refined (e.g., port-to-port) because reported flows at such fine granularity are often too small to show meaningful correlations with arbitrage economics.
For example, flows of a specific grade from one port to a sub-region might be infrequent, making it hard to correlate with economic openings. Broader regional flows yield more significant insights.
What is the time window used for the rolling arbitrage calculation, and why was this specific window chosen?
The time window for the rolling arbitrage calculation depends on the granularity selected in the Matrix (Monthly, 10-day, or 5-day). For example, if 5-day granularity is selected, we use the first 5 tradable days where the arbitrage is feasible and data is complete. Similar logic applies to 10-day and monthly granularities.
How are flow metrics correlated with the rolling arbitrage values?
Physical flows at a given time often result from an arbitrage window that traders acted upon in a preceding period. When arbitrage economics improve sufficiently to incentivize action, there will be an operational lag between when those economics turned positive and when the corresponding physical flow emerges.
It may happen that a profitable arbitrage doesn’t result in physical flows for a few reasons: better arbitrage opportunities elsewhere, refineries not appropriately configured (or not having enough capacity) to process specific crude (heavy sours for instance), long term contracts/deals that result in limited flow being available for exports.
Sankey diagram
The sankey diagram illustrates the volume and direction of crude flows between regions, with color showing arb status and bar width indicating relative magnitude. This module visually represents the significance of open and closed arbitrages, weighted by physical oil flows. The numerical values in the arbitrage matrix do not, by themselves, indicate the volume of physical flow that exists or will necessarily occur. For example, a specific arbitrage might appear very widely open, but due to physical or operational constraints, it may not be acted upon, meaning a large flow won't materialize.
What specific data points (origin, destination, volume, etc.) are used to generate the Sankey diagram?
This module displays the volume of flow between regions.
In Split By Origin view, a solid gray bar represents the origin trading region of a specific crude grade. Volume-weighted red and green bars extend from this origin to the top five destination regions.
The width of each red or green bar is normalized to the magnitude of the rolling 12-month flows of that specific grade, with all vessel classes grouped together.
What determines the color-coding (red/green) on the flow weights?
The red and green colours are informed by the first rolling margin/arbitrage value. Grey values are used for crude grades that are illiquid and as result have limited-to-no price available (and as such an arbitrage cannot be computed), and for cargoes that Kpler’s flows algo and analysts cannot assign a grade to.
How is the width of each flow link calculated (e.g., based on volume, fixture count, etc.)?
The width of each flow link is dictated by its relative share of the total flow volume for that grade over the last 12 months.
Cumulative fixtures
The cumulative fixtures chart shows how active the market is in responding to arbitrage signals. Fast accumulation suggests traders are leveraging the opportunity. This module helps users gauge market activity and see whether, or to what extent, an arbitrage has been booked. This indicates if the arbitrage opportunity is likely to revert (close) soon. It also reduces the manual effort of checking fixture reports and cargo tracking data to understand how far an arbitrage is from being fully actioned.
What does the chart signify?
The module charts accumulated cargo volumes for each newly reported fixture. It plots the volume of newly reported fixtures against last month’s booking pace and the average booking pace over the past year.
The X-axis shows days relative to the start of the loading period.
The Y-axis shows the cumulative volume.
Each time a new fixture is booked, the line for the corresponding month moves up by the estimated cargo tonnage.
If the current month’s line outpaces the previous month’s, it indicates firm booking activity, signaling that flows are likely to increase and an arbitrage is being actively leveraged.
What is the source of fixture data, and how reliable is it?
Fixture data is aggregated from shipping market data. We use the initial reported date (the first time any shipbroker reported the fixture) as the reference for each fixture.
How is the cumulative fixture value computed (e.g., simple aggregation vs. adjusted for cancellations/updates)?
We only consider fixtures with statuses of 'On Subs,' 'Fully Fixed,' 'In Progress,' or 'Finished.' If a fixture was reported but subsequently canceled or failed, and we receive that update, it will be removed from the count. Initially, it might be counted if the cancellation information is delayed.
What specific details are available in the pop-up for fixture information, and how are they prioritized?
The pop-up feature displays reported fixtures ordered by their reported date.
Other information includes Vessel Name, Quantity (in '000 metric tons - kt), Charterer, Origin, Destination, and Start of Laycan (loading window).
How frequently is fixture data updated, and what latency should users expect?
Fixture data is updated as and when we receive new information from our sources.
Why EUROPE & APAC when searching for NWE/MED/EAST/SE ASIA?
The nature of fixture reports make the data quite vague when it comes to the actual destination. Hence loadings out of WAF/USGC will often specify “UKCM” standing for Europe (instead of UKC for NWE or MED). Therefore, in order to still show a chart with relevant data (as MED & NWE are quite close in terms of Arbitrage opportunities), whenever looking for MED or NWE, the chart will show EUROPE bound fixtures. The same goes for EAST/SEASIA which will be grouped under APAC.
Summary module
This module provides a detailed breakdown, numerically and graphically, of an individual cell selected in the Arbitrage Matrix, showing key information and the constituent elements of the arbitrage calculation.
Information Included: Origin, Destination, Vessel Class, Quantity, Load Dates, and Discharge Dates.
Arbitrage elements displayed: Margin, FOB Differential, Time Structure, Costs, Freight, and Relevant Conversion Spreads (e.g., WTI-Brent).
The accompanying graph plots these individual arbitrage elements on a time-series chart, helping users identify which particular component(s) may be driving or detracting from the arbitrage economics.
Glossary
ASCI: Argus Sour Crude Index.
Arb: Abbreviation for Arbitrage.
Backwardation: A market condition where prices for future delivery are lower than prompt (current or near-term) prices. Indicates prompt tightness.
CIF (Cost, Insurance, and Freight): Incoterm where the seller also pays for marine insurance against loss or damage during carriage. Risk transfers when goods pass the ship's rail.
COGH (Cape of Good Hope): A shipping route around the southern tip of Africa, often an alternative to the Suez Canal.
COK (Coker): A refinery unit that upgrades heavy residual oils into lighter, more valuable products and petroleum coke.
Contango: A market condition where prices for future delivery are higher than prompt prices. Can indicate oversupply in the prompt or storage economics.
Dated Brent: A benchmark crude oil price representing physical cargoes of North Sea Brent blend crude that have been assigned a specific loading date.
Demurrage: A fee paid by the charterer to the shipowner if a vessel is delayed beyond the agreed laytime for loading or discharging.
DES (Delivered Ex Ship): Incoterm where the seller delivers when the goods are placed at the disposal of the buyer on board the vessel at the named port of destination, not cleared for import. Seller bears all costs and risks to bring goods to the named port.
Diff (Differential): The price difference between a specific crude grade and a benchmark crude, or between two benchmarks.
East: Roughly China, Japan and Korea
FCC (Fluid Catalytic Cracker): A refinery unit that converts heavy gas oils into lighter, higher value products like gasoline.
FFA (Forward Freight Agreement): A financial forward contract that allows ship owners, charterers, and speculators to hedge against or speculate on future freight rate levels.
Fixture: An agreement to charter a ship for a specific voyage or period.
FOB (Free On Board): Incoterm where the seller delivers goods on board the vessel nominated by the buyer at the named port of shipment. Risk transfers to the buyer once goods pass the ship's rail.
HCK (Hydrocracker): A refinery unit that uses hydrogen and a catalyst to break down heavier oil fractions into lighter, more valuable products like gasoline, jet fuel, and diesel.
ICE: Intercontinental Exchange
kbd (or kb/d): Thousands of barrels per day.
kt: Kilotons.
Laycan (Laydays/Cancelling date): The period during which a ship must present itself at the load port to begin loading.
Lumpsum: A fixed total price for freight, rather than a per-ton or per-barrel rate.
MA: Moving Average
MED: Mediterranean region.
NOC (National Oil Company): An oil company fully or majority-owned by a national government.
NWE: Northwest Europe
OSP (Official Selling Price): The price set by NOCs for their crude oil exports, typically for a specific month and often expressed as a differential to a benchmark.
PRA (Price Reporting Agency): An organization that assesses and publishes prices for commodities, like crude oil and refined products (e.g., Argus, Platts, ICIS, OPIS etc.).
Sing: Abbreviation for Singapore
Swap: A derivative contract through which two parties exchange financial instruments or cash flows for a certain period of time. In oil, it often refers to an agreement to exchange a fixed price for a floating price based on an average benchmark price over a period.
Tenor: The time period for which a price or rate is applicable (e.g., a monthly swap has a one-month tenor).
USAC: United States Atlantic Coast
USGC: United States Gulf Coast
USWC: United States West Coast
VBR (Visbreaker): A refinery unit that cracks heavy residual oils to reduce their viscosity and produce more valuable distillates.
VLCC: Very Large Crude Carrier
WAF: West Africa
WCI: West Coast India
WTI: West Texas Intermediate
Revision History
1 September 2025: First version of this methodology.