Document Details
Purpose
This map shows the end-to-end migration process, including source validation, matching, exception handling, reconciliation, approval gates, and export outcomes.
View or Download
Document Preview
Process Map
Scope
This artifact maps the Odin to Lunchtab balance transfer application as implemented in the repository.
End-To-End Business Process
flowchart TD
A[Operator obtains Odin account balance workbook] --> B[Operator obtains Lunchtab users CSV]
B --> C[Select files and matching profile]
C --> D[Validate and preview reconciliation]
D --> E{Inputs valid}
E -->|No| F[Correct source files or profile]
E -->|Yes| G[Run automated reconciliation]
G --> H[Generate transfer reports and audit evidence]
H --> I{Manual exceptions remain}
I -->|No| L[Proceed to InitialBalances transfer]
I -->|Yes| J[Use candidate report or staff review to edit transfer copy]
J --> K[Audit manual reconciliation changes]
K --> L
L --> M[Select reconciled transfer and InitialBalances CSV]
M --> N[Validate and preflight]
N --> O{Blocking exceptions}
O -->|Yes| P[Run blocked audit and correct data]
O -->|No| Q[Create processed InitialBalances import and audit evidence]Process 1: Automated Reconciliation
Trigger: Operator selects an Odin .xlsx report and a Lunchtab users .csv export.
Actors: Operations staff, Odin Cloud POS export, Lunchtab users export, local desktop application.
Inputs:
- Odin workbook with account type, ID number, deposits, spendings, balance, and student name.
- Lunchtab users CSV with identity, login, family, and balance columns.
- Matching profile, either Legacy Default or a configured venue profile.
- Optional output location.
Outputs:
- Cleaned Odin CSV.
- Processed Odin CSV with split names.
Processed - Odin to Lunchtab Balance Transfer.csv.- Exception reports.
- Accepted match audit.
- Reconciliation audit-control summary.
- Candidate match report.
- Run summary and
run-manifest.json.
Observed process:
- Extract valid and malformed Odin rows.
- Validate Lunchtab headers required by the selected profile.
- Apply crosswalks and ordered matching rules.
- Validate matched identity by surname and first/preferred name.
- Insert accepted balances into a copy of the Lunchtab users export.
- Quarantine malformed, ambiguous, duplicate, stale, invalid, or unmatched rows.
- Generate audit-control and run-summary evidence.
- Publish the complete run folder atomically through a staging directory.
Process 2: Manual Exception Review
Trigger: Automated reconciliation creates manual-review exceptions or the operator chooses to audit an edited transfer.
Actors: Operations staff, local desktop application.
Inputs:
- Original automated transfer CSV.
- Staff-edited copy of the transfer CSV.
- Candidate match report or checklist, when used.
Outputs:
- Manual reconciliation delta audit.
- Manual reconciliation summary.
- Manual reconciliation manifest.
- Optional proposed edited transfer and proposed transfer selection audit from candidate selections.
Observed process:
- Compare original and edited transfer files with matching headers and row counts.
- Treat a previously blank
OdinBalanceAmountfilled by staff as a normal manual resolution. - Flag changed automated balances, cleared automated balances, changed family codes, identity-field edits, and other non-balance edits.
- Block downstream use when an edited manual amount is invalid.
Process 3: InitialBalances Transfer
Trigger: Operator has a reconciled transfer CSV and a Lunchtab InitialBalances CSV.
Actors: Operations staff, Lunchtab InitialBalances export, local desktop application.
Inputs:
- Reconciled transfer CSV containing
DefaultFamilyCodeandOdinBalanceAmount. - InitialBalances CSV containing exactly
FamilyName,FamilyCode,Amount.
Outputs:
- InitialBalances family-level audit.
- InitialBalances exception report.
- InitialBalances audit-control summary.
- InitialBalances run summary.
initial-balances-manifest.json.- Processed InitialBalances import only when the run is clean.
Observed process:
- Validate required headers and file type.
- Aggregate populated Odin balances by case-sensitive family code.
- Add aggregated amounts to existing InitialBalances amounts, treating blank target amounts as zero.
- Identify blank family codes, invalid amounts, unmatched family codes, duplicate target family codes, and invalid target amounts.
- Write audit evidence for clean and blocked runs.
- Publish a processed import only when blocking exceptions are absent and control totals pass.
Process Handoffs
| Handoff | From | To | Evidence quality |
|---|---|---|---|
| Source exports selected | Operator | Reconciliation workflow | Observed |
| Matching profile chosen | Operator | Reconciliation workflow | Observed |
| Automated transfer produced | Reconciliation workflow | Manual reconciliation or InitialBalances workflow | Observed |
| Candidate guidance produced | Reconciliation workflow | Operator manual review | Observed |
| Edited transfer audited | Operator | Manual reconciliation review | Observed |
| Reconciled transfer submitted | Operator | InitialBalances workflow | Observed |
| Clean import file produced | InitialBalances workflow | Lunchtab import activity | Inferred from import-file naming and README |