Operational Dashboards & KPI ReportingNovember 4, 20268 min read

Pending Approval Aging Report Template: Find What Is Stuck Today

Use two clocks to find stalled approvals without confusing them with overdue payments. Copy the spreadsheet layout, Excel formulas, and daily review checklist.

Editorial photograph: Build a pending approval aging report template with Excel formulas, separate waiting and payment clocks, and named own

What is a pending approval aging report?

In this template, a pending approval aging report shows which requests still need a decision, how long they have waited, who owns the next step, and what is blocking it. For invoices, keep approval waiting time separate from payment overdue days. Then name the person responsible for moving each stalled item.

Copy this spreadsheet layout

Use this layout to run the approval queue, not as a standardized accounting report. Kiolo’s AP control-sheet guidance calls for clear scope, financial dates, ownership, and next actions. Add approval-entry timestamps, stage clocks, cycle IDs, and escalation rules to show where work has stopped and who needs to act.

Paste this tab-separated header into row 1 of a worksheet named Queue:

Entity Invoice ID Vendor Currency Open amount Invoice date Payment due date Approval status Current approver Approval-entry timestamp Current-stage entry timestamp Blocker Next action Action owner Escalation timestamp Evidence link Approval age days Stage age days Days past due Approval-age bucket Escalation flag Approval cycle ID

ColumnsFields in orderBasis
A–EEntity; Invoice ID; Vendor; Currency; Open amountAP report identity, scope, and amount fields, drawing on Kiolo and ReportingGuru
F–GInvoice date; Payment due dateFinancial-aging date fields discussed by Kiolo
H–KApproval status; Current approver; Approval-entry timestamp; Current-stage entry timestampProposed approval-queue fields
L–PBlocker; Next action; Action owner; Escalation timestamp; Evidence linkOwnership and next-action practices from Kiolo, plus proposed blocker, escalation, and evidence fields
Q–UApproval age days; Stage age days; Days past due; Approval-age bucket; Escalation flagProposed calculated outputs
VApproval cycle IDProposed identifier for resubmission history
Template fields, spreadsheet positions, and design basis

Define what each row represents: one source invoice, within one legal entity, in its active approval cycle. Only that active cycle belongs in the open queue. Put individual approval steps on a separate detail sheet; otherwise, parallel approvers will multiply the invoice amount in your totals.

Following Kiolo’s guidance to declare report scope and extraction time, record the included entities, source system, status mapping, currencies, extraction timestamp, and reporting timestamp above the table. Keep the source invoice identifier even when you also have the vendor’s invoice number. Use that source ID to trace a questionable row back to the original record.

How is approval aging different from AP aging?

In this template, approval aging measures time spent waiting inside an approval queue. ReportingGuru describes AP aging as a listing of recorded vendor invoices that remain unpaid; Kiolo distinguishes invoice-date aging from due-date aging. Keep those financial clocks separate from approval wait so approval delays and payment urgency remain distinct.

ReportPopulationClockDecision supported
Pending approval agingItems currently awaiting approval, as proposed hereApproval entry and current-stage entryWho must act next?
AP financial agingRecorded vendor invoices remaining unpaid, per ReportingGuruDeclared invoice-date or due-date basis, per KioloWhich balances need payment review?
Completed-workflow performanceApproval cycles completed during a defined period, as a separate proposed viewStart-to-completion elapsed timeIs the process improving?
Three reports that answer different management questions

Corporate Finance Institute describes receivables aging for financial uses, including doubtful-account analysis. Those intervals are not approval targets. Ottimate’s AP Aging by Vendor documentation offers a Pending status filter but calculates its documented overdue brackets from the payment due date. Filtering to pending invoices therefore does not, by itself, turn payment aging into approval-wait measurement.

Assign each item to one reporting category: pending approval, approved but unpaid, disputed, or another hold. Keep a blocked item in pending approval only when an approval decision is the next required step. Track completed-workflow metrics separately. Today’s open backlog tells you what is waiting, not how quickly completed approvals moved.

