Codeaza Technologies

Hansji Corporation — Accounting Redesign, Data Integration, Reconciliation, BI & Automation

Proposed approach, end-to-end workflows, and an honest phased cost & timeline — in response to your Data Integration Scope of Work (v1).

Prepared for Aaron / Hansji · July 2026 · Draft for discussion
All figures are estimates pending discovery. Property count and system mix drive the final numbers — tagged per your own KNOWN / CONFIRM convention.

01 · How we read the engagement

You don't need "an automation." You need your accounting operating model rebuilt.

Data should flow from every property system into Sage Intacct automatically — validated, reconciled, and controlled — with Hansji owning the platform and Analytix's scope reduced. Our sequence follows your own principle:

Reliable source data → accounting controls → governed KPIs → rule-based exceptions → AI interpretation.
Redesign before automating. Rules before AI. Config over custom. Hansji owns the data, config, and credentials — no black box.

02 · Current state — the problem we remove

Reports downloaded by hand, re-keyed and reformatted, accounts mapped manually, reconciliation lived in spreadsheets, failed imports fixed by hand.

flowchart LR
    subgraph SRC["Property systems (vary by hotel)"]
        PMS["PMS
Maestro / Fossi"] POS["POS
Silverware / Upserve / Gilbarco"] PAY["Payments
Paymentech / Fullsteam / Stripe / Tock ..."] PR["Payroll
Paycom / 7Shifts"] AP["AP / Expense
Ottimate / Expensify"] end SRC -->|"download reports
manually"| M1["Analytix + GMs
re-key & reformat"] M1 -->|"hand-map accounts
& dimensions"| M2["Manual spreadsheets
(CC batches, temp labor, waste)"] M2 -->|"manual import"| SI["Sage Intacct"] M2 -.->|"failed imports
re-processed by hand"| M1 SI --> PROB{"Consequences"} PROB --> P1["Error risk &
weak audit trail"] PROB --> P2["Slow month-end close"] PROB --> P3["No management visibility"] PROB --> P4["Leaders doing clerical recon,
not running hotels"] classDef bad fill:#fde2e2,stroke:#c0392b,color:#7b241c; class PROB,P1,P2,P3,P4 bad;

03 · Future-state architecture — simplest reliable model

Five controlled data states. No black box; Hansji holds all admin and credentials.

flowchart TD
    subgraph SOURCES["Source systems (per property)"]
        S1["PMS"]:::src
        S2["POS / Fuel"]:::src
        S3["Payment processors"]:::src
        S4["Payroll / Time"]:::src
        S5["AP / Bank feed (BofA Cash Pro)"]:::src
    end
    SOURCES -->|"API / SFTP / scheduled report
(confirmed per system)"| RAW["1 · RAW LANDING
immutable, as-received"]:::stage RAW --> VAL["2 · VALIDATED & STANDARDISED
control totals · dedupe · business-date"]:::stage VAL --> ACCT["3 · ACCOUNTING-READY
mapped · balanced · approved journals"]:::stage ACCT -->|"controlled, idempotent load"| SI["Sage Intacct
(system of record)"]:::sor VAL --> RPT["4 · REPORTING-READY
dimensional · KPI-conformed"]:::stage RPT --> DASH["Role-based dashboards
Rooms / F&B / Payroll / Controls"]:::out RAW -.-> EXC["5 · EXCEPTION & AUDIT
every posting traceable to source"]:::exc VAL -.-> EXC ACCT -.-> EXC EXC --> ALERT["Rule-based alerts
→ owner + resolution tracking"]:::out DASH --> AI["AI layer (last)
explains variance · summarises exceptions
never posts without approval"]:::ai classDef src fill:#e8f1fb,stroke:#2c5f9e,color:#1b3a5c; classDef stage fill:#eef7ee,stroke:#2e7d32,color:#1b4d1e; classDef sor fill:#fff4e0,stroke:#e08e0b,color:#7a4d06; classDef out fill:#f0ecfb,stroke:#6a4bbc,color:#3a2870; classDef exc fill:#fde2e2,stroke:#c0392b,color:#7b241c; classDef ai fill:#e6f7f6,stroke:#12897f,color:#0a4b46;

04 · End-to-end daily data flow (one property, one business day)

sequenceDiagram
    autonumber
    participant PMS as PMS (night audit)
    participant POS as POS / Fuel
    participant PROC as Payment processors
    participant PIPE as Hansji data pipeline
    participant SI as Sage Intacct
    participant MGR as Property / Corporate mgr
    PMS->>PIPE: Daily revenue, tenders, ledger movements (after night-audit signal)
    POS->>PIPE: Sales, comps, voids, tenders (flag PMS-settled vs POS-settled)
    PROC->>PIPE: Settlement batches, fees, refunds, chargebacks
    PIPE->>PIPE: Validate control totals · tag business date · dedupe · map accounts/dimensions
    alt Totals tie & journal balances
        PIPE->>SI: Post balanced journal (idempotent, full audit trail)
        PIPE->>MGR: Dashboard updated (freshness + recon status = tied out)
    else Mismatch / missing feed / unbalanced
        PIPE->>MGR: Exception alert (what · variance · likely reason · owner · action)
        Note over PIPE,SI: Nothing posts until resolved — no black-box adjustments
    end
    

05 · Highest-priority Phase 1 — multi-way settlement reconciliation

Trace every payment: PMS/POS → processor → bank → Sage Intacct. Retire the GM spreadsheets.

flowchart LR
    A["Payments in PMS & POS
(by hotel business date)"]:::a B["Processor settlement batches
(gross − fees − refunds − chargebacks)"]:::b C["Bank deposits
(BofA Cash Pro feed)"]:::c D["CC clearing balance
in Sage Intacct"]:::d A --> ENGINE{{"Reconciliation engine
rule-based matching"}} B --> ENGINE C --> ENGINE D --> ENGINE ENGINE -->|matched| OK["Auto-cleared
(evidence retained)"]:::ok ENGINE -->|"timing diff"| TIMING["Open clearing item
(visible, aged — not written off)"]:::warn ENGINE -->|"unmatched / missing / duplicate"| EXC["Exception queue
category · owner · aging"]:::exc TIMING --> REVIEW["Reviewer workflow
+ audit history"]:::rev EXC --> REVIEW classDef a fill:#e8f1fb,stroke:#2c5f9e; classDef b fill:#f0ecfb,stroke:#6a4bbc; classDef c fill:#eef7ee,stroke:#2e7d32; classDef d fill:#fff4e0,stroke:#e08e0b; classDef ok fill:#d7f0d7,stroke:#2e7d32,color:#1b4d1e; classDef warn fill:#fff3cd,stroke:#b8860b,color:#6b5200; classDef exc fill:#fde2e2,stroke:#c0392b,color:#7b241c; classDef rev fill:#e6f7f6,stroke:#12897f;

06 · Exception & alert management

Managers review exceptions, approve summaries, and get alerts only when action is required.

flowchart TD
    START["Continuous checks on every feed & journal"] --> RULES{"Rule / threshold
breached?"} RULES -->|No| CLEAR["Silent — no noise"]:::ok RULES -->|Yes| GEN["Generate exception
type · variance · likely reason · data"]:::warn GEN --> OWN["Assign owner + escalation path"] OWN --> NOTIFY["Alert only the person who must act"] NOTIFY --> TRACK["Track resolution + SLA"] TRACK --> AUDIT["Audit history retained"]:::rev GEN --> AIEXP["AI drafts plain-English explanation
e.g. 'HK overtime 18% over target because...'"]:::ai classDef ok fill:#d7f0d7,stroke:#2e7d32; classDef warn fill:#fff3cd,stroke:#b8860b; classDef rev fill:#e6f7f6,stroke:#12897f; classDef ai fill:#e6f7f6,stroke:#12897f,color:#0a4b46;

07 · Analytix transition — reduce scope without breaking daily close

flowchart LR
    T0["Inventory every task
Analytix does today
(volume · time · error rate)"]:::a --> T1{"Classify each task"} T1 --> E["Eliminate
(via redesign)"]:::ok T1 --> A["Automate
(pipeline)"]:::b T1 --> H["Move in-house
(Hansji admins)"]:::c T1 --> R["Retain w/ Analytix
(defined SLA + quality)"]:::warn E --> SEQ["Sequenced cutover
parallel-run · no gap in postings"]:::rev A --> SEQ H --> SEQ R --> SEQ classDef a fill:#e8f1fb,stroke:#2c5f9e; classDef b fill:#eef7ee,stroke:#2e7d32; classDef c fill:#f0ecfb,stroke:#6a4bbc; classDef warn fill:#fff3cd,stroke:#b8860b; classDef ok fill:#d7f0d7,stroke:#2e7d32; classDef rev fill:#e6f7f6,stroke:#12897f;

08 · Delivery phases & timeline

gantt
    title Hansji — Phased Delivery (indicative; firms up after discovery)
    dateFormat YYYY-MM-DD
    axisFormat %b
    section Phase 0 · Discovery & Design
    Current-state discovery (Analytix + property + corporate) :d1, 2026-08-04, 4w
    Future-state design + build-vs-buy + recon design         :d2, after d1, 2w
    KPI dictionary + alert matrix + architecture              :d3, after d1, 2w
    section Phase 1 · Pilot (1-2 properties)
    Data integration (PMS/POS/payments/payroll to Intacct)    :p1, after d2, 5w
    Settlement + cash + bank reconciliation                   :p2, after d2, 5w
    Dashboards + exception/alert engine                       :p3, after p1, 3w
    Parallel run through 1 full month-end close               :p4, after p3, 4w
    section Phase 2 · Rollout
    Onboarding playbook + remaining properties                :r1, after p4, 8w
    section Ongoing
    Analytix transition + support + 3-yr roadmap              :o1, after p4, 8w
    

Discovery & Design ~6 weeks · Pilot ~12–14 weeks (incl. one full parallel month-end) · Rollout per-property, batched · then support + transition.

09 · Cost model

Team: Senior Engineer / Technical Lead + Mid Engineer + Hospitality-Finance / BI Analyst, with solution-architect oversight. Priced fixed-fee per phase so Hansji controls spend and gates at each stage.

PhaseWhat Hansji getsEst. fee (USD)Duration
Phase 0
Discovery & Design
Verified current-state maps, systems-by-property matrix, manual-work & time inventory, source→Intacct mapping, reconciliation design, KPI dictionary, alert matrix, build-vs-buy recommendations, architecture, pilot plan + budget$14,000 – $18,000~6 wks
Phase 1
Pilot (1–2 properties, end-to-end)
Live automated PMS/POS/payment/payroll feeds → Intacct; multi-way settlement + cash + bank reconciliation; financial-controls dashboard; rule-based alerts; parallel-run through one month-end close; acceptance criteria met$40,000 – $60,000~12–14 wks
Phase 2
Rollout (per property)
Onboard each remaining property using the repeatable playbook$4,000 – $7,000
/ property
batched
Ongoing
Support & platform ops
Monitoring, exception SLAs, enhancements, Analytix-transition support, roadmap$3,000 – $4,500
/ month
retainer
Illustrative program total (discovery + pilot + ~6 more properties + 6-mo support): ≈ $95K – $135K across ~9–12 months.
Final figure depends on property count, system mix, and per-vendor API/licensing access (some processors/PMS charge for data access — surfaced in the Phase-0 budget).
Why phased & fixed-fee: you gate spend at each stage, we prove value on the pilot before rollout, and there's no open-ended custom build. Config-over-custom keeps total cost of ownership down and keeps the platform maintainable by your own accounting-literate staff — exactly what the SOW asks for.

10 · What we need to firm this up

Recommended first step: a fixed ~$14–18K Discovery & Design — so the pilot and full program are scoped on verified facts, not guesses. Everything after gates on its findings.