{
  "test_id": "ORCL.HCM.ABS.BALANCE",
  "scenario_name": "Absence Balance",
  "application": "Oracle Fusion Cloud",
  "product": "HCM",
  "module": "Absence Management",
  "process": "Absence Balance",
  "business_flow": "Workforce Management",
  "scenario_type": "Positive / Functional",
  "priority": "High",
  "automation_status": "SyntraFlow Ready",
  "library": "Syntra Standard",
  "canonical_url": "https://www.syntraflow.cloud/oracle-erp-testing-tool/test-library/hcm/absence-management/absence-balance/",
  "objective": {
    "intro": "This test validates absence-plan balance calculation in Oracle Fusion Absence Management, confirming that approved absence requests, withdrawals, restorations and accruals correctly affect a worker's available balance for the selected absence plan.",
    "confirms": [
      "the worker's opening balance for the selected absence plan is displayed correctly",
      "an approved absence request correctly consumes the expected amount from available balance",
      "a withdrawn or cancelled absence correctly restores the expected amount to available balance",
      "Opening Balance − Approved Absence + Restored/Accrued Amount = Closing Balance holds for the worker's absence plan balance as of the balance date",
      "the absence transaction is reflected exactly once in the balance, with no duplicate impact",
      "carryover, where configured, is applied correctly to the balance"
    ],
    "scope_note": "This scenario validates the core Absence Balance calculation for a worker already enrolled in an absence plan with existing transactions. Upstream absence entry, accrual processing and withdrawal transactions are covered by separate test scenarios within the same Absence Management business flow."
  },
  "preconditions": [
    "The worker is enrolled in the absence plan and has an active assignment.",
    "An opening balance exists for the worker's absence plan as of the balance date.",
    "Required absence-plan, accrual and carryover configuration is in place.",
    "At least one approved, withdrawn or accrued absence transaction is available to exercise the balance calculation.",
    "The test user has the appropriate Absence Management role and access to view the worker's balance.",
    "The as-of date used for the balance query is within a valid, supported range for the plan."
  ],
  "test_data": [
    {
      "field": "Worker",
      "example": "${WORKER}"
    },
    {
      "field": "Absence Plan",
      "example": "${ABSENCE_PLAN}"
    },
    {
      "field": "Opening Balance",
      "example": "${OPENING_BALANCE}"
    },
    {
      "field": "Approved Absence Amount",
      "example": "${APPROVED_ABSENCE_AMOUNT}"
    },
    {
      "field": "Restored Amount",
      "example": "${RESTORED_AMOUNT}"
    },
    {
      "field": "Accrued Amount",
      "example": "${ACCRUED_AMOUNT}"
    },
    {
      "field": "Closing Balance",
      "example": "${CLOSING_BALANCE}"
    },
    {
      "field": "As-Of Date",
      "example": "${AS_OF_DATE}"
    },
    {
      "field": "Carryover",
      "example": "${CARRYOVER}"
    }
  ],
  "business_steps": [
    {
      "step_number": 1,
      "step_name": "Sign In to Oracle Fusion",
      "action": "Sign in to Oracle Fusion Cloud with a user account that has Absence Management access.",
      "test_data": "",
      "expected_result": "The Oracle Fusion Cloud home page loads successfully for the authenticated user.",
      "validation_type": "action"
    },
    {
      "step_number": 2,
      "step_name": "Navigate to Absence Management",
      "action": "Navigate to the Absence Management area used to view a worker's absence plan balance.",
      "test_data": "",
      "expected_result": "The Absence Management work area opens successfully.",
      "validation_type": "action"
    },
    {
      "step_number": 3,
      "step_name": "Locate the Worker's Absence Plan Balance",
      "action": "Locate the worker's balance for the selected absence plan.",
      "test_data": "${WORKER} / ${ABSENCE_PLAN}",
      "expected_result": "The worker's absence plan balance is found and displayed.",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Review the Opening Balance",
      "action": "Review the opening balance recorded for the worker's absence plan as of the balance date.",
      "test_data": "${OPENING_BALANCE} / ${AS_OF_DATE}",
      "expected_result": "The opening balance is displayed and matches the expected starting value for the period.",
      "validation_type": "action"
    },
    {
      "step_number": 5,
      "step_name": "Apply, Approve or Withdraw an Absence",
      "action": "Apply and approve an absence request, or withdraw an existing absence, against the worker's absence plan.",
      "test_data": "${APPROVED_ABSENCE_AMOUNT} / ${RESTORED_AMOUNT}",
      "expected_result": "The absence transaction is submitted, approved or withdrawn without unexpected errors.",
      "validation_type": "action"
    },
    {
      "step_number": 6,
      "step_name": "Review the Recalculated Balance",
      "action": "Review the worker's balance for the absence plan after the transaction has been processed.",
      "test_data": "${CLOSING_BALANCE}",
      "expected_result": "A recalculated closing balance is displayed for the worker and absence plan.",
      "validation_type": "action"
    },
    {
      "step_number": 7,
      "step_name": "Verify Arithmetic Against Expected Formula",
      "action": "Verify that Opening Balance minus Approved Absence plus Restored/Accrued Amount equals the reported Closing Balance for the worker's absence plan.",
      "test_data": "",
      "expected_result": "Opening Balance − Approved Absence + Restored/Accrued Amount = Closing Balance holds for the worker's absence plan.",
      "validation_type": "business_assertion",
      "note": "This is the central business assertion for this scenario. Illustrative example only, using round numbers, not a real balance or customer-specific formula: if ${OPENING_BALANCE}=120, ${APPROVED_ABSENCE_AMOUNT}=24, ${RESTORED_AMOUNT}=0 and ${ACCRUED_AMOUNT}=10, then ${CLOSING_BALANCE}=106. Test execution is designed to use ${PLACEHOLDER} tokens rather than real balance figures, and this page does not publish any customer-specific balance formula as fact."
    },
    {
      "step_number": 8,
      "step_name": "Confirm No Duplicate Balance Impact",
      "action": "Confirm that the absence transaction is reflected exactly once in the worker's balance, with no duplicate consumption or restoration.",
      "test_data": "",
      "expected_result": "The balance reflects the transaction exactly once and remains consistent on repeat query.",
      "validation_type": "action"
    }
  ],
  "expected_results": [
    "The worker's opening balance for the absence plan is displayed correctly.",
    "The approved absence correctly consumes the expected amount from available balance.",
    "A withdrawn or cancelled absence correctly restores the expected amount to available balance.",
    "Opening Balance minus Approved Absence plus Restored/Accrued Amount equals Closing Balance.",
    "The transaction is reflected exactly once in the balance, with no duplicate impact.",
    "Carryover, where configured, is applied correctly to the balance."
  ],
  "validation_checkpoints": [
    "Opening Balance − Approved Absence + Restored/Accrued Amount = Closing Balance, verified arithmetically.",
    "Absence plan correct for the worker.",
    "Transaction reflected exactly once in the balance, with no duplicate impact.",
    "Balance as-of date correct.",
    "Carryover applied correctly where configured.",
    "Balance query returns consistent results without an intervening transaction."
  ]
}
