<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dean Fachrie</title>
    <description>The latest articles on DEV Community by Dean Fachrie (@deanfachrie).</description>
    <link>https://dev.to/deanfachrie</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4092820%2F98fedd44-fd6f-4a7e-890f-3361ab34a953.png</url>
      <title>DEV Community: Dean Fachrie</title>
      <link>https://dev.to/deanfachrie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deanfachrie"/>
    <language>en</language>
    <item>
      <title>Airline invoicing in D365 F&amp;O</title>
      <dc:creator>Dean Fachrie</dc:creator>
      <pubDate>Mon, 31 Aug 2026 18:23:23 +0000</pubDate>
      <link>https://dev.to/deanfachrie/airline-invoicing-in-d365-fo-4p98</link>
      <guid>https://dev.to/deanfachrie/airline-invoicing-in-d365-fo-4p98</guid>
      <description>&lt;p&gt;The purchase order price source determines what an invoice match verifies.&lt;/p&gt;

&lt;p&gt;CodeCore Dynamics LLC. 28 August 2026.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;F&amp;amp;O matching compares an invoice to its own purchase order. The control is therefore not stronger than its source.&lt;/li&gt;
&lt;li&gt;A price from a trade agreement was fixed before the transaction and applies across all of them. Where a buyer typed the price onto the PO, matching checks the vendor against their own quote. Both produce the same match status.&lt;/li&gt;
&lt;li&gt;Two years of US airline filings show fuel pricing within 4 per cent of its own agreed rate, while airframe repair spans 32 per cent. Fuel can be driven from master data. Repair cannot.&lt;/li&gt;
&lt;li&gt;The same charge measured against a different benchmark can flip the verdict. Fuel varies by 16 per cent against the industry and 4 per cent against its own indexed rate, either side of the 15 per cent line for automating.&lt;/li&gt;
&lt;li&gt;The legal entity price tolerance defaults to 0 per cent, and that default record cannot be deleted.&lt;/li&gt;
&lt;li&gt;Charges matching requires both &lt;strong&gt;Match charges&lt;/strong&gt; at legal entity level and &lt;strong&gt;Compare purchase order and invoice values&lt;/strong&gt; on the individual charges code.&lt;/li&gt;
&lt;li&gt;At a 10 per cent tolerance a repair charge sends roughly a third of its invoices for manual review, against one in ten for fuel.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  For finance leadership
&lt;/h2&gt;

&lt;p&gt;The current position can be established without opening the system. Ask what the legal entity price tolerance is set to. If it remains at 0 per cent, every price variance is being flagged. Ask which charges codes have &lt;strong&gt;Compare purchase order and invoice values&lt;/strong&gt; selected. The codes without it post unchecked and raise no error. And finally, ask what share of purchase order lines take their price from a trade agreement rather than from manual entry. That share is the exposure this article describes.&lt;/p&gt;

&lt;p&gt;The running cost is in Section 4.4. At a 10 per cent tolerance, repair flags 31 per cent of its invoices against 10 per cent for fuel. This reflects three times the review time, and the reviewer has no agreed price to compare against.&lt;/p&gt;

&lt;p&gt;Where no rate exists, a price tolerance creates review load and checks nothing. Quantity matching does not depend on a rate and should stay on.&lt;/p&gt;




