FA-03 EBS R12.x Fixed Assets Tier 2 Data Fix

Asset Retirement Diagnostic

Retirement transaction status, gain/loss account setup, NBV calculation accuracy, partial retirement proportions, reinstatement history, and retirement date vs. depreciation period alignment.

PlatformOracle EBS R12.x
Input RequiredAsset Number or Retirement ID
Diagnostic Checks25+
Data Sources6 Oracle tables
Fix Options3 guided fixes
Backup CreatedYes — Automatic

Why This Fails — and What It Costs

Oracle EBS Fixed Assets retirement is a two-step process: the retirement is entered via the Retirements form or through the Mass Retirements program, producing a retirement transaction in FA_RETIREMENTS with a status of PENDING, and then the Calculate Gains and Losses program runs to calculate the gain or loss on disposal and update the retirement to PROCESSED status. If the retirement is entered but Calculate Gains and Losses is not run, or if it errors during the calculation, the asset remains in an intermediate retirement state — removed from the depreciation queue but not yet fully retired in the GL.

Partial retirements add a second dimension of complexity. When only part of an asset is retired — for example, a piece of equipment that had components added at different times and only the original component is being disposed of — Oracle FA records a partial retirement that reduces the asset cost and accumulated depreciation proportionally. If the partial retirement amount is calculated incorrectly, or if the retirement affects the wrong distribution line, the remaining asset cost will be incorrect, producing incorrect depreciation going forward. FA-03 validates partial retirement amounts against the original cost and the accumulated depreciation to confirm the split is correct.

Proceeds of sale and removal costs are required fields for retirements where the asset was sold rather than scrapped. When proceeds are not entered — because the asset accountant did not have the sale documentation at the time of entry — the retirement records a $0 proceeds amount, and the gain or loss calculation treats the full net book value as a loss. If the correct proceeds are subsequently entered via a retirement adjustment, the gain/loss must be recalculated. FA-03 identifies retirements with zero proceeds where the asset had a non-zero net book value to flag potential missing sale documentation.

FA-03 runs a complete asset retirement diagnostic — retirement status in FA_RETIREMENTS, PENDING vs PROCESSED retirement count, Calculate Gains and Losses completion status, partial retirement amount validation against current cost and accumulated depreciation, proceeds and removal cost completeness check, gain/loss account configuration in the asset category, and reinstatement eligibility for retirements that need to be reversed.

What This Script Diagnoses

FA-03 systematically investigates every major condition that can cause the issue this diagnostic targets. Below is the complete coverage breakdown.

Retirement Status
FA_RETIREMENTS STATUS field — PENDING vs PROCESSED. PENDING retirement count by book and period. Assets removed from depreciation queue but not yet fully processed through Calculate Gains and Losses.
Gain/Loss Calculation
Pre-CGL gain/loss estimate: NBV vs proceeds vs removal cost. Gain/loss account configuration in the asset category — CCID active status. Expected journal entries after CGL completion.
Partial Retirement Validation
Partial retirement amount vs current asset cost and accumulated depreciation. Distribution line split accuracy. Remaining asset cost after partial retirement — confirms correct depreciation going forward.
Proceeds & Documentation
SALE retirement proceeds completeness. Zero-proceeds SALE retirements flagged for missing documentation review. Removal cost entry status. Retirement type (SALE vs SCRAPPED vs TRADE-IN) consistency with supporting documentation.

What the Report Looks Like

Representative output showing the diagnostic running against a real-world scenario. The script identifies every condition, states the root cause, and generates the fix.

FA-03 — FA-03 Diagnostic Report
════════════════════════════════════════════════════════════
  ORACLE EBS R12 — FA ASSET RETIREMENT DIAGNOSTIC
════════════════════════════════════════════════════════════
  Asset Number       : 108441
  Description        : Forklift — Warehouse B
  Book               : US CORP
  Case Number        : FA-504180
  Report Date        : 21-FEB-2026 11:30:20
════════════════════════════════════════════════════════════