Kiolo cautions that age alone does not prove an invoice is valid, due, or payable.

How do you calculate approval waiting time in Excel?

Subtract approval-entry time from a fixed reporting timestamp for total approval wait. Use current-stage entry for stage wait. Both inputs must be actual spreadsheet date-time values, with an explicit calendar-time or business-time rule. Flag missing or impossible timestamps instead of turning them into zero. Calculate payment overdue days independently.

Define the clock rules first

Create a Settings worksheet and put the fixed reporting timestamp in B1. Use the same declared time zone as the exported timestamps; record extraction time separately. These formulas measure elapsed calendar days, including weekends, and retain fractional days. Display one decimal place in age cells without rounding the values used in calculations.

  1. Start total age when the item enters the defined approval queue. If submission can happen earlier, record submission separately so that delay does not silently enter the approval clock.
  2. Preserve total approval age on reassignment. In this template, reset the current-stage clock when the new accountable approver receives the item. Keep the previous assignment in history.
  3. Create a new cycle ID after a return and resubmission, then restart that cycle’s approval clock. Retain earlier cycles and the first submission in the audit history.
  4. Flag missing dates, future timestamps, and stage entry before cycle entry as data exceptions. Before switching to business-time formulas, define working hours, holidays, and the time zone.

Enter the calculated columns

Q2, approval age in days: =IF(OR(J2="",J2>Settings!$B$1),"Check timestamp",Settings!$B$1-J2)

R2, current-stage age: =IF(OR(J2="",K2="",K2<J2,K2>Settings!$B$1),"Check timestamp",Settings!$B$1-K2)

S2, payment overdue days: =IF(G2="","Missing due date",MAX(0,INT(Settings!$B$1)-INT(G2)))

The payment formula works on calendar dates, so an invoice due today has zero overdue days. A missing due date is an exception to resolve, not proof that the invoice is current.

T2, illustrative approval-age buckets: =IF(NOT(ISNUMBER(Q2)),"Data exception",LOOKUP(Q2,{0,2,5,10},{"0 to <2 days","2 to <5 days","5 to <10 days","10+ days"}))

These are example thresholds, not industry benchmarks. An item at exactly two days enters the second bucket; at exactly five, it enters the third. Edit boundaries and labels together. Display buckets help readers scan the queue, but they should not dictate escalation policy.

U2, escalation flag against the organization-defined timestamp in O2: =IF(O2="","No threshold set",IF(Settings!$B$1>=O2,"Escalate","Within threshold"))

Fill the formulas down after validating that imported dates are numeric spreadsheet dates. Keep NOW() out of the published snapshot. Use a fixed reporting timestamp to preserve the clock the team reviewed.

How can you see what is stuck with each approver today?

Summarize the invoice-level queue by approver, with a way to open the underlying records. Show pending count, amount by currency, oldest approval age, and threshold exceptions. Add views by blocker and age bucket. A flagged row is not actionable until it names the next move and the person responsible.

  • By approver: count unique invoice-cycle keys, total open amounts within each currency, and show the maximum approval age.
  • By blocker: distinguish missing evidence, requester clarification, approver absence, and other reasons your team has defined.
  • By age bucket: show invoice count and amount by currency. Display timestamp exceptions separately rather than hiding them inside numeric buckets.
  • For today’s action queue: surface escalation flags, missing owners, missing timestamps, and overdue invoices that still need approval.

These example rows use a fixed reporting timestamp of November 3, 2026, at 12:00 UTC. INV-101 entered approval on October 28 at noon. INV-102 entered on November 3 at midnight. Both current-stage timestamps are valid and use UTC.

InvoiceApproval / stage ageDue date / overdueCurrent approverBlocker and next action
INV-1016.0 / 1.0 daysNov. 5 / 0 daysDepartment managerMissing receipt confirmation; requester supplies it
INV-1020.5 / 0.5 daysNov. 2 / 1 dayFinance reviewerAmount discrepancy; AP checks invoice against supporting evidence
Illustrative detail: approval delay and payment urgency are different