&lt;h2&gt;
  
  
  Terms
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dynamics 365 F&amp;amp;O&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purchase order (PO)&lt;/td&gt;
&lt;td&gt;The order raised before the goods or services arrive, carrying an agreed price, quantity and any charges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product receipt&lt;/td&gt;
&lt;td&gt;The record of what was received&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Net unit price&lt;/td&gt;
&lt;td&gt;The net amount of a line divided by its quantity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Two-way matching&lt;/td&gt;
&lt;td&gt;Compares the net unit price on the invoice line to the net unit price on the PO line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Three-way matching&lt;/td&gt;
&lt;td&gt;Two-way matching plus invoice quantity against the quantity on the matched product receipt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line matching policy&lt;/td&gt;
&lt;td&gt;Which of the above applies. Set for the legal entity and overridable by vendor, item, or item and vendor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price tolerance&lt;/td&gt;
&lt;td&gt;The variance allowed before a discrepancy is reported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invoice totals matching&lt;/td&gt;
&lt;td&gt;Compares totals on the invoice to the totals expected from the PO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trade agreement&lt;/td&gt;
&lt;td&gt;Stored agreed prices per vendor and item, used to populate the PO price&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Purchase agreement&lt;/td&gt;
&lt;td&gt;A commitment to buy an agreed volume or value, carrying agreed pricing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Charges code&lt;/td&gt;
&lt;td&gt;A named cost added to an order or invoice, such as freight, handling or a landing fee&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Charges matching&lt;/td&gt;
&lt;td&gt;Compares charge amounts on the invoice to charge amounts on the PO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Legal entity&lt;/td&gt;
&lt;td&gt;The company the configuration belongs to&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rung&lt;/td&gt;
&lt;td&gt;Used in this article for where a PO price came from, per Table 1. Not a Microsoft term.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Aviation&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Flight hour&lt;/td&gt;
&lt;td&gt;Time the aircraft is airborne. The driver for maintenance and crew cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Capacity purchase agreement&lt;/td&gt;
&lt;td&gt;A mainline carrier pays a regional to operate routes on its behalf, commonly supplying the fuel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ACMI&lt;/td&gt;
&lt;td&gt;A lease where the operator supplies aircraft, crew, maintenance and insurance, and the customer covers fuel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14 CFR Part 241&lt;/td&gt;
&lt;td&gt;The US regulation requiring carriers to file the financial schedules used here&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;Two-way matching in Dynamics 365 F&amp;amp;O compares the net unit price on the invoice line to the net unit price on the purchase order line. Three-way matching additionally compares the invoice quantity to the quantity on the matched product receipt.&lt;/p&gt;

&lt;p&gt;Both comparisons take the purchase order as the reference. That reference came from somewhere, and where it came from determines what a passed match establishes. F&amp;amp;O does not distinguish between those sources anywhere in the interface.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rung&lt;/th&gt;
&lt;th&gt;Source of the PO price&lt;/th&gt;
&lt;th&gt;Passed match means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Trade agreement or purchase agreement&lt;/td&gt;
&lt;td&gt;The vendor billed a price set outside the transaction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;A quote entered onto the PO by a buyer&lt;/td&gt;
&lt;td&gt;The vendor billed the amount they quoted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;A line added at invoice entry, with no PO line&lt;/td&gt;
&lt;td&gt;Line matching does not apply&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 1. The same match status is produced at every rung.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Rung 2 confirms the vendor has not deviated from their own quote. It carries no information about whether the quote was reasonable.&lt;/p&gt;

&lt;p&gt;Reaching rung 1 requires a rate stable enough to hold in master data. Sections 2 to 4 test which charges have one using public airline financial filings. Section 5 sets out what follows for the F&amp;amp;O configuration.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Dataset and cleaning
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Source
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;BTS Form 41 Schedule P-5.2&lt;/strong&gt;, quarterly aircraft operating expenses, 2024 and 2025. The dataset contains 4,805 rows across 47 carriers, 95 aircraft types and 8 quarters. Each row conforms to a matched carrier, aircraft type, and quarter.&lt;/p&gt;

&lt;p&gt;Airlines are one of the few industries where third-party spend and the quantity driving it are both public. US carriers file both under 14 CFR Part 241. The same analysis is not possible from public data at a manufacturer.&lt;/p&gt;

