Absence Management
Fast formulas: the rules you write yourself
Which absence rules accept a fast formula and which formula type each one requires — from absence type conversion and validation to accrual ceiling, carryover, entitlement and payment rates — plus how a formula is created and compiled, and how to tell a compilation error from an execution error.
Learning objectives
- 1.State what Oracle Fast Formula is and why absence uses it alongside the delivered rules
- 2.Name the formula types for absence type conversion and validation
- 3.Map the accrual plan rule areas to their Global Absence formula types, and explain the two special cases (enrollment end needs an eligibility profile; the accrual event formula is linked by plan name)
- 4.Create a formula on the Fast Formulas page: name, type, description, effective date, formula text, compile, save
- 5.Distinguish a compilation error (syntax, at compile time, line number shown) from an execution error (data, at runtime)
Why this matters
The Absence Types and Absence Plans pages cover the delivered rules, and most policies fit inside them. The ones that do not — a proration on a mid-year grade change, a disbursement blocked below a balance threshold, a conversion that counts only whole working days — need a formula. But a formula is not a free-text field: every absence rule names the one formula type that may serve it, and attaching the wrong type is not an error you get told about, it is a rule that never runs.
If you skip this: A formula written against the wrong formula type — or an Accrual Event formula named anything but the plan name — saves and compiles cleanly and then does nothing, so the policy it implements is silently absent from every calculation.
What it is, why it exists, what breaks
What it is
Oracle Fast Formula is written in English words and basic mathematical functions and reads database information without knowing the database structure. For absence, each rule that takes a formula requires its own type: absence type conversion is Global Absence Type Duration (work days or hours only) and validation is Global Absence Entry Validation; accrual plans map their rule areas to Global Absence types for enrollment start/end, duration, anniversary event, accrual event, vesting, proration, ceiling and carryover (with proration variants), accrual definition and matrix, partial period rate, payment and disbursement rates, and the discretionary disbursement rule; qualification plans add roll-backward start, entitlement and band entitlement; donation plans add the donation rule.
Why it exists
The type gate exists because each rule passes specific inputs and expects specific outputs — the elective disbursement formula, for example, must return paymentPercentage and overrideValue. A formula of the wrong type cannot receive the inputs or deliver the outputs the rule needs.
What breaks without it
Two special cases break silently: the Enrollment End formula works only when an eligibility profile is associated with the plan, and the Accrual Event formula cannot be attached at all — its name must equal the absence plan name, which links it automatically. Name it anything else and the plan never sees it.
Source: ABS-FORM-001, ABS-FORM-003, ABS-FORM-004, ABS-FORM-006
Fast formulas as a gated pipeline
The rule names its formula type, the type gates the formula, and the failure phase tells you where the problem is: compile for syntax, runtime for data. Listed in order: The absence rule names its formula type, then Create and compile on the Fast Formulas page, then The name-linked exception, then Compile-time errors (syntax), then Runtime execution errors (data).
Fast formulas in Absence Management read as a pipeline. An absence rule — conversion or validation on an absence type; enrollment, duration, anniversary, accrual event, vesting, proration, ceiling, carryover, accrual matrix, partial period, payment, disbursement or donation rule on a plan — names exactly one Global Absence formula type, and that type is the only gate between the formula and the rule. The formula itself is created on the Fast Formulas page in My Client Groups: name, formula type, description, effective start date, then the formula text with its DEFAULT statements, then Compile and Save; when many formulas change at once, the Compile Formula process on Submit a Process or Report compiles them together. One rule is special: the Accrual Event formula is never attached — its name must equal the absence plan name, which links it automatically. Failures split by phase. At compile time the compiler stops at the first error and reports the line number and error type — syntax, statement order, uninitialized variable, type mismatch. At runtime the same formula can fail on data: divide by zero, no data found, NULL, a called formula not found, a recursive call, or a call hierarchy deeper than 10. A clean compile proves only the syntax; the data is tested when the formula runs.
What to take from this: Read the map as a pipeline from rule to formula to error surface: the absence rule names its formula type, the formula is created on the Fast Formulas page with that type, compiled, and saved — then failures split by phase. At compile time the compiler stops at the first error and reports a line number; at runtime the same formula can fail on data (divide by zero, no data found, a called formula missing) with no relation to whether it compiled.
Source: ABS-FORM-011, ABS-FORM-012, ABS-FORM-013
The grade-change proration that never ran
A vacation accrual plan pays a band rate by grade, and the policy says a mid-year grade change must prorate the annual accrual. The implementer writes a Global Absence Accrual Event formula to capture the change dates, compiles it successfully, and attaches it to the plan definition from the formula list.
- 1.The formula compiles with no errors — the text is syntactically valid and the inputs and outputs match the formula type.
- 2.But the Accrual Event formula cannot be attached to the plan definition at any point; the only link is the formula name equalling the absence plan name.
- 3.If the formula was named after the rule (for example "Grade Change Event") rather than exactly the plan name, the plan never links to it, and the proration rule simply does not exist.
- 4.Every mid-year grade change then accrues the full band rate for the whole year, and no error is raised anywhere — the symptom is only a balance that is too high.
Takeaway: The Accrual Event formula is the one absence formula linked by name, not by attachment. Name it exactly the plan name, and verify the link by checking that band-change dates appear in the accrual calculation, not by the absence of a compile error.
Source: ABS-FORM-006, ABS-FORM-012
Configuration model
Navigation paths
My Client Groups > Fast Formulas — search and select Fast Formulas, click CreateABS-FORM-011My Client Groups > Fast Formulas > Create > Continue > Formula Text > Compile > Save (fields: Formula Name, Formula Type, Description, Effective Start Date)ABS-FORM-011Submit a Process or Report > Compile Formula — run when multiple fast formulas were created or updated simultaneouslyABS-FORM-014Absence Administration work area > Absence Plans > Create Absence Plan (Accrual) > Accruals tab > Plan Limits — attach the Elective Disbursement Evaluation formula via the Carryover Proration field set to FormulaABS-FORM-008
Objects
Fast formula
The user-written rule text, created with a name, a formula type, a description and an effective start date; database item defaults (DEFAULT statements), contexts, input values and return values are decided before writing the text. Formula text is not translated, but handles non-English element names, input values and balances.
Risk if wrong: A DEFAULT missing for a database item that can return no data turns a compile-time clean formula into a runtime "No Data Found" error; a return value of the wrong type fails at the rule that consumes it.
Formula type
The gate between a formula and an absence rule: each absence rule — conversion, validation, enrollment start/end, duration, anniversary event, accrual event, vesting, proration, ceiling, carryover, accrual, matrix, partial period, payment and disbursement rates, disbursement and donation rules, entitlement — names the single Global Absence type that may serve it.
Risk if wrong: A formula of the wrong type cannot be attached where it is needed, and one attached where it is allowed but not wanted silently changes the calculation.
Accrual Event formula (name-linked)
Captures events during the calendar year that change a worker’s accrual band (e.g. a mid-year grade change), enabling proration; linked automatically because its name equals the absence plan name, never attached.
Risk if wrong: Any other name means the formula compiles but is never linked — the proration policy silently does not exist.
Elective Disbursement Evaluation formula
Validates an elective disbursement in an accrual plan, sets its payment percentage and can override the elected amount, returning paymentPercentage and overrideValue; the sample blocks disbursement entirely when the balance is below a threshold.
Risk if wrong: Without it, an elected disbursement below the policy threshold is paid; with the returns swapped, the override silently replaces the elected amount.
Constraints
- Each formula usage corresponds to one or more formula types requiring specific inputs and outputs; an absence rule accepts only the formula type named for it.
- The absence type Conversion rule (Global Absence Type Duration) converts only values in work days or work hours.
- The accrual plan Enrollment End formula works only if an eligibility profile is associated with the plan; the Enrollment Start formula cannot change the start date of a worker already enrolled in an existing plan.
- The Accrual Event formula cannot be attached to the plan definition; its name must equal the absence plan name.
- An absence on an accrual plan with formulas defined appears in Plan Participation, not Absence Records — view it via the Accrual Plan Balance dialog with a Balance Calculation Date.
- Compile with the Compile button on the Fast Formulas page for one formula; run the Compile Formula process from Submit a Process or Report when multiple formulas were created or updated simultaneously.
- Compilation stops at the first error and reports line number and error type; execution errors are data-related and occur while the formula runs.
Source: ABS-FORM-003, ABS-FORM-004, ABS-FORM-005, ABS-FORM-006, ABS-FORM-007, ABS-FORM-008, ABS-FORM-014
Common mistakes
Wrong: Attaching the Accrual Event formula to the plan like any other formula.
Symptom: The formula compiles and saves, but the plan never links to it, so band-change prorations silently never happen.
Fix: Name the formula exactly the absence plan name; that name is the only link. The formula cannot be attached to the plan definition at any point.
Wrong: Writing a formula against the wrong formula type because the name sounds right.
Symptom: The rule field does not offer the formula, or the formula runs with inputs it cannot use and the rule behaves as if no formula existed.
Fix: Read the formula type named on the rule (Global Absence Type Duration for conversion, Global Absence Entry Validation for validation, the Global Absence Plan… types for plan rules) and create the formula with exactly that type.
Wrong: Treating a clean compile as proof the formula works.
Symptom: The formula compiles but fails at runtime with No Data Found or Divide by Zero when real data arrives.
Fix: Compilation is syntax only. Provide DEFAULT statements for database items that can return no data or NULL, and expect data-related execution errors at runtime.
Wrong: Expecting an absence on a formula-driven accrual plan in Absence Records.
Symptom: The absence looks missing from the Manage Absences and Entitlements page.
Fix: With formulas defined on the plan, the absence appears under Plan Participation — open the accrual plan and enter a Balance Calculation Date in the Accrual Plan Balance dialog.
Wrong: Running the Compile Formula process for a single formula change.
Symptom: Time spent on a process run that the page-level Compile button already covered.
Fix: Use Compile on the Fast Formulas page for one formula; run the Compile Formula process on Submit a Process or Report only when multiple formulas were created or updated simultaneously.
Diagnosing it
Symptom: A fast formula fails, and the message does not say whether the formula text is wrong or the data is wrong.
Category: configuration
- 1.
Did the failure appear on the Fast Formulas page at compile time, with a line number?
If no: It is not a compilation error. A runtime message (No Data Found, Divide by Zero, NULL Data, Called Formula Not Found) is an execution error — the formula is syntactically valid and the data or a called formula is the problem.
Evidence to capture: The compile result on the Fast Formulas page versus the runtime error message
- 2.
Is the error a compilation error — syntax, statement order (ALIAS/DEFAULT/INPUT after other statements), uninitialized variable, inconsistent data types?
If no: Read the line number in the message and fix that line first; the compiler stops at the first error, so later lines may hold further errors.
Evidence to capture: Line number and error type in the compilation message
- 3.
For an Accrual Event formula that compiled but does nothing, does the formula name equal the absence plan name exactly?
If no: The formula is not linked. Rename it to the plan name — attachment is impossible for this formula type, the name is the only link.
Evidence to capture: Formula name versus plan name
- 4.
For a runtime error on a database item, is there a DEFAULT statement for it?
If no: No Data Found and NULL Data Found are raised when a database item returns nothing or NULL and has no default — add the DEFAULT statement.
Evidence to capture: The DEFAULT statements in the formula text versus the item named in the error
- 5.
If the formula calls another formula, is the called formula present, non-recursive, with matching input/output types, and is the call hierarchy no deeper than 10?
If no: Called Formula Not Found, Recursive Formula Call, type mismatches and Too Many Formula Calls are all call-structure errors, fixed in the calling formula, not in the data.
Evidence to capture: The formula call chain and its depth
Confirm: Classify first — compile-time (syntax, line number, on the page) versus execution-time (data, at runtime) — then fix: syntax at the reported line, defaults for data items, exact plan-name linking for the accrual event formula, and a valid call hierarchy for called formulas.
Recall
Which absence rules take a fast formula, what gates a formula to a rule, and how do compilation errors differ from execution errors?
Answer shape: Absence types take conversion (Global Absence Type Duration, work days/hours only) and validation (Global Absence Entry Validation) formulas; accrual plans take formula types for enrollment start/end, duration, anniversary event, accrual event, vesting, proration, ceiling, carryover, accrual definition and matrix, partial period, payment/disbursement/liability rates and the disbursement rule; qualification plans add roll-backward start, entitlement and band entitlement; donation plans add the donation rule. Each rule names its one formula type — that type is the gate. The Accrual Event formula is the exception: never attached, linked by having its name equal the plan name. Formulas are created on the Fast Formulas page (name, type, description, effective date, text, Compile, Save) and compiled in bulk via the Compile Formula process. Compilation errors are syntax errors caught at compile time with a line number; execution errors are data problems raised while the formula runs.
Memory hook: Type gates the rule; name links the accrual event. Compile checks syntax, execution meets data.
Source evidence
Chapter 4 of the Implementing Absence Management book (faiam) was read directly on 2026-11-07: the fast formula overview, the absence type, accrual plan, qualification plan, donation plan and elective disbursement formula tables, the worked formula-text example, and the compilation and execution error pages with their FAQs.
- source-faiam-formulas-overview
- source-faiam-formula-absence-type
- source-faiam-formula-accrual-plans
- source-faiam-formula-elective-disbursement
- source-faiam-formula-qualification-plans
- source-faiam-formula-donation-plans
- source-faiam-formula-text-example
- source-faiam-formula-compilation-errors
- source-faiam-formula-execution-errors
- source-faiam-formula-compile-process
- source-faiam-formula-error-kinds
Release scope: FA Latest
Recorded gaps
- The pages list the formula types per rule but do not publish the full input/output contract of each Global Absence type beyond the elective disbursement example; the contracts asserted here are the ones the pages state.
- The elective disbursement page gives one sample formula (ANC_ELECTDISBEVAL); other behaviors of that formula type beyond returning paymentPercentage and overrideValue are not asserted.
- The formula text example is one worked case (Range of Scheduled Hours); the full fast formula language reference is a separate book and is not summarized here.
Related concepts
- The accrual plan, configuredextends
The accrual plan lesson covers the delivered rule areas; this lesson is what happens when a rule area needs a custom formula instead, including the ceiling and carryover proration formulas.
- Absence typeextends
The absence type lesson covers the schedule and duration rules; the conversion and validation formulas here are the custom-rule layer on the same object, and the conversion formula applies only where the type measures in work days or hours.
- Eligibility profiles and derived factorsdepends on
The Enrollment End formula on an accrual plan works only when an eligibility profile is associated with the plan — the eligibility model from the previous lesson is a prerequisite of that formula.
Self-check
An auto-graded assessment is attached to this lesson: assessment-absence-formulas
Lesson progress
Checking your progress…