[ SECTION 1 — RETIREMENT STATUS ]            STATUS: ✗ PENDING
────────────────────────────────────────────────────────────
  Retirement Date    : 15-FEB-2026
  Retirement Status  : PENDING — Calculate Gains and Losses not run ✗
  Retirement Type    : SALE
  Proceeds Entered   : $12,500 ✓
  Removal Cost       : $800 ✓

[ SECTION 2 — GAIN/LOSS CALCULATION ]        STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
  Asset Cost         : $48,000
  Accumulated Deprn  : $36,000 (75% reserved)
  Net Book Value     : $12,000
  Proceeds           : $12,500
  Estimated Gain     : $500 gain on disposal
  ✗ Calculate Gains and Losses not yet run — retirement incomplete

[ SECTION 3 — GL ACCOUNTS ]                  STATUS: ✓ PASS
────────────────────────────────────────────────────────────
  Gain on disposal account: 01-000-8100-0000 — ACTIVE ✓
  Loss on disposal account: 01-000-8200-0000 — ACTIVE ✓
  Proceeds account: 01-000-8300-0000 — ACTIVE ✓

[ SECTION 4 — ASSET STATUS ]                 STATUS: ✓ PASS
────────────────────────────────────────────────────────────
  Asset fully depreciated before retirement ✓
  No pending transactions blocking retirement ✓

════════════════════════════════════════════════════════════
  DIAGNOSTIC SUMMARY
════════════════════════════════════════════════════════════
  Retirement PENDING — run Calculate Gains and Losses to complete
  Expected: $500 gain on disposal after CGL run
════════════════════════════════════════════════════════════

The Four-Layer Architecture in FA-03

1
Diagnostic Engine
Runs 25+ checks across retirement status in FA_RETIREMENTS, PENDING vs PROCESSED count, Calculate Gains and Losses completion status, partial retirement amount validation, proceeds and removal cost completeness, gain/loss account configuration validity, and reinstatement eligibility for reversals.
2
Backup Created
Before any retirement record is modified, CONS_BACKUP.FA_RETIREMENTS_<case#>, FA_BOOKS_<case#>, and FA_TRANSACTION_HEADERS_<case#> are created and row counts verified.
3
Guided Data Fix
PENDING retirement corrections — proceeds updates, removal cost updates, partial retirement amount corrections — are applied directly with full backup before Calculate Gains and Losses is run. Reinstatement of incorrect retirements via standard FA Reinstate function with full pre-reinstatement backup.
4
KB Article Generated
Complete KB article generated — asset number, retirement type, proceeds, gain/loss calculation, GL accounts, CGL completion result. Upload directly to your knowledge base.

Backup & Rollback for FA-03

Every table touched by FA-03 data fixes is backed up before the first UPDATE fires. Backup is verified by row count. One script restores the original state if needed.

Tables Backed Up — FA-03

CONS_BACKUP.FA_RETIREMENTS_<case#> CONS_BACKUP.FA_BOOKS_<case#> CONS_BACKUP.FA_DEPRN_SUMMARY_<case#> CONS_BACKUP.FA_TRANSACTION_HEADERS_<case#>

Backup happens before any DML. Script aborts if backup creation fails.

Pre-Flight Safety Guards

CAPITALIZED_FLAG = 'NO' or STATUS = 'PENDING'Required ✓
No active depreciation run in progressVerified ✓
No active session lock on target rowsChecked ✓
CONS_BACKUP schema accessibleVerified ✓

FIX_BACKUP_REGISTRY Entry

REGISTRY_ID<auto-generated>
CASE_NUMBER<consultant case#>
SOURCE_TABLE<table modified>
ROWS_BACKED_UP<row count>
BACKUP_VERIFIEDYES ✓
ROLLBACK_SQLStored as CLOB
STATUSACTIVE
ENVIRONMENTPRODUCTION

Auto-Generated Knowledge Base Article

This article is produced automatically at the end of every FA-03 execution — written from actual run output. No manual documentation required.