&lt;p&gt;The code, the filings and the raw output are in a public repository, linked below.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.2 Charges selected
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Charge&lt;/th&gt;
&lt;th&gt;Amount field&lt;/th&gt;
&lt;th&gt;Account&lt;/th&gt;
&lt;th&gt;Driver field&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aircraft fuel&lt;/td&gt;
&lt;td&gt;&lt;code&gt;FUEL_FLY_OPS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;51451&lt;/td&gt;
&lt;td&gt;&lt;code&gt;AIR_FUELS_ISSUED&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engine repair&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ENGINE_REPAIRS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;52432&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TOTAL_AIR_HOURS&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airframe repair&lt;/td&gt;
&lt;td&gt;&lt;code&gt;AIRFRAME_REPAIR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;52431&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TOTAL_AIR_HOURS&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pilot pay&lt;/td&gt;
&lt;td&gt;&lt;code&gt;PILOT_FLY_OPS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;51230&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TOTAL_AIR_HOURS&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 2. The first three are third-party spend arriving as vendor invoices. Pilot pay is account 51230 (salaries), not meeting invoice matching. It is carried through the figures as a rate that is contracted but not invoiced.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.3 Units
&lt;/h3&gt;

&lt;p&gt;Amounts are reported in thousands of dollars and quantities in thousands. Therefore, amount divided by driver yields dollars per gallon and dollars per flight hour.&lt;/p&gt;

&lt;p&gt;Two independent checks:&lt;/p&gt;

&lt;p&gt;The fuel rate resolves to &lt;strong&gt;$2.43 per gallon&lt;/strong&gt;. US Gulf Coast kerosene-type jet fuel spot averaged &lt;strong&gt;$2.23&lt;/strong&gt; over the same 24 months. The filed figure therefore sits about 9 per cent above the spot benchmark. This is the correct direction and a plausible magnitude where account 51451 is delivered cost, carrying the supplier differential, the into-plane fee and taxes on top of spot. In contrast, a figure below spot, or one several times it, would indicate a units error.&lt;/p&gt;

&lt;p&gt;Pilot pay resolves to &lt;strong&gt;$1,498 per flight hour&lt;/strong&gt;, which falls in the published range for narrowbody crew cost per block hour. The two checks are independent of each other.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.4 Filters applied
&lt;/h3&gt;

&lt;p&gt;Rows below $100,000 of quarterly spend are excluded, since rounding in the filing dominates the implied rate at that scale. A carrier and aircraft type requires at least four quarters on file before it is treated as having an established rate of its own. After filtering, fuel retains 2,175 rows across 143 carrier and aircraft combinations.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.5 A mixed population in the fuel data
&lt;/h3&gt;

&lt;p&gt;132 fuel rows, 6.1 per cent of the file, imply a rate below $1.00 per gallon. These are regional carriers operating capacity purchase agreements and ACMI cargo operators, which burn fuel a partner pays for, so gallons are reported against little or no cost. The carriers concerned are SkyWest, Republic, Atlas Air and ABX Air. This is a commercial arrangement, not a reporting error. The rows are retained.&lt;/p&gt;

&lt;p&gt;The effect on each measure differs, as the table below shows.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fuel&lt;/th&gt;
&lt;th&gt;n&lt;/th&gt;
&lt;th&gt;Median rate&lt;/th&gt;
&lt;th&gt;Pooled R²&lt;/th&gt;
&lt;th&gt;Within band&lt;/th&gt;
&lt;th&gt;Variance&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;As published&lt;/td&gt;
&lt;td&gt;2,175&lt;/td&gt;
&lt;td&gt;$2.43&lt;/td&gt;
&lt;td&gt;0.922&lt;/td&gt;
&lt;td&gt;0.689&lt;/td&gt;
&lt;td&gt;0.039&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Excluding under $1.00/gal&lt;/td&gt;
&lt;td&gt;2,043&lt;/td&gt;
&lt;td&gt;$2.45&lt;/td&gt;
&lt;td&gt;0.986&lt;/td&gt;
&lt;td&gt;0.862&lt;/td&gt;
&lt;td&gt;0.036&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 3. R² shifts substantially, whereas the median rate and variance remain largely unchanged.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A measure built on medians tolerates a mixed population. One built on squared deviations does not. In accounts payable, applying a single tolerance at vendor group level may fail when one charge code covers multiple pricing structures.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Analysis
&lt;/h2&gt;

