AR Aging
Executive Summary
Purpose & Scope
- Track and report on accounts receivable aging for collections management and financial health monitoring
- Scope includes: Aging bucket calculations, AR reports, collection priority identification
- Out of scope: Automated collection workflows, dunning letters
Objectives
- Provide visibility into outstanding receivables by age
- Enable collections prioritization based on aging buckets
- Support client-level and portfolio-wide AR analysis
- Generate AR Aging statements/reports
Process Overview
AR Aging Calculation
mermaid
flowchart TD
BI[Open Billing Items] --> DUE[Check Due Date]
DUE --> AGING{Days Past Due}
AGING -->|Current| CUR[Current]
AGING -->|1-30| D30[1-30 Days]
AGING -->|31-60| D60[31-60 Days]
AGING -->|61-90| D90[61-90 Days]
AGING -->|Over 90| D90P[90+ Days]
CUR --> SUM[Calculate Summary]
D30 --> SUM
D60 --> SUM
D90 --> SUM
D90P --> SUM
SUM --> RPT[Generate Report]Figure 1: AR Aging Bucket Calculation Flow
Core Rules & Requirements
Aging Buckets
| Bucket | Days Past Due | Priority |
|---|---|---|
| Current | ≤ 0 (not yet due) | Low |
| 1-30 Days | 1-30 | Medium |
| 31-60 Days | 31-60 | High |
| 61-90 Days | 61-90 | Urgent |
| 90+ Days | > 90 | Critical |
Aging Calculation
Days Past Due = As-Of Date - Due Date
If Days Past Due ≤ 0: Amount → Current bucket
If Days Past Due 1-30: Amount → 1-30 bucket
If Days Past Due 31-60: Amount → 31-60 bucket
If Days Past Due 61-90: Amount → 61-90 bucket
If Days Past Due > 90: Amount → 90+ bucketAmount Calculations
| Field | Calculation |
|---|---|
| Original Amount | Billing item gross amount (REV line) |
| Applied Amount | Sum of cash receipt applications |
| Remaining Amount | Original - Applied |
| Outstanding Total | Sum of remaining amounts |
IMPORTANT
Only the remaining balance is classified into aging buckets, not the original amount.
Open Items Filter
By default, AR Aging only includes items where open_item_ind = true.
An item is closed when:
- REV balance = 0 AND PAY balance = 0
- Item is fully paid or written off
Client Filter
AR Aging can be run:
- Portfolio-wide: All clients (no filter)
- Single client: Filter by
client_id
User Interface Specifications
AR Aging Report Screen
Purpose: Generate AR Aging reports for analysis.
Filters:
| Filter | Type | Default |
|---|---|---|
| Client | Autocomplete | All Clients |
| As-Of Date | Date Picker | Today |
| Open Items Only | Toggle | On |
Actions:
- Preview (view data without PDF)
- Generate Report (create PDF)
- Export to Excel
AR Aging Summary View
Summary Table:
| Bucket | Amount | % of Total |
|---|---|---|
| Current | ||
| 1-30 Days | ||
| 31-60 Days | ||
| 61-90 Days | ||
| 90+ Days | ||
| Total | 100% |
AR Aging Detail View
Columns:
| Column | Description |
|---|---|
| Client | Client name |
| Deal | Deal name |
| Invoice # | Invoice reference |
| Invoice Date | Billing date |
| Due Date | Payment due date |
| Original Amount | Full invoice amount |
| Applied | Cash applied |
| Current | Current bucket amount |
| 1-30 | 1-30 day bucket |
| 31-60 | 31-60 day bucket |
| 61-90 | 61-90 day bucket |
| 90+ | 90+ day bucket |
Sorting: Default by Days Past Due (descending)
Grouping: Optional grouping by Client
AR Aging Health Check
Purpose: Quick dashboard view of AR health.
| Metric | Description |
|---|---|
| Total Outstanding | Sum of all open balances |
| Current % | Percentage in Current bucket |
| Past Due % | Percentage in 1+ day buckets |
| 90+ % | Percentage in 90+ bucket |
| Item Count | Total open receivables |
| Average Age | Weighted average days past due |
Data Requirements
Source: Billing Items
AR Aging reads from billing items where open_item_ind = true:
| Field | Usage |
|---|---|
billing_item_id | Unique identifier |
billing_item_name | Display name / invoice reference |
billing_item_due_dt | Due date for aging calculation |
open_item_ind | Filter for open items |
client_id | Client filter |
deal_id | Deal association |
Source: Billing Item Details
| Field | Usage |
|---|---|
billing_item_detail_gross_amt | Original amount |
billing_item_detail_type_cd | REV or PAY |
Source: Cash Receipt Applications
| Field | Usage |
|---|---|
cash_receipt_amt_applied | Applied amount |
billing_item_detail_id | Link to detail |
AR Aging Line Item (Calculated)
| Field | Type | Description |
|---|---|---|
clientName | String | Client display name |
dealName | String | Deal name |
invoiceNumber | String | Invoice reference |
invoiceDate | Date | Billing date |
dueDate | Date | Payment due date |
originalAmount | Decimal | Full invoice amount |
appliedAmount | Decimal | Cash applied |
currentAmount | Decimal | Current bucket |
days1to30 | Decimal | 1-30 day bucket |
days31to60 | Decimal | 31-60 day bucket |
days61to90 | Decimal | 61-90 day bucket |
days90Plus | Decimal | 90+ day bucket |
AR Aging Summary (Calculated)
| Field | Type | Description |
|---|---|---|
current | Decimal | Total in Current bucket |
days1to30 | Decimal | Total in 1-30 bucket |
days31to60 | Decimal | Total in 31-60 bucket |
days61to90 | Decimal | Total in 61-90 bucket |
days90Plus | Decimal | Total in 90+ bucket |
See Also
| Document | Relationship |
|---|---|
| Billing Items | Source data for AR aging |
| Statements | AR Aging statements |
| Write-Offs | Aged receivables may be written off |
Gherkin Scenarios
Scenario: Calculate Aging for Single Receivable
gherkin
Feature: AR Aging Calculation
Scenario: Receivable is placed in correct bucket based on days past due
Given a billing item with due date 2026-01-01
And original amount $10,000
And cash applied $3,000
And today is 2026-02-15 (45 days past due)
When AR aging is calculated
Then remaining amount should be $7,000
And the amount should be in the 31-60 days bucketScenario: Generate Portfolio AR Aging Report
gherkin
Feature: AR Aging Report
Scenario: Generate AR aging for all clients
Given there are open billing items across multiple clients
When I generate AR aging with no client filter
And as-of date is today
Then the report should include all open items
And summary should show totals by bucket
And line items should be sorted by days past dueScenario: Filter AR Aging by Client
gherkin
Feature: Client AR Aging
Scenario: Generate AR aging for a specific client
Given client "John Smith" has 5 open billing items
And other clients have 20 open billing items
When I generate AR aging filtered to "John Smith"
Then only 5 line items should appear
And all items should be for "John Smith"Scenario: Current vs Past Due Classification
gherkin
Feature: Current vs Past Due
Scenario: Items not yet due are classified as Current
Given a billing item with due date tomorrow
And remaining balance $5,000
When AR aging is calculated with as-of date today
Then the amount should be in the Current bucket
And no amount should be in past due buckets