Overview & Getting Started
A plain-language guide for the billing and coordinator team. No technical background needed β if you've ever chased "did this invoice actually make it onto the customer's portal?", this tool is for you.
Read this page top to bottom, then jump to Running a Reconciliation when you're ready to work a run. The deeper pages (Matching Logic, How a Run Works) are there when you're curious β you don't need them to get started.
What this tool doesβ
Many of our biggest customers β JLL, CBRE, UPS and others β don't pay from a normal invoice. They only pay for work that has been submitted into their own vendor portal (Ariba, Coupa, Corrigo, FM Pilot, VAWS, and more). That creates three ways money quietly leaks:
- We bill something in CieTrade but never submit it to the customer's portal, so it never gets paid.
- We do work and submit it on the portal but never bill it in CieTrade.
- We bill an amount that doesn't match what the portal shows, so it gets short-paid or disputed.
The Portal Reconciliation app pulls our live CieTrade accounts-receivable (AR) and compares it against files you download from each customer portal, then shows you exactly where those gaps are β so nothing falls through the cracks.
Who uses itβ
The app is at portal-recon.politegrass-38e79dd2.eastus.azurecontainerapps.io β sign in with your Wasteology Microsoft account. What you can do depends on your role, shown as a badge next to the title:
| Role | What you can do |
|---|---|
| Uploader | Everything an editor can, plus upload portal files and run new reconciliations. Usually one designated person runs the authoritative all-portal reconciliation that everyone else views. |
| Editor | Add notes, set an alternate invoice number, edit a location, mark lines as Waiting on Customer or Unresolvable, and manage the customerβportal mappings. All coordinators have this. |
| View-only | Read everything and export to Excel, but not edit. Ask Kent to be added to the editor list. |
The three things it findsβ
Every reconciliation boils down to three questions, each with a clear action:
| It finds⦠| In plain terms | What you do |
|---|---|---|
| Unbilled work | We did the work on the portal but haven't billed it in CieTrade | Bill it in CieTrade |
| Unsubmitted invoices | We billed it in CieTrade but it's not on any customer portal | Submit it to the right portal |
| Amount mismatches (variance) | It's on both sides, but the dollars disagree by more than a penny | Investigate and correct |
Variance simply means CieTrade amount minus the portal amount. Near zero is fine; anything else means the two sides don't agree and someone should look.
The tabs at a glanceβ
| Tab | What it's for |
|---|---|
| Summary | One row per customer with a color-coded status (Current, Not Submitted, Variance, Open POβ¦). A quick health check with charts on top. |
| Invoices Needing Action | Your working queue β one row per open invoice that needs something. Add notes, set an alternate invoice #, edit the location, or mark lines Waiting on Customer / Unresolvable. Keep the "Only items needing action" filter on. |
| Open Orders | Purchase-order and work-order commitments and how much is left on each (the "Remaining" column). Red means lots left / likely unsubmitted; green means nearly used up. |
| Flagged | Portal submissions needing manual follow-up β disputed, rejected, on-hold, abandoned, or an FM Pilot work order with a spending cap but no cost recorded. |
| Channels (editors) | Where you map each customer to the portal it submits through β the in-app replacement for editing the Third Party Customers spreadsheet by hand. |
How a coordinator uses it (step by step)β
- Pick a run. A run is one complete reconciliation β the portal files plus the CieTrade data at that moment, saved so anyone can reopen it. The newest run is selected for you. The run's timestamp is the age of the data (there's no automatic refresh).
- (Uploaders only) Upload and run. Drag in the downloaded portal files (CSV, XLSX or XLS). The app figures out which portal each file is from, checks them, runs the reconciliation, and saves a new run.
- Filter to your work. Set the Service Month (you can pick several to work arrears), then narrow by customer, portal, status, or a search on the Invoices Needing Action tab.
- Work the queue. Resolve items directly in the app β notes, alternate invoice numbers, and the Waiting on Customer / Unresolvable flags. Use the bulk panel to act on many rows at once.
- Export to share, not to edit. The Download Excel button produces a report that mirrors whatever filters you have on screen. The Write-off CSV collects everything you've marked Unresolvable for accounting. You resolve work in the app β you don't mark up the Excel and send it back.
Notes and flags stay attached to the invoice across runs β a line you park as Waiting on Customer stays parked (and auto-clears if it later matches), so you never lose your triage when a new run comes in.
The 8 portals in one glanceβ
The app auto-detects which portal a file came from by its name. A few have quirks worth knowing:
| Portal | Quirk to know |
|---|---|
| Ariba | Its PO export shows a whole-year commitment, not a single month. |
| Coupa | Exports line-by-line, so lines are added up per invoice. Draft submissions are ignored. |
| FM Pilot | A work-order report, not an invoice report. Carries a DNE ("Do Not Exceed") spending cap. |
| Corrigo | Work-order portal; open orders come from the same file as the invoices. |
| VAWS | UPS work orders β some rows match by work-order number, not invoice number. |
| VendorCafe | Pays by payment number; treated as already paid. |
| Oracle / Mercado | Not connected yet β waiting on sample files. |
For the full details, see Portal Coverage.
Words you'll seeβ
- AR (Accounts Receivable): what customers owe us, held in CieTrade. Fully paid invoices are removed from AR β so old paid items on a portal won't match, and that's expected.
- CieTrade / CT: our billing system and the source of truth for what we billed. CT Amount is what we billed; CT Status is Posted or the billsheet status.
- Third Party: the customer's portal (the "third party" we submit to) and the amount recorded there.
- Variance: CT Amount minus Third Party Amount. Near zero is fine.
- Group invoice / Group #: several CieTrade invoices bundled under one number; customers often submit one portal invoice for the whole group, and the app compares against the group's summed total.
- Service Month: the month the work was actually performed (not necessarily when it was posted).
- DNE ("Do Not Exceed"): an FM Pilot spending cap. If CieTrade is at or under the cap there's no variance; only going over the cap flags.
- Needs Billing: a charge approved/completed in CieTrade but not yet posted to AR β ready to invoice, not yet invoiced.
- Waiting on Customer / Unresolvable: editor flags β one parks a line off your action list; the other marks it for write-off.
Have a request or found a bug?β
Use the Request / Report button in the app header to send a bug report, feature idea, documentation update, or chore straight to the team's tracker. Pick a Type (Bug, Feature, Chore, or Documentation Update), add a title and details, and β for a bug or feature β attach a screenshot so the team can see exactly what you saw. It shows similar open requests as you type so you don't file a duplicate. See Submitting a Request or Report for a worked example of each type.
Where to go nextβ
- Submitting a Request or Report β how to file a bug, feature, chore, or docs request (with examples).
- Running a Reconciliation β the day-to-day how-to.
- Portal Coverage β all 8 portals and their quirks.
- Matching Logic β how the app decides two records are the same invoice.
- How a Run Works β the full pipeline, for the technically curious.
- Go-Live Status β what's shipped and what's next.