&lt;p&gt;Two measures are computed for each charge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Measurement&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Driver&lt;/td&gt;
&lt;td&gt;The quantity determining the amount. Gallons for fuel, flight hours for repair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unit rate&lt;/td&gt;
&lt;td&gt;Amount divided by driver. Dollars per gallon, dollars per flight hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Benchmark&lt;/td&gt;
&lt;td&gt;The reference a unit rate is compared against. Check 3.2 for defined benchmarks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;R²&lt;/td&gt;
&lt;td&gt;The share of variation in the amount explained by the driver, from 0 to 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Median&lt;/td&gt;
&lt;td&gt;The middle observation of data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interquartile range (IQR)&lt;/td&gt;
&lt;td&gt;The span covering the 25th to the 75th per centile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variance&lt;/td&gt;
&lt;td&gt;IQR divided by the median. A value of 0.04 means the middle half sit within 4 per cent of the benchmark. In this article, this is a measure of dispersion.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;The measurement terms used from here on.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1 Drivers
&lt;/h3&gt;

&lt;p&gt;An ordinary least squares fit of &lt;code&gt;amount = a + b × driver&lt;/code&gt;, reported as R².&lt;/p&gt;

&lt;p&gt;Pooled R² is inflated in this dataset because carrier size correlates with both variables independently of any pricing discipline. The fit is therefore repeated within driver size quartiles and averaged, which removes most of that effect.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.2 Unit Rate
&lt;/h3&gt;

&lt;p&gt;The amount divided by the quantity gives the unit rate. A variance value of 0.04 indicates that the middle half of observations price within 4 per cent of their benchmark.&lt;/p&gt;

&lt;p&gt;A charge is treated here as worth automating where that variance falls below 0.15. The threshold is a judgement and not a derived value, and is named again in Limits. Variance is reported as a decimal in the tables that follow.&lt;/p&gt;

