Skip to main content

Portal Recon — Go-Live Status & Remaining Features

Updated 2026-07-30 — the coordinator feature batch is live in production (CieTrade deep links, corrected Location, grouped-invoice variance, filtered export, VAWS work-order matching, Open Orders filters + fix). The full 8-portal baseline remains live and validated; remaining items are optional/post-go-live.

Shipped and live​

From the July 24 coordinator requests + SME feedback​

RequestStatus
Notes are read-only / need edit access (#154, #159)✅ Editor role — all 8 coordinators can edit Notes & Alt Invoice #
Select-all + bulk edit multiple lines (#155, #160)✅ Select-all (filtered) + bulk panel: Waiting on Customer, Unresolvable, Clear flag, Set note
Filter by portal (#157)✅ Portal multi-select filter
Multiple service months (#156)✅ Service Month multi-select
Column data misalignment (#158)✅ Fixed — header and rows share one grid
WO # and CT invoice # on the same line (#161, #162)✅ PO/WO # and Location columns
Waiting On / Unresolvable in the export✅ Columns in the detail sheet + Annotations sheet
Parent-account filter (#163)✅ Parent Account multi-select (account-hierarchy mapping)
Editable Location by invoice # (#169)✅ Inline-editable Location (editors)
CT Posting Date range filter (#170)✅ From/To date filter
Per-user column arrangement (#171)✅ Columns button — show/hide + reorder, saved per browser
Search and sort by Group #✅ Search box matches Customer / Invoice # / Group #; Group # column sortable
FM Pilot DNE alert "not showing up"â„šī¸ Lives on the Flagged tab — amber "DNE / No Cost" rows (needs an FM Pilot file with DNE > 0 and no Final Cost in the run)

From the July 27 SME meeting​

ItemStatus
CT Posting Date wrong on not-yet-posted rows (#168)✅ Now shows the projected posting date (1st of month after service) — SME-confirmed rule; invoice 1154851 → 2026-08-01
Data re-baseline✅ Done — old runs purged (coordinator notes & flags preserved), clean baseline loaded
wdp-palantiri (Streamlit) page✅ Decision: no further development (retire after coordinators sign off on the React app)

From the July 30 coordinator batch​

RequestStatus
CieTrade deep links on invoice & group numbers (#183)✅ Invoice # links to the Billing Sheet, Group # to the Grouped Invoice Report — clickable in-app and in the Excel export
Customer location from the CieTrade billsheet (#186)✅ Location column now shows the billsheet location (e.g. CHI9 - 2725 Bilter Rd) for every invoice — see the fix note below
Grouped-invoice vs CieTrade variance (#187)✅ Group rows are labeled and show the group's submitted amount vs. the summed CieTrade total, with the variance
Export honors active filters (#184)✅ The Excel export now reflects the portal / service-month / customer filters you have applied (no filter = full run)
VAWS work-order matching (#185)✅ VAWS work orders now link to their CieTrade billsheet via the work-order number, so far fewer show as "not in CieTrade"
Open Orders — Customer & date filters (#179)✅ Added to the Open Orders tab
Open Orders — Service Month showed dollar amounts (#180)✅ Fixed — Service Month now shows the YYYY-MM month

Location fix + backfill (2026-07-30): Location was initially sourced from the matched portal record (so it was blank for unsubmitted invoices); it now correctly comes from the CieTrade billsheet, populated for every invoice. The current baseline run (Jul 29) has had its Location values backfilled from CieTrade — refresh the app to see them. One caveat: only Location was backfilled on that existing run; the grouped-invoice labeling was not applied retroactively (those rows still work and their links are correct). The next upload/reconciliation populates everything — Location and group labeling — automatically, no extra steps.

Data-quality fixes surfaced by the baseline runs​

FixStatus
Duplicate portal rows from overlapping export windows✅ De-duplicated at run time (was inflating some group variances)
Voided/cancelled submissions counted in Group # sums✅ Excluded — group variances now reflect live submissions only
Open Orders showed almost nothing✅ Fixed — Coupa PO customer mapping repaired; latest run shows 6,637 open lines across 38 customers
Accidental empty (no-file) runs became the default view✅ Runs with zero portal records are no longer saved
Files that fail to parse were skipped silently✅ Now listed as run warnings so uploaders see exactly what didn't load

Current baseline run — validated​

Latest reconciliation (Jul 29) — 144,260 portal records across all 7 portals, validated end-to-end (0 duplicate rows, Coupa drafts correctly excluded, group sums clean, Open Orders populated):

PortalRecords
Corrigo80,896
Coupa45,004
VAWS15,813
FM Pilot2,161 (75 DNE / No-Cost alerts)
Ariba221
Oracle148
VendorCafe17

FM Pilot's DNE / No-Cost alerts (75) appear as amber rows on the Flagged tab. Mercado is intentionally excluded for now (SME: optional for go-live).

Remaining features (tracked in the Project Overseer)​

ItemState
Oracle legacy .xls support (#176)Adapter can't read old .xls; interim: Save As .xlsx. Native support pending a sample file
VendorCafe PO adapter (#165)Sample now in hand — buildable next
Mercado PO adapter (#165)Still needs a sample export
Export → offline markup → re-uploadDesign needed; interim workflow is edit-in-app
Coupa customer resolution via DB address match (#175)Covers the ~1% of PO lines not in the location map
Streamlit page decommission (#172)After coordinators sign off on the React app

What we need from the team​

  • Every coordinator: sign in, confirm the amber Editor badge, and start working the queue on this baseline — add notes, flag Waiting/Unresolvable, try a bulk action.
  • Anyone: report issues via the in-app Request / Report button.
  • Group: agree on a run cadence and queue ownership (data refreshes when an uploader runs — there is no scheduled refresh).

See the Coordinator Guide (docs/coordinator-sop.md in the portal-reconciliation repo) for the day-to-day workflow.