Keep current approver and action owner in separate fields. For INV-101, the manager owns the decision, but the requester must supply the missing confirmation. With parallel approvals, name one accountable coordinator in the summary and retain every step-level assignment in the linked detail.

Never combine currencies into one raw amount total, and do not drop credit balances because they are negative. Repeated blockers deserve a process change. Fix the invoice approval workflow rather than making the team send the same reminder again.

How should teams review and validate the report each day?

Start with data exceptions, then review items past their escalation threshold, payment-sensitive approvals, and recurring blockers. Give each exception an action owner and follow-up date. Before distributing the report, reconcile its invoice population to the source approval queue and check that summary totals trace back to individual records.

  1. Freeze the snapshot. Confirm scope, extraction time, reporting time, time zone, and the mapping of source statuses to pending approval.
  2. Repair accountability gaps. Resolve missing approvers, action owners, and timestamps before using age to rank delays.
  3. Triage exceptions. Apply your organization’s escalation rule and check payment urgency. Neither replaces the evidence required for approval.
  4. Write the next move. Replace “follow up” with “requester uploads receipt confirmation,” or another specific action, and attach an owner and date.
  5. Close the loop. Check that resolved items leave the next pending snapshot. Retain the previous snapshot so the team can compare what changed.

Your approval escalation process must name the recipient and their authority. Passing a threshold triggers review, reassignment, or clarification. It does not grant permission to approve an invoice that lacks supporting evidence, consistent with Kiolo’s warning that age alone does not establish payment validity.

Reconcile the queue to its approval source. Do not assume it should match the AP control account; reserve AP-to-general-ledger reconciliation for an accounting report with the appropriate scope. Keep timestamps and decisions in the approval workflow audit trail so AP can explain why an item appeared, moved, or left the queue.

How Cogniver helps teams act on pending approvals

Cogniver handles the routing behind the approval queue. Build branching, merging, and multistep approval chains in its visual builder. Require document uploads before an approval proceeds, and use groups and grades from the shared org chart to resolve approvers. Requests reach the responsible role without someone forwarding them manually.

Each workflow gets an isolated AI agent that answers questions, routes requests, and chases approvers. Organization admins train it on that workflow’s rules and configuration. Its conversation memory stays separate from other workflows and companies, so follow-up stays tied to the process it serves.

Use AI Router nodes to send each request down exactly one branch, based on exact amount rules or an AI-applied plain-language policy. Routers read values from forms and uploaded documents; approvers can also enter verified values for later routing. A mandatory default branch gives uncertain requests a defined destination instead of leaving them stuck. Admin and HR dashboards show pending approvals alongside live organization information.

Frequently asked questions

Should approval age start at submission or at the current stage?

Keep both clocks. Total approval age starts when the active cycle enters the defined approval queue. Current-stage age starts when that stage or accountable assignment begins. If submission happens earlier, record it separately so submission delay does not get mixed into approval waiting time.

Which approval aging buckets should we use?

Choose nonoverlapping buckets that match your review cadence and approval policy. This example uses 0 to under 2, 2 to under 5, 5 to under 10, and 10 or more calendar days. These thresholds illustrate the setup; they are not performance benchmarks.

How should reassigned or resubmitted invoices be aged?

In this template, reassignment preserves total approval age and resets the current-assignment clock. A return and resubmission start a new approval cycle with a new entry timestamp. Retain previous cycles in history, but show only the active cycle in the open queue.

How do I prevent misleading invoice totals?

Keep one row per source invoice, legal entity, and active approval cycle. Store individual approval steps in a separate detail table. Total amounts within each currency, retain credit balances, and reconcile invoice IDs and amounts to the source approval population before publishing.

You made it to the end
Up next

Headcount vs FTE Reporting: Reconcile HR and Finance Totals

Headcount counts people; FTE converts hours into full-time units. Reconcile HR and Finance by agreeing on populations, dates, and hours rules, then tracing differences to employee records.

Keep scrolling to continue reading

Keep reading