&lt;p&gt;The benchmarks chosen for this model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Industry.&lt;/strong&gt; A single rate across all carriers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Indexed.&lt;/strong&gt; The median rate within the same quarter, removing market movement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Own rate.&lt;/strong&gt; The carrier's own median, without market movement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In purchase agreement terms, these correspond to no agreement, an index-linked agreement, and a vendor-specific trade agreement.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Results
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1 Driver explanatory power
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Charge&lt;/th&gt;
&lt;th&gt;Pooled R²&lt;/th&gt;
&lt;th&gt;Within size band&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aircraft fuel&lt;/td&gt;
&lt;td&gt;0.92&lt;/td&gt;
&lt;td&gt;0.69&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engine repair&lt;/td&gt;
&lt;td&gt;0.51&lt;/td&gt;
&lt;td&gt;0.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airframe repair&lt;/td&gt;
&lt;td&gt;0.43&lt;/td&gt;
&lt;td&gt;0.11&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 4. Gallons account for most of the variation in fuel spend. Flight hours account for little of the variation in repair spend.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feh7yu6yglg5i0jhn1j1t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feh7yu6yglg5i0jhn1j1t.png" alt="Spend vs. Driver Quantity: fuel cost against gallons issued, and airframe repair cost against flight hours" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 1. The fuel relationship is close to linear. The repair relationship is dispersed.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2 Rate variance
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Charge&lt;/th&gt;
&lt;th&gt;Unit rate&lt;/th&gt;
&lt;th&gt;Variance against own rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aircraft fuel&lt;/td&gt;
&lt;td&gt;$2.43 / gallon&lt;/td&gt;
&lt;td&gt;0.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engine repair&lt;/td&gt;
&lt;td&gt;$334 / flight hour&lt;/td&gt;
&lt;td&gt;0.23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airframe repair&lt;/td&gt;
&lt;td&gt;$285 / flight hour&lt;/td&gt;
&lt;td&gt;0.32&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 5. An eightfold difference between fuel and airframe repair, on identical carriers, aircraft and quarters.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm7f627rx2bpv7xcrkj8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm7f627rx2bpv7xcrkj8h.png" alt="Invoice deviation from benchmark" width="799" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 2. Each invoice divided by its own benchmark. The variance in Table 5 is the width of these distributions expressed as one number.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4.3 Effect of benchmark choice
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Charge&lt;/th&gt;
&lt;th&gt;vs industry&lt;/th&gt;
&lt;th&gt;vs same quarter&lt;/th&gt;
&lt;th&gt;vs own rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aircraft fuel&lt;/td&gt;
&lt;td&gt;0.16&lt;/td&gt;
&lt;td&gt;0.08&lt;/td&gt;
&lt;td&gt;0.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engine repair&lt;/td&gt;
&lt;td&gt;1.20&lt;/td&gt;
&lt;td&gt;1.14&lt;/td&gt;
&lt;td&gt;0.23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airframe repair&lt;/td&gt;
&lt;td&gt;1.27&lt;/td&gt;
&lt;td&gt;1.20&lt;/td&gt;
&lt;td&gt;0.32&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 6. Read across rows.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frh136svsw8osl4gepzco.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frh136svsw8osl4gepzco.png" alt="Cost Variance vs. Automation Threshold: rate variance for each charge against three benchmarks" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 3. Fuel variance falls below the 0.15 threshold only once the benchmark accounts for the quarter.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Indexing reduces fuel variance from 0.16 to 0.08, and vendor-specific pricing reduces it again to 0.04. Indexing therefore accounts for half of the total improvement. For repair, all three benchmarks remain wide.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.4 Review load
&lt;/h3&gt;