KB-FA-504180-001 · Script: FA-03
Asset 108441 Retirement PENDING — Calculate Gains and Losses Not Run
Asset 108441 (Forklift — Warehouse B) retirement entered 15-FEB-2026 with proceeds $12,500 and removal cost $800. Retirement status PENDING — Calculate Gains and Losses not yet submitted. Asset removed from depreciation queue but gain/loss not recognized.
Calculate Gains and Losses was not submitted after the retirement was entered. The retirement was entered on the last day of the period and the CGL submission was missed in the period-close checklist. Asset NBV $12,000, proceeds $12,500 — $500 gain should be recognized.
FA_RETIREMENTS — STATUS = PENDING (Retirement ID: 88210, Asset 108441)
FA_BOOKS — COST, DEPRN_RESERVE (US CORP, Asset 108441 — NBV $12,000)
Calculate Gains and Losses submitted for US CORP FEB-2026. Retirement status updated to PROCESSED. $500 gain on disposal recognized — journal created and posted to GL. Asset status in FA_ADDITIONS_B updated to RETIRED.
Calculate Gains and Losses should be added to the period-close checklist as a required step immediately after retirement entry and before period-close readiness check. FA-03 retirement status scan should run as part of FA-04 period-close readiness.
FAAsset RetirementFA_RETIREMENTSCalculate Gains and LossesPENDING RetirementGain on DisposalEBS R12.2

What This Script Finds

Incomplete

PENDING Retirement — CGL Not Run

Asset retirement entered but Calculate Gains and Losses not submitted. Asset removed from depreciation queue but gain/loss not recognized in GL. FA-03 confirms proceeds, removal cost, and accounts are complete before CGL submission.

Missing

Zero Proceeds on SALE Retirement

SALE retirement entered with $0 proceeds — treating full NBV as a loss. FA-03 flags retirements where proceeds are zero but NBV is non-zero, indicating possible missing sale documentation.

Partial

Partial Retirement Amount Error

Partial retirement cost does not align with the proportional share of total cost and accumulated depreciation. Remaining asset after retirement will carry incorrect cost, producing depreciation errors going forward.

Reversal

Incorrectly Retired Asset

Asset was retired in error — wrong asset number, wrong date, or retirement entered for an asset that should have been transferred instead. FA-03 confirms reinstatement eligibility and guides the reinstate transaction.

Tables Examined

TableModulePurpose
FA_RETIREMENTSFARetirement transactions — status, proceeds, removal cost
FA_BOOKSFAAsset cost and accumulated depreciation at retirement date
FA_DEPRN_SUMMARYFADepreciation taken through retirement period
FA_TRANSACTION_HEADERSFATransaction history — retirement and CGL event records
FA_ADDITIONS_BFAAsset status — RETIRED flag after CGL completion
FA_DISTRIBUTION_HISTORYFADistribution lines for partial retirement split validation
Decision Framework

How Every Fix Decision Is Made

Before any data is modified in a production Oracle database, AP-01 walks through a four-stage decision process. Every condition identified by the diagnostic maps to exactly one resolution path.

1
First Option — Always
Can the front end fix this?

Oracle's own forms and concurrent programs are always the first option. If the condition can be corrected through Oracle's standard UI — a form, a concurrent program, a setup screen — that path is taken first. No consultant SQL required, no database risk, and the fix is fully supported by Oracle. The diagnostic identifies these conditions explicitly and states the exact front-end navigation path.

✓ Functional Fix
2
When Front End Is Not Available
Is a direct data fix safe to apply?

When the front-end path is unavailable or would require an unacceptable volume of manual steps, a direct fix is evaluated against explicit criteria. All of the following must be true before proceeding:

The fix mirrors exactly what Oracle's own code would have done if the underlying condition were corrected
All dependent tables have been identified and will be updated in the same transaction
The fix is fully reversible — a single INSERT from the backup table restores the original state
The environment patch level has been confirmed against the fix logic version
⚡ Direct Fix
3
Hard Stops — No Exceptions
Does this require Oracle Support?

Certain table areas are never touched directly, regardless of how well the underlying structure is understood. The diagnostic flags these conditions and generates the Service Request documentation:

