OE_PRICE_ADJUSTMENTS
Schema: ONTtransactionPricing modifier applications — discounts, surcharges, and freight/special charges applied to an order or a line, with the modifier list that produced them and the monetary effect; the gap between list and selling price
Mixed grain: header-level rows carry LINE_ID NULL, and applied, unapplied, and accrual-only rows share the table — filter APPLIED_FLAG (and ACCRUAL_FLAG) before summing
Not operating-unit striped despite its family — derive the operating unit through the order header. Legacy pre-QP discount columns coexist with the modifier-list columns.
What the badges mean
- Schema: INV
- Schema: the Oracle product schema that owns the table (INV, ONT, WSH, PO, BOM, WIP, MRP, MSC, AR, AP, GL, HR, APPLSYS) — tells you which product family the object belongs to, not who can query it.
- master
- Data class: what the table holds — master data, transaction documents, control/configuration, interface/staging, or an APPS-schema view.
- OU-striped (ORG_ID)
- Rows are scoped to an operating unit. A landed extract carries every operating unit’s rows — filter or join on
ORG_ID, and don’t confuse it withORGANIZATION_ID(see the quirks guide). - Per inventory org
- Rows are scoped to an inventory organization (plant or warehouse) via
ORGANIZATION_ID— a different partition from OU-striped tables (see the quirks guide). - Language-striped
- The table carries a
LANGUAGEcolumn (a _TL translation table or FND_LOOKUP_VALUES) — one row per language. Filter to oneLANGUAGEor a join multiplies rows (see the quirks guide). - View
- This is an APPS-schema convenience view, not a physical table. Extract the base tables it joins instead — views can be slow at scale and aren't guaranteed stable across patches.
Structural facts — how the table is partitioned, not a trap by itself
Join & extract hazards — verify before you rely on this
Fields
14 fields · 1 key
14 fields.
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | PRICE_ADJUSTMENT_ID | Surrogate key of the adjustment | NUMBER | Primary-key field |
| 2 | HEADER_ID | The order the adjustment belongs to | NUMBER | |
| 3 | LINE_ID | The adjusted line — NULL for header-level adjustments (mixed grain) | NUMBER | |
| 4 | LIST_HEADER_ID | The pricing modifier list that produced the adjustment | NUMBER | |
| 5 | LIST_LINE_ID | The modifier list line | NUMBER | |
| 6 | LIST_LINE_TYPE_CODE | Modifier kind — discount, surcharge, freight charge… | VARCHAR2 | |
| 7 | MODIFIER_LEVEL_CODE | Level the modifier applied at — line, order, or line group | VARCHAR2 | |
| 8 | CHARGE_TYPE_CODE | Freight/special-charge classification, for charge rows | VARCHAR2 | |
| 9 | ARITHMETIC_OPERATOR | How the operand applies — percent, amount, or new price | VARCHAR2 | |
| 10 | OPERAND | The percent or amount value applied | NUMBER | |
| 11 | ADJUSTED_AMOUNT | The monetary effect of the adjustment — the margin-analysis column | NUMBER | |
| 12 | AUTOMATIC_FLAG | Auto-applied vs manually entered | VARCHAR2 | |
| 13 | APPLIED_FLAG | Whether the adjustment actually hit the price — filter before summing | VARCHAR2 | |
| 14 | ACCRUAL_FLAG | Accrual-only modifier — recorded but not price-affecting | VARCHAR2 |
Field provenance: hand-curated. 1 key field.
Boilerplate SQL
Starting point for reading OE_PRICE_ADJUSTMENTS on Databricks — real DATE columns need no conversion, and the org anchor is already in place. The optional LAST_UPDATE_DATE watermark is included. Set your Unity Catalog location, schema, and org values below; they’re substituted into the SQL and the copy button.
4 parameters not filled: <catalog>, <schema>, <PRICE_ADJUSTMENT_ID>, <watermark>
-- ============================================================
-- Table : OE_PRICE_ADJUSTMENTS — Pricing modifier applications — discounts, surcharges, and freight/special charges applied to an order or a line, with the modifier list that produced them and the monetary effect; the gap between list and selling price
-- Purpose: Column-selected read of OE_PRICE_ADJUSTMENTS — auto-generated from field metadata
-- Grain : One row per PRICE_ADJUSTMENT_ID
-- Caution: Mixed grain: header-level rows carry LINE_ID NULL, and applied, unapplied, and accrual-only rows share the table — filter APPLIED_FLAG (and ACCRUAL_FLAG) before summing
-- Notes : Auto-generated skeleton for Oracle EBS R12 data landed in your lakehouse. Dates are real DATE/TIMESTAMP columns — no conversion needed. WHO audit columns omitted (see the quirks guide); the optional LAST_UPDATE_DATE watermark filter supports incremental extracts.
-- ============================================================
SELECT
t.PRICE_ADJUSTMENT_ID AS "Surrogate key of the adjustment",
t.HEADER_ID AS "The order the adjustment belongs to",
t.LINE_ID AS "The adjusted line — NULL for header-level adjustments (mixed grain)",
t.LIST_HEADER_ID AS "The pricing modifier list that produced the adjustment",
t.LIST_LINE_ID AS "The modifier list line",
t.LIST_LINE_TYPE_CODE AS "Modifier kind — discount, surcharge, freight charge…",
t.MODIFIER_LEVEL_CODE AS "Level the modifier applied at — line, order, or line group",
t.CHARGE_TYPE_CODE AS "Freight/special-charge classification, for charge rows",
t.ARITHMETIC_OPERATOR AS "How the operand applies — percent, amount, or new price",
t.OPERAND AS "The percent or amount value applied",
t.ADJUSTED_AMOUNT AS "The monetary effect of the adjustment — the margin-analysis column",
t.AUTOMATIC_FLAG AS "Auto-applied vs manually entered",
t.APPLIED_FLAG AS "Whether the adjustment actually hit the price — filter before summing",
t.ACCRUAL_FLAG AS "Accrual-only modifier — recorded but not price-affecting"
FROM <catalog>.<schema>.OE_PRICE_ADJUSTMENTS t
WHERE
1 = 1 -- no partition column on this table; the filters below are optional
-- AND t.PRICE_ADJUSTMENT_ID = <PRICE_ADJUSTMENT_ID>
-- AND t.LAST_UPDATE_DATE >= TIMESTAMP '<watermark>' -- WHO watermark, bulk-stamped by batch jobs; see quirks guide #who-columns
ORDER BY t.PRICE_ADJUSTMENT_ID;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. FND lookup decode and translation edges are highlighted; they’re the joins newcomers most often get wrong.
Join details
ON OE_PRICE_ADJUSTMENTS.HEADER_ID = OE_ORDER_HEADERS_ALL.HEADER_IDON OE_PRICE_ADJUSTMENTS.LINE_ID = OE_ORDER_LINES_ALL.LINE_ID
More Order Management tables
- OE_TRANSACTION_TYPES_ALLOrder and line transaction types in one pool — each row defines a document type (distinguished order vs line by the type code) with its workflow binding, defaults, and accounting hooks; the decode for both ORDER_TYPE_ID and LINE_TYPE_ID
- OE_TRANSACTION_TYPES_TLTranslation companion for order/line transaction types — the display name and description per installed language; the only place the type name exists
- OE_DROP_SHIP_SOURCESThe drop-ship bridge — one row linking a sales order line to the purchase requisition and purchase order raised to fulfill it from the supplier; the only physical tie between the order-to-cash and procure-to-pay flows
- OE_HOLD_DEFINITIONSHold definitions — the named hold types (credit check, administrative…) with their workflow scope and effectivity; global seed data every hold instance resolves to
- OE_HOLD_SOURCES_ALLHold source criteria — the entity a hold was applied against (a customer, an order, an item, a warehouse), stored as a generic entity code plus a polymorphic id, with the hold-until date
- OE_ORDER_HEADERS_ALLThe sales order header — one row per order or quote, carrying the order number, type, customer references, currency, and the workflow status the whole order-to-cash cycle hangs off; operating-unit striped