&lt;p&gt;A tolerance flags every line whose deviation from its benchmark exceeds it, so the share flagged is the workload the control creates. That share differs by charge as sharply as the variance.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Charge&lt;/th&gt;
&lt;th&gt;5%&lt;/th&gt;
&lt;th&gt;10%&lt;/th&gt;
&lt;th&gt;15%&lt;/th&gt;
&lt;th&gt;25%&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aircraft fuel&lt;/td&gt;
&lt;td&gt;13%&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;td&gt;9%&lt;/td&gt;
&lt;td&gt;6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engine repair&lt;/td&gt;
&lt;td&gt;31%&lt;/td&gt;
&lt;td&gt;26%&lt;/td&gt;
&lt;td&gt;23%&lt;/td&gt;
&lt;td&gt;18%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airframe repair&lt;/td&gt;
&lt;td&gt;38%&lt;/td&gt;
&lt;td&gt;31%&lt;/td&gt;
&lt;td&gt;26%&lt;/td&gt;
&lt;td&gt;17%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 7. Share of invoices sent for manual review at each price tolerance, measured against the benchmark that holds each charge tightest.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjp2a4tihqwhjjb9wz2km.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjp2a4tihqwhjjb9wz2km.png" alt="Review Load vs. Price Tolerance" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 4. At every tolerance, the repair charges flag two to three times as many invoices as fuel.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At a 10 per cent tolerance fuel sends one invoice in ten for review, whereas airframe repair sends close to one in three. Section 4.2 shows there is no stable rate for that review to check against.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1 The path an amount takes
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    TA["Trade agreement or&amp;lt;br/&amp;gt;purchase agreement"]
    QUOTE["Buyer enters a quote&amp;lt;br/&amp;gt;onto the PO"]
    ADDED["Line added at invoice entry,&amp;lt;br/&amp;gt;not on the PO"]

    PO["Purchase order line&amp;lt;br/&amp;gt;price, quantity, charges"]
    RCPT["Product receipt"]
    INV["Vendor invoice"]

    LMP{"Line matching policy"}
    PRICE["Price check&amp;lt;br/&amp;gt;net unit price, price totals"]
    QTY["Quantity check&amp;lt;br/&amp;gt;vs received quantity"]
    NOLINE["No line matching"]

    MCH{"Match charges&amp;lt;br/&amp;gt;legal entity"}
    CTOG{"Charges code:&amp;lt;br/&amp;gt;Compare PO and invoice values"}
    CCHK["Charges check&amp;lt;br/&amp;gt;vs Charges tolerances"]
    CGAP["Charge not matched"]

    TTOG{"Match invoice totals&amp;lt;br/&amp;gt;legal entity"}
    TCHK["Invoice totals check"]
    TGAP["Line not matched"]

    LEDGER["Posted to the ledger"]

    TA --&amp;gt;|rung 1| PO
    QUOTE --&amp;gt;|rung 2| PO

    PO --&amp;gt; LMP
    RCPT --&amp;gt; LMP
    INV --&amp;gt; LMP
    LMP --&amp;gt;|two-way or three-way| PRICE
    LMP --&amp;gt;|three-way only| QTY
    LMP --&amp;gt;|not required| NOLINE

    PO --&amp;gt; MCH
    MCH --&amp;gt;|on| CTOG
    MCH --&amp;gt;|off| CGAP
    CTOG --&amp;gt;|selected| CCHK
    CTOG --&amp;gt;|not selected| CGAP

    ADDED --&amp;gt;|rung 3| TTOG
    TTOG --&amp;gt;|on| TCHK
    TTOG --&amp;gt;|off| TGAP

    PRICE --&amp;gt; LEDGER
    QTY --&amp;gt; LEDGER
    NOLINE --&amp;gt; LEDGER
    CCHK --&amp;gt; LEDGER
    CGAP --&amp;gt; LEDGER
    TCHK --&amp;gt; LEDGER
    TGAP --&amp;gt; LEDGER

    classDef strong fill:#dcecdc,stroke:#3a7d3a,color:#0b0b0b
    classDef weak fill:#fbe8cd,stroke:#b8761c,color:#0b0b0b
    classDef gap fill:#f6d8d4,stroke:#b0443a,color:#0b0b0b
    classDef check fill:#e8eef6,stroke:#2a78d6,color:#0b0b0b

    class TA strong
    class QUOTE,ADDED weak
    class NOLINE,CGAP,TGAP gap
    class PRICE,CCHK,TCHK check
    class QTY strong&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;&lt;em&gt;Figure 5. Colour represents the strength of the reference behind each check, blue marking the checks and red the paths where no check happens.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Charges codes appear on the purchase order, and charges matching compares the invoice charge to the PO charge. A line added at invoice entry that was not on the purchase order, falls outside line matching and is covered by invoice totals matching only.&lt;/p&gt;

