This document maps the two-phase build plan to Emma Harris's stated priority areas, shows how the user experience changes at each phase, outlines the integrations required, and positions the work within the product lifecycle. Intended for alignment with Mark Koussa and handoff to the development team.
| Exception type | How it surfaces today | confirm with cash management teamVolume/week | confirm with cash management teamTime to find + handle per item today | Est. time saved/week |
|---|---|---|---|---|
| Failed Payment | Discovered mid-queue in Fusion — no proactive alert. Found during manual reconciliation review. | — | — | — |
| Duplicate | Discovered mid-queue. Tracked manually (email, note, memory) until GL team resolves. | — | — | — |
| Amount Variance (FX wire) | Found during reconciliation. Tracked manually for month-end journal entry — no structured reminder. | — | — | — |
| Unmatched | No GL candidate shown in Fusion — manual search required per item to find matching entry. | — | — | — |
| Total — weekly exception detection overhead (Phase 1) | — | — | — | |
| Transaction type | Phase 2 matches when | confirm with cash management teamItems/day currently going to manual queue | confirm with cash management teamMinutes per manual reconciliation today | Est. time saved/day |
|---|---|---|---|---|
| Wire 495 (USD) | Payment Reference Number — leading zero or whitespace mismatch | — | — | — |
| Check | Check Number → Transaction Number — format mismatch | — | — | — |
| EFT | Same as wire — reference format mismatch matching field unconfirmed | — | — | — |
| Total — daily manual queue reduction (Phase 2) | — | — | — | |
| Integration | Phase 1 | Phase 2 | Future Direction | User implication |
|---|---|---|---|---|
| Bank file (JPMorgan / Citi) ISO 20022 XML or CSV · direct from bank · assumed |
Arch TBD | Arch TBD | Arch TBD | Current assumption: bank sends raw file directly to our pipeline. Alternative: read bank statement lines from Fusion's Cash Management API instead (see note above). All ID fields must be ingested as strings regardless of source — leading zeros in reference numbers must be preserved or matching fails. |
| Fusion Cash Management API (bank statement lines) Alternative to direct bank file · read-only |
Arch TBD | Arch TBD | Arch TBD | If Fusion's Cash Management API exposes all required fields (transaction codes, End-to-End IDs, failure status), this becomes the preferred source — single integration point, no separate bank data feed, internal bank statement line ID included automatically. Must be validated during Fusion API scoping. |
| Fusion GL export Daily pull · read-only |
Required | Required | Required | Phase 1 reads for exception analysis. Phase 2 reads for matching. Future direction reads as historical input to pattern models. Must include Payment Reference Number, Transaction Number, Source, Amount, Currency, Date, and internal GL transaction ID. |
| Fusion internal bank statement line ID Open question — Fusion IT / Johanne's team |
Not required | Blocking dependency | Inherited | Phase 2 cannot write matches back to Fusion without a stable unique ID for each bank statement line. Must be confirmed before Phase 2 build begins. Future direction inherits this from Phase 2. |
| Fusion reconciliation REST API Write · programmatic match submission |
Not required | Blocking dependency | Inherited | The mechanism by which Phase 2 closes matches in Fusion without a human. Requires confirmed endpoint, error handling spec, and IT/security approval. Future direction inherits this from Phase 2. |
| Service account (Cash Manager role) Auth · IT/security approval required |
Not required | Blocking dependency | Inherited | The service account used to call the Fusion API. Requires IT and security sign-off. Lead time unknown — needs to be initiated early in Phase 2 planning. Future direction inherits. |
| Matching engine String normalization · per-type rules |
Not required | Phase 2 build | Inherited | Runs string normalization before comparison (leading zeros, whitespace, case). Per-type rules: wires on payment reference, checks on check number, EFTs on reference (pending confirmation). Exact match only in v1. Future direction may extend to fuzzy/learned matching. |
| Scheduled pipeline job Daily trigger after bank file receipt |
Not required | Phase 2 build | Inherited + extended | Orchestrates the daily bank file → GL export → matching engine → Fusion write-back sequence. Future direction extends with model inference step in the same pipeline. Must include failure alerting if bank file doesn't arrive or Fusion export is stale. |
| Immutable audit log Every automated match recorded |
Not required | Phase 2 build | Blocking dependency — future direction | Records timestamp, matched IDs, match type (system vs. human), and matched-by. Required for compliance. The future direction intelligence layer would likely use this history as training data for pattern models, but that dependency is not yet confirmed. |
| Output to Fusion (Phase 1 interim) CSV / formatted spreadsheet · manual handoff |
Required | Replaced by API | Not applicable | Phase 1 manual handoff format. Cash management team takes the output and executes reconciliation actions in Fusion. Phase 2 eliminates this step — the API writes directly. |
| AI pattern model Vendor behavior · seasonality · anomaly scoring |
Not required | Not required | Future direction | Trained on Phase 2 audit log history. Models vendor payment patterns, expected amounts, timing. Enables "this is unusual for this vendor" scoring rather than binary failed/not-failed detection. |
| Proactive alert delivery Teams / email push · no dashboard required |
Not required | Not required | Future direction | Pushes high-priority exceptions to the team (and AP) without requiring them to open the tool. Failed $2M wire surfaces in Teams within minutes of bank file processing — not discovered during manual queue review. |
| Cash forecasting engine Historical patterns + payment behavior |
Not required | Not required | Future direction | Emma's third stated priority. Requires sufficient reconciliation history (Phase 2 audit log) to model seasonal patterns and customer payment behavior. Cannot be built accurately on incomplete or manually-reconciled data. |
[CONFIRM WITH CASH MANAGEMENT TEAM] is not sourced from the transcript. Dev team must not treat these as confirmed domain rules.String comparison. Both fields must match exactly, including leading zeros.
Amount Variance applies to FX wires only — expected due to currency conversion.
Direct 1-to-1 lookup. Check number is a string — leading zeros must be preserved in both fields for the match to work.
Amount Variance on checks is not a confirmed scenario — a check amount is fixed at issuance. Flagged for cash management team confirmation.
Assumed same as wire. Waiting on confirmation from cash management team's Philippines contact.
Vendor (Counterparty) used as the identifying label. The specific field used to match bank side to GL side has not been confirmed — no transcript basis for any particular field.
No single identifier links bank to GL — balance is the confirmation.
If batch totals do not balance to $0.00, there is a variance that must be resolved before reconciliation can complete.