Let’s talk
All case studies

Data operations

Billing & workflow automation

A recurring spreadsheet task became a configurable Alteryx workflow, with the unresolved invoices kept in view.

My contribution
Workflow design · analytics engineering · operations
Timeframe
Reported in 2023
Status
Completed
THE WORK IN ONE LINE

Reported monthly processing time: about 9 hours → 20 minutes. Alteryx Day, 2023; setup separate.

AlteryxPower QueryExcelData validation

01 / The problem

Why the same invoices needed fixing every month.

Each vendor export brought a different shape. Analysts had to clean files, consolidate invoices and find discrepancies before they could begin the monthly review.

02 / What I built

I built repeatable preparation and reconciliation steps in Alteryx, added vendor and billing-month controls, and made the workflow understandable to the analysts using it. Power Query is part of my wider preparation practice; the reported result below belongs to the Alteryx workflow.

MONTH-END / JANUARY 2026

Follow the invoice.

Fictional sample
NORTH_CO Jan-26 · DEMO-104North Co2026-01 · DEMO-104+$160DEMO-104 · Needs review
12records imported
9matched
3need review
The same month arrives three ways. Keep the original row so every change can be traced.
InvoiceVendorSource periodBilledFile
NORTH_CO Jan-26$960vendor.xlsx
Juniper LLCJAN 2026$1,080export.csv
ALDER-co2026/01$1,200billing.xlsx
NORTH_CO Jan-26$2,140vendor.xlsx
Juniper LLCJAN 2026$1,440export.csv
ALDER-co2026/01$1,560billing.xlsx
NORTH_CO Jan-26$1,680vendor.xlsx
Juniper LLCJAN 2026$1,800export.csv
ALDER-co2026/01$1,920billing.xlsx
NORTH_CO Jan-26$2,040vendor.xlsx
NORTH_CO JAN 2026$1,680export.csv
ALDER-co2026/01$2,280billing.xlsx
DEMO-104 / Amount mismatch

The difference is the next action.

Billed$2,140Expected$1,980Difference+$160

The billed amount is $160 above the ledger. Check the vendor rate before approving the invoice.

See the transformation logic
vendor = title_case(trim(replace_separators(raw.vendor)))
period = parse_month(raw.period)
key = (vendor, period, raw.invoice_id)

expected = ledger.lookup(key)
delta = raw.billed - expected.amount
review_if(duplicate(key) or delta != 0 or missing(account))

Original simplified example. Alteryx powered the reported workflow; Power Query is also part of my data-preparation practice.

12 fictional rows demonstrate the process. The reported ~9 hours → 20 minutes/month comes from my separate 2023 Alteryx workflow.

Watch the Alteryx workflow excerpt +
Sanitized Alteryx workflow demonstration poster

04 / Result & scope

What changed. What comes next.

Miguel's Alteryx Day presentation, 2023.

~9 hours to 20 minutes

Reported monthly processing time for one Alteryx billing workflow, with initial setup separate.

Exceptions in view

Consolidation and discrepancy identification in a repeatable process.

01

Make the inputs repeatable

Vendor and month controls replace a new cleanup exercise with a configurable recurring process. The sample keeps raw fields beside their normalized values.

02

Explain the exception

A mismatched amount, duplicated business key or missing account needs context. The example keeps the source, expected value and reason attached to the row.

03

Make the next run easier

The reported monthly processing time fell from about nine hours to twenty minutes, excluding initial client setup. That is approximately 8 hours 40 minutes returned per run.

Continue exploring

All case studies