&lt;p&gt;Observations from the diagram:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Price check strength derives from the source.&lt;/strong&gt; The comparison is identical whether the PO price originates from a trade agreement or from manual buyer entry, producing the same match status in both cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quantity check strength derives from the product receipt.&lt;/strong&gt;Invoiced quantity and received quantity are both recorded values rather than judgements, so the check needs no rate, no tolerance and no master data. It runs under a three-way policy only.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Three branches reach the ledger without a line-level comparison:&lt;/strong&gt; a PO line under a Not required matching policy, a charges code with &lt;code&gt;Compare purchase order and invoice values&lt;/code&gt; not selected (or &lt;code&gt;Match charges&lt;/code&gt; off at legal entity level), and an invoice-entry line with &lt;code&gt;Match invoice totals&lt;/code&gt; off.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5.2 Configuration
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Fuel belongs on rung 1.&lt;/strong&gt; Its rate holds to 0.04 against a vendor-specific indexed benchmark, which is stable enough to sit in a purchase agreement. Since half the available improvement comes from indexing to the period rather than from vendor-specific pricing, the agreement would benefit from a refresh process tied to the index.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repair remains on rung 2.&lt;/strong&gt; No benchmark brings its variance near 0.15, so no stable rate exists to place in master data. Each PO price will be a per-event quote, and matching will do no more than confirm it, at the review cost shown in section 4.4. That limitation belongs to the charge instead of the configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quantity matching does not depend on the rung.&lt;/strong&gt; Set &lt;strong&gt;Line matching policy&lt;/strong&gt; to &lt;strong&gt;Three-way match&lt;/strong&gt; on &lt;strong&gt;Accounts payable &amp;gt; Setup &amp;gt; Accounts payable parameters&lt;/strong&gt;, on the &lt;strong&gt;Invoice validation&lt;/strong&gt; tab, together with &lt;strong&gt;Enable invoice matching validation&lt;/strong&gt;, wherever a product receipt is taken.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Price tolerances.&lt;/strong&gt; Set on &lt;strong&gt;Accounts payable &amp;gt; Setup &amp;gt; Invoice matching setup &amp;gt; Price tolerances&lt;/strong&gt;, resolving from item and vendor down to All/All. The legal entity default is 0 per cent and cannot be deleted, so any price variance is reported until a tolerance is entered. Override the matching policy per vendor or item on &lt;strong&gt;Accounts payable &amp;gt; Setup &amp;gt; Invoice matching setup &amp;gt; Matching policy&lt;/strong&gt;, which resolves item and vendor, then item, then vendor, then legal entity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Charges.&lt;/strong&gt; Enable &lt;strong&gt;Match charges&lt;/strong&gt; in Accounts payable parameters and set the &lt;strong&gt;Charges tolerances&lt;/strong&gt; page. Charges matching runs only on charges codes where &lt;strong&gt;Compare purchase order and invoice values&lt;/strong&gt; is selected on the Charges code page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duplicate invoice numbers.&lt;/strong&gt; The &lt;code&gt;Check the invoice number used&lt;/code&gt; parameter in Accounts payable parameters, set to &lt;code&gt;Reject duplicate&lt;/code&gt; or &lt;code&gt;Reject duplicates within fiscal year&lt;/code&gt;, applies independently of any rate.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.3 What the analysis supports
&lt;/h3&gt;

&lt;p&gt;The analysis establishes which charges can be driven from master data and how a fuel agreement should be structured. Everything else in section 5.2 comes from the product documentation, and the rung model in section 1 follows from how matching is defined.&lt;/p&gt;

&lt;p&gt;Price protection in F&amp;amp;O grows with the quality of the master data behind the purchase order, whereas quantity protection is independent of it. Where no stable rate can be established such as in section 4 for engine and airframe repair, the constraint is commercial and no configuration will be able to remove it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Limits
&lt;/h2&gt;

&lt;p&gt;The filings are quarterly aggregates rather than individual invoices. A quarter combines many transactions, so part of the reported variance reflects differences in work mix rather than pricing. The ordering between charges is the result. The absolute values are not tolerance settings.&lt;/p&gt;

&lt;p&gt;Three parameters are judgement rather than derived: the $100,000 minimum row, the four-quarter minimum history, and the 0.15 variance threshold marked on Figure 3.&lt;/p&gt;

&lt;p&gt;No evidence of overcharging at any carrier is presented, and no carrier is identified as such. The analysis addresses which charges can be checked, not what any operator would recover.&lt;/p&gt;

&lt;p&gt;Configuration detail is taken from Microsoft Learn and has not been verified against a specific implementation. Version differences apply.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reproducing this
&lt;/h2&gt;

&lt;p&gt;The source codes and datasets are at &lt;a href="https://github.com/kingomnivore/airline-invoices-dynamics365-fno" rel="noopener noreferrer"&gt;github.com/kingomnivore/airline-invoices-dynamics365-fno&lt;/a&gt;. Clone it, &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;, then &lt;code&gt;python run.py&lt;/code&gt;. The filings are committed, so it should run as cloned.&lt;/p&gt;