XLA subledger tablesXLA_EVENTS, XLA_AE_HEADERS — incorrect changes corrupt the subledger audit trail in ways undetectable until period close fails or an auditor requests a reconciliation
Workflow engine tablesWF_ITEMS, WF_ITEM_ACTIVITY_STATUSES — ad-hoc DML can corrupt the workflow engine state instance-wide
Recurring conditions after a fix — indicates a code defect, not a data error. Documented and submitted as a Service Request with a reproducible test case
⚠ Oracle Support
4
For All Approved Direct Fixes
Backup → Execute → Verify → Document

A timestamped backup table is created and row-count verified before the first UPDATE fires. Explicit parameter confirmation is required — the script will not self-execute. After execution, a verification query confirms the expected state. A complete change record — rows affected, before and after values, database username, timestamp — is written to the FIX_BACKUP_REGISTRY and becomes the primary artifact in the knowledge base entry for this incident.

📋 Documented
Condition Identified Resolution Path Notes
PENDING retirement — Calculate Gains and Losses not run Functional First Submit the Calculate Gains and Losses concurrent program for the book and period. FA-03 confirms the retirement data is complete (proceeds, removal cost, retirement date) before CGL submission.
Missing proceeds on SALE retirement Direct Fix FA-03 identifies the retirement with zero proceeds and non-zero NBV. Updates FA_RETIREMENTS.PROCEEDS_OF_SALE with full backup after Controller authorization. CGL rerun required after proceeds correction.
Partial retirement amount incorrect Direct Fix FA-03 validates the partial retirement cost against the current asset cost and accumulated depreciation. Corrects FA_RETIREMENTS.COST_RETIRED with full backup before CGL is run.
Gain/loss account disabled in asset category Functional First Correct the gain/loss account in the asset category setup: Assets > Asset Categories > Books. FA-03 identifies the disabled CCID and the active replacement account for the category.
Retirement in wrong period — period already closed Direct Fix FA-03 identifies the next open FA period and corrects RETIREMENT_PRORATE_CONVENTION in FA_RETIREMENTS with full backup. Pre-flight confirms no CGL has run yet.
Incorrect retirement type — SCRAPPED vs SALE Direct Fix FA-03 corrects RETIREMENT_TYPE_CODE in FA_RETIREMENTS with full backup. If SCRAPPED is corrected to SALE, proceeds must also be added before CGL.
Reinstate incorrectly retired asset Functional First Use the Reinstate function in the Retirements form: Assets > Retirements > Reinstate. FA-03 confirms the asset is in PROCESSED status and the period is open before reinstatement.
Multiple PENDING retirements — batch CGL not run Functional First Submit Calculate Gains and Losses for the book and period — CGL processes all PENDING retirements in the book in one run. FA-03 identifies the full count and total NBV of pending retirements.
Safeguards

Nothing Executes Without a Safety Net

Before any data fix runs, the script verifies pre-flight conditions and creates a complete verified backup. If any check fails, the script aborts. There is no partial execution path.

Pre-Flight Checks — All Must Pass
POSTED_FLAG = 'N'
Will not modify a posted transaction under any circumstances
ACCOUNTING_EVENT_ID IS NULL
Will not modify rows with an active or pending XLA accounting event
No active database lock
Checks V$LOCK — will not proceed if another session holds a lock on target rows
CONS_BACKUP schema writable
Backup schema must be accessible before any DML is permitted
Explicit confirmation required
Script outputs a confirmation prompt — DML does not execute until consultant enters the case number as the execution parameter
Backup Methodology

Before the first UPDATE fires, the script creates a complete copy of every row to be modified. Tables are named CONS_BACKUP.<TABLE>_<CASE#> and persist permanently after execution.

FA_RETIREMENTS
FA_BOOKS
FA_DEPRN_SUMMARY
FA_TRANSACTION_HEADERS
Row count verified after backup creation. If backup fails for any reason the script aborts without executing any DML. Rollback is a single INSERT from the backup table. No reconstruction required.
FA-03 — Pre-Flight & Backup Verification
════════════════════════════════════════════════════════════
  PRE-FLIGHT SAFETY CHECK
