AR Receivable Activity Report
Non-invoice receivables activity — adjustments, write-offs, discounts, and miscellaneous receipts — by activity type and GL account, so finance can see and justify everything that changed AR balances outside of invoicing and cash application.
Sample build of the AR Receivable Activity Report — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.
| Activity Type | Gl Account | Customer | Reference | Amount | Date |
|---|---|---|---|---|---|
| Standard | 1000-2100-000 | Acme Industrial | Sample | $1,240,500.00 | 2026-04-30 |
| Corporate | 1000-5400-000 | Northwind Trading | — | $842,150.75 | 2026-03-31 |
| Standard | 1000-1410-000 | Globex Holdings | Sample | $96,400.00 | 2026-02-28 |
| Default | 2000-2100-000 | Initech LLC | — | $1,005,233.10 | 2026-01-31 |
| Standard | 1000-6300-000 | Umbrella Corp | Sample | $58,720.40 | 2025-12-31 |
| Standard | 1000-2100-000 | Acme Industrial | Sample | $1,240,500.00 | 2026-04-30 |
The report reads AR_RECEIVABLES_TRX_ALL and the applications tied to each activity, grouped by activity type and account.
$96K of write-offs ran this period, over half under a single activity type and approver — write-offs reduce revenue, and concentration by one approver is an audit and segregation-of-duties concern.
Confirm the write-offs had documented authorization; if one approver dominates, add a second-approval threshold on AR write-offs.
This is the report's BI Publisher data model — the SQL data set BI Publisher runs against Oracle tables to produce the output. The same SQL becomes a dbt model in your warehouse, so one definition drives both the formatted report and the analytics layer.
Data sources
- AR_RECEIVABLES_TRX_ALL
- AR_RECEIVABLE_APPLICATIONS_ALL
- AR_ADJUSTMENTS_ALL
- GL_CODE_COMBINATIONS
- HR_OPERATING_UNITS
Show / hide SQL
-- Receivale activityes from receipts
-- CR REF-25165
select * from (
SELECT a.Business_Unit
,(SELECT ffv.description
FROM fnd_id_flex_segments_vl ffs, fnd_flex_values_vl ffv
,gl_ledgers gl
,gl_ledger_norm_seg_vals leseg
,hr_operating_units hou
WHERE ffs.segment_name ='Entity' AND ffs.enabled_flag='Y'
AND ffs.flex_value_set_id = ffv.flex_value_set_id AND ffv.enabled_flag ='Y'
AND gl.chart_of_accounts_id = ffs.id_flex_num
AND leseg.ledger_id= gl.ledger_id
AND leseg.segment_value = ffv.flex_value
AND hou.set_of_books_id = gl.ledger_id
AND hou.organization_id = a.org_id
AND ffv.flex_value =a.segment1 ) Entitiy_name
,a.segment1 Entitiy ,a.segment2 Selling_Method, a.segment3 Cost_Center ,a.segment4 Account ,a.segment5 Location ,a.segment6 Brand ,a.segment7 Intercompany ,a.segment8 Future1 ,a.segment9 Future2
,a.segment1||'.'||a.segment2||'.'||a.segment3||'.'||a.segment4||'.'||a.segment5||'.'||a.segment6||'.'||a.segment7||'.'||a.segment8||'.'||a.segment9 Account_Combination
,a.customer_name,a.Customer_Num --14
,a.Bill_to_location ,a.Selling_Profile,a.Application_Type,type,a.receipt_activity_name, a.Receipt_method_po
,to_char(a.gl_date,'MM/DD/YYYY') gl_date,a.receipt_number,a.deposit_trx_date,a.receipt_amount,a.apply_date,a.applied_amount,a.entered_amount,a.currency,rate,a.functional_amount,a.functional_currency
, NVL((SELECT a.entered_amount*rate.conversion_rate FROM gl_daily_rates rate ,gl_daily_conversion_types rate_type
WHERE rate.conversion_type = rate_type.conversion_type
AND rate.from_currency = a.currency AND rate.to_currency ='USD' AND a.currency<>'USD'
AND TRUNC(rate.conversion_date)= TRUNC(a.gl_date)
AND UPPER(rate_type.user_conversion_type)='STANDARD'
),(SELECT a.entered_amount FROM dual WHERE a.currency='USD') ) USD_Amount
,a.reason_code
,a.created
,a.Approved
from (
WITH total_receivable_adj_amount
AS
(SELECT SUM(araa.amount_applied) amount_applied,araa.cash_receipt_id
FROM
ar_receivables_trx_all arta,
ar_receivable_applications_all araa
WHERE 1=1
AND araa.display = 'Y'
AND araa.receivables_trx_id = arta.receivables_trx_id (+)
AND araa.org_id=arta.org_id(+)
AND NVL(arta.type,'x') <>'CLAIM_INVESTIGATION'
GROUP BY araa.cash_receipt_id)
SELECT
haot.name Business_Unit, cc.segment1 Entitiy -- company_segment,
,cc.code_combination_id
,cc.segment1,cc.segment2,cc.segment3,cc.segment4,cc.segment5,cc.segment6,cc.segment7,cc.segment8,cc.segment9
,hp.party_name customer_name ,hca.account_number Customer_Num ,hcsu.location bill_to_location
,(SELECT attribute2 FROM hz_cust_acct_sites_all hcas WHERE hcas.cust_acct_site_id =hcsu.cust_acct_site_id AND hcas.CUST_ACCOUNT_ID=hca.cust_account_id ) Selling_Profile
,flv1.meaning Application_Type, arta.type,arta.name receipt_activity_name ,arm.name Receipt_method_po
,araa.gl_date ,acra.receipt_number
,TO_CHAR(acra.deposit_date,'MM/DD/YYYY') deposit_trx_date
,acra.amount receipt_amount,TO_CHAR(araa.apply_date,'MM/DD/YYYY') apply_date
,traa.amount_applied applied_amount, araa.amount_applied entered_amount
,acra.currency_code currency, NVL(acra.exchange_rate,1) rate, araa.amount_applied * NVL(acra.exchange_rate,1) AS functional_amount
,gl.currency_code functional_currency
,acra.org_id
,acra.receipt_date Rec_trx_date
,(case when arta.type = 'CM_REFUND'
Then araa.APPLICATION_REF_NUM
when arta.type = 'WRITEOFF'
then
(nvl((SELECT a.reason_code_name FROM cjm_claim_reason_codes_tl a, cjm_claims_all b
WHERE a.reason_code_id=b.reason_code_id AND b.claim_number=araa.application_ref_num
AND a.language =userenv('lang')),araa.attribute8))
ELSE
araa.attribute8
end
)reason_code -- CR REF-270883
,araa.created_by created
,null Approved
FROM
ar_receivable_applications_all araa,
ar_cash_receipts_all acra,
ar_receipt_methods arm,
hz_parties hp,
hz_cust_accounts hca,
hz_cust_site_uses_all hcsu,
gl_code_combinations cc,
hr_organization_units_f_tl haot,
ar_receivables_trx_all arta,
fnd_lookup_values flv1,
total_receivable_adj_amount traa,
gl_ledgers gl
,AR_DISTRIBUTIONS_ALL ada
,xla_distribution_links xladl
,xla_ae_lines xlal
,gl_ledgers ledger
WHERE 1=1
AND ada.SOURCE_ID = araa.RECEIVABLE_APPLICATION_ID
AND xladl.SOURCE_DISTRIBUTION_TYPE ='AR_DISTRIBUTIONS_ALL'
AND xladl.SOURCE_DISTRIBUTION_ID_NUM_1 = ada.LINE_ID
AND xladl.ACCOUNTING_LINE_CODE <>'RCT_UNAPP'
AND xlal.AE_HEADER_ID =xladl.AE_HEADER_ID and xlal.AE_LINE_NUM =xladl.AE_LINE_NUM
AND xlal.ledger_id=ledger.ledger_id
AND ledger.ledger_category_code ='PRIMARY'
--AND araa.display = 'Y'
AND araa.cash_receipt_id = acra.cash_receipt_id
AND hca.party_id = hp.party_id
AND acra.customer_site_use_id = hcsu.site_use_id(+) -- bill_to
AND acra.pay_from_customer = hca.cust_account_id(+)
AND arm.receipt_method_id = acra.receipt_method_id
--AND arta.code_combination_id = cc.code_combination_id
AND xlal.code_combination_id= cc.code_combination_id
AND acra.org_id =haot.organization_id
AND haot.language ='US'
AND SYSDATE BETWEEN haot.effective_start_date AND haot.effective_end_date
AND araa.receivables_trx_id = arta.receivables_trx_id (+)
AND flv1.Lookup_type(+) = 'RECEIVABLES_TRX'
AND flv1.language(+) ='US'
AND arta.type = flv1.LOOKUP_CODE(+)
AND arta.type <>'CLAIM_INVESTIGATION'
AND arta.org_id= acra.org_id
AND (acra.org_id IN (:p_org_id) OR 1 IN (:p_org_id||'1'))
AND (((araa.gl_date BETWEEN NVL(:p_date_from , araa.gl_date) AND NVL(:p_date_to, araa.gl_date)) AND :p_run_by_date='GL Date')
OR
(( acra.deposit_date between NVL(:p_date_from , acra.deposit_date) AND NVL(:p_date_to, acra.deposit_date)) and :p_run_by_date='Deposit Date'))
AND arta.type =nvl(:p_activity_code,arta.type)
AND (hca.account_number IN ( :p_cust_num) or 'All' IN ( :p_cust_num||'All') )
AND gl.ledger_id = acra.set_of_books_id
AND araa.cash_receipt_id = traa.cash_receipt_id(+)
AND ( acra.org_id IN ( SELECT distinct bu.bu_id
FROM fusion.fun_all_business_units_v bu
,fusion.fun_user_role_data_asgnmnts role
,fusion.per_users pu
,fusion.per_roles_dn_vl pr
,fusion.per_roles_dn_tl prtl
WHERE role.org_id = bu.bu_id
AND pu.user_guid = role.user_guid
AND pr.role_common_name = role.role_name
AND role.active_flag ='Y'
AND pu.username = fnd_global.user_name
and pr.role_id=prtl.role_id
and prtl.LANGUAGE='US'
and prtl.ROLE_NAME in ('XXC Accounts Receivable Analyst'
,'XXC Accounts Receivable Manager'
,'XXC Receivables Inquiry'
)
)
)
/*AND haot.name IN (select meaning from fnd_lookup_values_vl WHERE lookup_type = 'BU_REGION_REPORTING' AND enabled_flag ='Y'
AND (DESCRIPTION in (:p_region) OR (COALESCE(:p_region,NULL) IS NULL) ) )*/ -- REF-292555
and haot.name in (select FLEX_VALUE from fnd_flex_values_vl FLV where FLV.value_category='XXC_CLOUD_BU_TO_REGION_CODE_MAPPING' and FLV.enabled_flag = 'Y'
and (FLV.attribute1 IN (:p_region) OR '1' IN (:p_region||'1') ))
--and acra.RECEIPT_NUMBER in ('53')
UNION
-- invoice adjustments
SELECT haot.name Business_Unit, cc.segment1 Entitiy -- company_segment,
,cc.code_combination_id
,cc.segment1,cc.segment2,cc.segment3,cc.segment4,cc.segment5,cc.segment6,cc.segment7,cc.segment8,cc.segment9
,hp.party_name customer_name, hca.account_number Customer_Num,hcsu.location bill_to_location
,(SELECT attribute2 FROM hz_cust_acct_sites_all hcas WHERE hcas.cust_acct_site_id =hcsu.cust_acct_site_id AND hcas.CUST_ACCOUNT_ID=hca.cust_account_id ) Selling_Profile
,flv1.meaning Application_Type, arta.type, arta.name receipt_activity_name , rcta.purchase_order Receipt_method_po
,adj.gl_date, rcta.trx_number
--,adj.adjustment_number
, TO_CHAR(rcta.trx_date,'MM/DD/YYYY') deposit_trx_date
,(SELECT SUM(extended_amount) FROM ra_customer_trx_lines_all WHERE customer_trx_id = rcta.customer_trx_id) inv_amount
,TO_CHAR(adj.apply_date,'MM/DD/YYYY') apply_date
,NULL applied_amount
,acctd_amount/NVL(rcta.exchange_rate,1) entered_amount
,rcta.invoice_currency_code currency ,NVL(rcta.exchange_rate,1) rate ,acctd_amount functional_amount
,gl.CURRENCY_CODE functional_currency
,rcta.org_id
, rcta.trx_date Rec_trx_date
,null reason_code
,adj.created_by created
,ppnf.FIRST_NAME||' ' || ppnf.LAST_NAME Approved
FROM
ra_customer_trx_all rcta
,hr_organization_units_f_tl haot
,hz_cust_accounts hca
,hz_parties hp
,hz_cust_site_uses_all hcsu
,ar_adjustments_all adj
,ar_receivables_trx_all arta
,fnd_lookup_values flv1
,gl_code_combinations cc
,gl_ledgers gl
,AR_DISTRIBUTIONS_ALL ada
,xla_distribution_links xladl
,xla_ae_lines xlal
,gl_ledgers ledger
,per_users pu
,PER_PERSON_NAMES_F ppnf
WHERE 1=1
AND ada.source_id = adj.adjustment_id
and ada.source_type='ADJ' and ada.source_table='ADJ' and xladl.ACCOUNTING_LINE_CODE ='ADJ'
AND xladl.source_distribution_type ='AR_DISTRIBUTIONS_ALL'
AND xladl.source_distribution_id_num_1 = ada.line_id
AND xlal.ae_header_id =xladl.ae_header_id and xlal.ae_line_num =xladl.ae_line_num
AND xlal.ledger_id=ledger.ledger_id
AND ledger.ledger_category_code ='PRIMARY'
AND rcta.org_id =haot.organization_id
AND haot.language =userenv('lang')
AND SYSDATE BETWEEN haot.effective_start_date AND haot.effective_end_date
AND rcta.bill_to_customer_id=hca.cust_account_id
AND rcta.bill_to_site_use_id = hcsu.site_use_id
AND hp.party_id= hca.party_id
AND rcta.customer_trx_id = adj.customer_trx_id
AND rcta.org_id=adj.org_id
AND adj.status ='A' -- only approved need to consider
AND adj.receivables_trx_id = arta.receivables_trx_id
AND adj.org_id = arta.org_id
AND arta.type <>'CLAIM_INVESTIGATION'
AND flv1.Lookup_type(+) = 'RECEIVABLES_TRX'
AND flv1.language(+) ='US'
AND arta.TYPE = flv1.LOOKUP_CODE(+)
--AND arta.code_combination_id = cc.code_combination_id
AND xlal.code_combination_id= cc.code_combination_id
and adj.approved_by= pu.user_guid
and pu.person_id = ppnf.person_id and ppnf.name_type='GLOBAL'
AND (rcta.org_id IN (:p_org_id)OR 1 IN (:p_org_id||'1'))
AND (((adj.gl_date BETWEEN NVL(:p_date_from , adj.gl_date) AND NVL(:p_date_to, adj.gl_date)) AND :p_run_by_date='GL Date')
OR
(( rcta.trx_date between NVL(:p_date_from , rcta.trx_date) AND NVL(:p_date_to, rcta.trx_date)) AND :p_run_by_date='Deposit Date'))
AND arta.type =NVL(:p_activity_code,arta.type)
AND (hca.account_number IN ( :p_cust_num) or 'All' IN ( :p_cust_num||'All') )
AND gl.ledger_id = rcta.set_of_books_id
--and rcta.trx_number ='54004'
AND ( rcta.org_id IN ( SELECT DISTINCT bu.bu_id
FROM fusion.fun_all_business_units_v bu
,fusion.fun_user_role_data_asgnmnts role
,fusion.per_users pu
,fusion.per_roles_dn_vl pr
,fusion.per_roles_dn_tl prtl
WHERE role.org_id = bu.bu_id
AND pu.user_guid = role.user_guid
AND pr.role_common_name = role.role_name
AND role.active_flag ='Y'
AND pu.username = fnd_global.user_name
and pr.role_id=prtl.role_id
and prtl.LANGUAGE='US'
and prtl.ROLE_NAME in ('XXC Accounts Receivable Analyst'
,'XXC Accounts Receivable Manager'
,'XXC Receivables Inquiry'
)
)
)
/*AND haot.name IN (SELECT meaning FROM fnd_lookup_values_vl WHERE lookup_type = 'BU_REGION_REPORTING' AND enabled_flag ='Y'
AND (DESCRIPTION in (:p_region) OR (COALESCE(:p_region,NULL) IS NULL) ) )*/ -- REF-292555
and haot.name in (select FLEX_VALUE from fnd_flex_values_vl FLV where FLV.value_category='XXC_CLOUD_BU_TO_REGION_CODE_MAPPING' and FLV.enabled_flag = 'Y'
and (FLV.attribute1 IN (:p_region) OR '1' IN (:p_region||'1') ))
UNION
/*Miscellaneous cash Receipts*/
SELECT
haot.name Business_Unit
,cc.segment1 Entitiy -- company_segment,
,cc.code_combination_id
,cc.segment1,cc.segment2,cc.segment3,cc.segment4,cc.segment5,cc.segment6,cc.segment7,cc.segment8,cc.segment9
,NULL customer_name
,NULL Customer_Num ,NULL bill_to_location, NULL Selling_Profile
,flv1.meaning Application_Type
,arta.TYPE,arta.name receipt_activity_name ,arm.name Receipt_method_po
,amcda.gl_date
,acra.receipt_number,TO_CHAR(acra.deposit_date,'MM/DD/YYYY') deposit_trx_date
,acra.amount receipt_amount
,TO_CHAR(amcda.apply_date,'MM/DD/YYYY') apply_date
,amcda.amount applied_amount, amcda.amount entered_amount
,acra.currency_code currency, NVL(acra.exchange_rate,1) rate, acra.amount * NVL(acra.exchange_rate,1) AS functional_amount
,gl.currency_code functional_currency
,acra.org_id
,acra.receipt_date Rec_trx_date
,null reason_code
,acra.created_by created
,null Approved
FROM
ar_cash_receipts_all acra,
ar_receipt_methods arm,
ar_receivables_trx_all arta,
fnd_lookup_values flv1,
ar_misc_cash_distributions_all amcda,
hr_organization_units_f_tl haot,
gl_code_combinations cc,
gl_ledgers gl
WHERE 1=1
AND acra.RECEIVABLES_TRX_ID = arta.RECEIVABLES_TRX_ID
AND arm.receipt_method_id = acra.receipt_method_id
AND acra.org_id = arta.org_id
AND flv1.Lookup_type(+) = 'RECEIVABLES_TRX'
AND flv1.language(+) ='US'
AND arta.type = flv1.lookup_code(+)
AND acra.cash_receipt_id = amcda.cash_receipt_id
AND acra.org_id = haot.organization_id
AND haot.language ='US'
AND SYSDATE BETWEEN haot.effective_start_date AND haot.effective_end_date
AND arta.code_combination_id = cc.code_combination_id
AND (acra.org_id IN (:p_org_id)OR 1 IN (:p_org_id||'1'))
AND (((amcda.gl_date BETWEEN NVL(:p_date_from , amcda.gl_date) AND NVL(:p_date_to, amcda.gl_date)) AND :p_run_by_date='GL Date')
OR
(( acra.deposit_date BETWEEN NVL(:p_date_from , acra.deposit_date) AND NVL(:p_date_to, acra.deposit_date)) AND :p_run_by_date='Deposit Date'))
AND arta.type =NVL(:p_activity_code,arta.type)
AND gl.ledger_id = acra.set_of_books_id
AND ( acra.org_id in ( SELECT DISTINCT bu.bu_id
FROM fusion.fun_all_business_units_v bu
,fusion.FUN_USER_ROLE_DATA_ASGNMNTS role
,fusion.per_users pu
,fusion.per_roles_dn_vl pr
,fusion.per_roles_dn_tl prtl
WHERE role.org_id = bu.bu_id
AND pu.user_guid = role.user_guid
AND pr.role_common_name = role.role_name
AND role.active_flag ='Y'
AND pu.username = fnd_global.user_name
and pr.role_id=prtl.role_id
and prtl.LANGUAGE='US'
and prtl.ROLE_NAME in ('XXC Accounts Receivable Analyst'
,'XXC Accounts Receivable Manager'
,'XXC Receivables Inquiry'
)
)
)
/*AND haot.name IN (SELECT meaning FROM fnd_lookup_values_vl WHERE lookup_type = 'BU_REGION_REPORTING' AND enabled_flag ='Y'
AND (DESCRIPTION IN (:p_region) OR (COALESCE(:p_region,NULL) IS NULL) ) )*/ -- REF-292555
and haot.name in (select FLEX_VALUE from fnd_flex_values_vl FLV where FLV.value_category='XXC_CLOUD_BU_TO_REGION_CODE_MAPPING' and FLV.enabled_flag = 'Y'
and (FLV.attribute1 IN (:p_region) OR '1' IN (:p_region||'1') )
)
--and acra.RECEIPT_NUMBER in ('22')
) a
, gl_code_combinations b -- To imporve performance
where
a.code_combination_id =b.code_combination_id
and (b.segment1 in ( :p_company_segment ) or 'All' in ( :p_company_segment||'All') )
and (b.segment2 in ( :p_selling_method ) or 'All' in ( :p_selling_method||'All') )
and (b.segment3 in ( :p_cost_center ) or 'All' in ( :p_cost_center||'All') )
and (b.segment4 in ( :p_account ) or 'All' in ( :p_account||'All') )
and (b.segment5 in ( :p_location ) or 'All' in ( :p_location||'All') )
and (b.segment6 in ( :p_Brand ) or 'All' in ( :p_Brand||'All') )
and (b.segment7 in ( :p_Intercompany ) or 'All' in ( :p_Intercompany||'All') )
and (b.segment8 in ( :p_future1 ) or 'All' in ( :p_future1||'All') )
and (b.segment9 in ( :p_future2 ) or 'All' in ( :p_future2||'All') )
)
where ((ABS(USD_Amount) >= abs(:p_threshold) and :p_threshold IS NOT NULL) OR (NVL(:p_threshold,0)=0) )
order by 1,2,13,22,19,21,24
--order Business unit, legal entity name,customer_name, receipt number, receipt activity name, GL date, amount.The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per source transaction.
| Element | Type | Definition |
|---|---|---|
| AR_RECEIVABLE_APPLICATIONS_ALL | dimension | dimension |
| AR_ADJUSTMENTS_ALL | dimension | dimension |
| GL_CODE_COMBINATIONS | dimension | dimension |
| HR_OPERATING_UNITS | dimension | dimension |
| Amount | measure | measure |
Every source object behind this report. Each linked table has its own page with full column descriptions, drawn from the Oracle BICC lineage and articulated for practitioners.
| Table | Reporting columns | Subject areas |
|---|---|---|
| AR_RECEIVABLES_TRX_ALL | 1 | 5 |
| AR_RECEIVABLE_APPLICATIONS_ALL | 35 | 2 |
| AR_ADJUSTMENTS_ALL | 19 | 2 |
| GL_CODE_COMBINATIONS | 7 | 61 |
| HR_OPERATING_UNITS | Setup / configuration table — joined for reference, not exposed for analytics | |