&lt;p&gt;The recipe below describes the same analysis independently of the code, for anyone who would rather rebuild it. It is a download, 4 filters and 2 ratios, without the modelling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Get the data.&lt;/strong&gt; From &lt;a href="https://www.transtats.bts.gov/Tables.asp?QO_VQ=EGI" rel="noopener noreferrer"&gt;TranStats, Air Carrier Financial, Schedule P-5.2&lt;/a&gt;, select all fields, set Quarter to All Quarters, and download 2024 and 2025. Concatenate them. The amount and driver columns for each charge are in Table 2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Filter.&lt;/strong&gt; Keep rows where the amount exceeds 100 and the driver exceeds 0. Amounts are in thousands. Keep only carrier and aircraft type combinations with at least four quarters on file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Unit rate.&lt;/strong&gt; Divide amount by driver. Both columns carry the same factor of a thousand, so the result is dollars per gallon and dollars per flight hour directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Explanatory power.&lt;/strong&gt; Fit &lt;code&gt;amount = a + b x driver&lt;/code&gt; by ordinary least squares and take R2. Then split the rows into quartiles by driver, refit inside each, and average those. The second figure is the one to report, since carrier size inflates the first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The benchmarks.&lt;/strong&gt; Each is the unit rate divided by a reference.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Reference&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Industry&lt;/td&gt;
&lt;td&gt;The median rate across all rows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indexed&lt;/td&gt;
&lt;td&gt;The median rate within the same year and quarter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Own rate&lt;/td&gt;
&lt;td&gt;The indexed deviation divided by its own median within each carrier and aircraft type&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;6. Variance.&lt;/strong&gt; For each set of deviations, take the 75th per centile minus the 25th, divided by the median.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Check.&lt;/strong&gt; The fuel median should be $2.43 per gallon and pilot pay roughly $1,498 per flight hour. The two are independent, check if either are off the column for units.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chosen parameters.&lt;/strong&gt; The $100,000 floor, the four-quarter minimum, and the 0.15 threshold drawn on Figure 3 were deliberate choices assumed.&lt;/p&gt;




&lt;h2&gt;
  
  
  On method
&lt;/h2&gt;

&lt;p&gt;The analysis code and the initial draft were produced with Claude Code. The dataset and the configuration claims were verified against the sources listed below before publication. The code is public on the repository.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/dynamics365/finance/accounts-payable/accounts-payable-invoice-matching" rel="noopener noreferrer"&gt;Accounts payable invoice matching overview, Microsoft Learn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/dynamics365/finance/accounts-payable/tasks/set-up-accounts-payable-invoice-matching-validation" rel="noopener noreferrer"&gt;Set up Accounts payable invoice matching validation, Microsoft Learn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/dynamics365/finance/accounts-payable/three-way-matching-policies" rel="noopener noreferrer"&gt;Three-way matching policies, Microsoft Learn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/dynamics365/finance/accounts-payable/vendor-invoices-overview" rel="noopener noreferrer"&gt;Vendor invoices overview, Microsoft Learn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kingomnivore/airline-invoices-dynamics365-fno" rel="noopener noreferrer"&gt;Analysis code and data, GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.transtats.bts.gov/Tables.asp?QO_VQ=EGI" rel="noopener noreferrer"&gt;BTS TranStats, Air Carrier Financial Reports, Schedule P-5.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.eia.gov/dnav/pet/hist/eer_epjk_pf4_rgc_dpgM.htm" rel="noopener noreferrer"&gt;EIA, US Gulf Coast Kerosene-Type Jet Fuel Spot Price FOB, monthly&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>erp</category>
      <category>dynamics365</category>
      <category>microsoft</category>
    </item>
  </channel>
</rss>