════════════════════════════════════════════════════════════
  Retirement ID      : 88210
  Asset Number       : 108441
  STATUS             : PENDING — safe to modify ✓
  CGL Run            : Not yet run ✓
  CONS_BACKUP Schema : Accessible ✓
────────────────────────────────────────────────────────────
  ALL PRE-FLIGHT CHECKS PASSED
════════════════════════════════════════════════════════════
  Creating : CONS_BACKUP.FA_RETIREMENTS_504180
  Rows     : 1 row backed up ✓
  Creating : CONS_BACKUP.FA_BOOKS_504180
  Rows     : 1 row backed up ✓
  Registry : FIX_BACKUP_REGISTRY — ID 5072 created ✓
────────────────────────────────────────────────────────────
  BACKUP COMPLETE
════════════════════════════════════════════════════════════
  Enter case number to confirm : 504180
  Confirmed.
════════════════════════════════════════════════════════════
Knowledge Base

Every Execution Produces a Record

The knowledge base article is generated automatically from the script's execution output. No manual documentation required. It becomes the institutional record — for the team, for auditors, and for every future engagement in the same environment.

Zero Manual Effort
Every field — environment, tables, before/after values, backup reference, root cause, prevention — is generated from actual execution output. Nothing is written by hand.
Patterns Surface Over Time
The first engagement produces findings. The third produces patterns. Recurring conditions that are invisible as individual incidents become obvious as knowledge base trends.
Survives Staff Turnover
The knowledge base is an institutional record of the Oracle environment. A new manager, a new DBA, or an external auditor can read exactly what happened, what was done, and what prevents recurrence.
KB-FA-504180-001
Asset 108441 Retirement PENDING — Calculate Gains and Losses Not Run
EBS R12.2.10 · Fixed Assets
● RESOLVED
Symptom
Asset 108441 (Forklift — Warehouse B) retirement entered 15-FEB-2026 with proceeds $12,500 and removal cost $800. Retirement status PENDING — Calculate Gains and Losses not yet submitted. Asset removed from depreciation queue but gain/loss not recognized.
Root Cause
Calculate Gains and Losses was not submitted after the retirement was entered. The retirement was entered on the last day of the period and the CGL submission was missed in the period-close checklist. Asset NBV $12,000, proceeds $12,500 — $500 gain should be recognized.
Tables
FA_RETIREMENTS — STATUS = PENDING (Retirement ID: 88210, Asset 108441)
FA_BOOKS — COST, DEPRN_RESERVE (US CORP, Asset 108441 — NBV $12,000)
Fix Applied
Calculate Gains and Losses submitted for US CORP FEB-2026. Retirement status updated to PROCESSED. $500 gain on disposal recognized — journal created and posted to GL. Asset status in FA_ADDITIONS_B updated to RETIRED.
Prevention
Calculate Gains and Losses should be added to the period-close checklist as a required step immediately after retirement entry and before period-close readiness check. FA-03 retirement status scan should run as part of FA-04 period-close readiness.
Tags
FAAsset RetirementFA_RETIREMENTSCalculate Gains and LossesPENDING RetirementGain on DisposalEBS R12.2

Oracle Documentation References

References the Oracle public documentation for this diagnostic area. These links open directly on docs.oracle.com.

R12 Guide (PDF)Title & ChapterDetail
120faug.pdfOracle Assets User Guide — Chapter 4: Retirementspp. 4-1 to 4-x: Retiring assets, partial retirements, and retirement accounting entries
120faug.pdfOracle Assets User Guide — Chapter 3: Asset Maintenancepp. 3-1 to 3-x: Adjustments, transfers, and reclassifications before retirement
120faug.pdfOracle Assets User Guide — ReportsAsset Retirements report and Gain/Loss report for retirement transaction verification

Ready to Resolve This in Your Environment?

FA-03 is one of 65 diagnostic scripts covering every major Oracle EBS and Fusion module. William A. Green Consulting runs the script in your environment, applies guided data fixes, and builds the knowledge base that prevents the same issues from recurring.

Schedule a Discovery Call → ← View All 65 Scripts

See this script run autonomously — Oracle AI Platform →