# NSCC w/Accounting, HR and Payroll — enterprise readiness prep

**Purpose:** Prep roadmap to close the gap between today’s **production prototype** and an enterprise-capable native stack — without pretending we are already there.  
**Audience:** Product / eng / IPS leadership  
**Last updated:** 2026-08-21 
**Related:** [Customer pack](./NSCC_ACCT_HR_PAYROLL_CUSTOMER_PACK.md) · [Open questions](./NSCC_ACCT_PAYROLL_CUSTOMER_QUESTIONS.md) · [Scenarios appendix](./NSCC_ACCT_PAY_INVOICE_SCENARIOS.md) · [Living blueprint](./NSCC_FINANCE_HR_PAYROLL_BLUEPRINT.md) · [Data Dictionary](./NSCC_DATA_DICTIONARY.md) · [System Configuration](./NSCC_SYSTEM_CONFIGURATION.md)

**UX north star (always):** QBO-level ease — staff know *what to achieve*, not accounting jargon.

---

## Known gap truth table (authoritative)

Honest **built vs not** for the items we keep getting asked about. Do not claim these as done in demos or customer materials.

| Capability | Built? | Reality today |
| --- | --- | --- |
| **Hourly couriers (per-trip ignored)** | **No** | Field Payroll only pays trips when `payBasis === 'trips'`. There is **no courier hour-clock path**. |
| **Day stipend ($75/day CT-style)** | **No** | Not modeled. Per-trip stipends exist; day stipends do not. |
| **Patrol/guard who also does courier — both on one check** | **No** | **Primary basis only** (`hourly` **or** `trips`). Calc can be extended later; UI/routing does not combine yet. |
| **Week batch / multi-day roll-up invoices** | **No** | IPS draft is **one service date at a time**. No week-batch day invoices; no multi-day roll-up invoice. |
| **True weekly vs biweekly tax tables** | **No** | **Demo withholding only** (biweekly-shaped `annual ÷ 26` / simplified rates). Not IRS/state certified tables. |
| **Full state trip-rate table** | **No** | Thin **CT** seed only; other states are **blank** and fall through to employee / customer rate / default. |

Use this table when prepping enterprise work, answering IPS, or updating the customer pack.

---

## Current posture (honest)

| Layer | Today | Target for “enterprise” |
| --- | --- | --- |
| Live SoR | Sage 300 CRE via bridge | Decision: stay dual-mode long-term **or** phased native SoR |
| Native stack | Full workflow UX + Firestore GL | Production-hardened native with certified tax/money movement **or** subscribed processors |
| Payroll tax | Simplified demo withholding | Certified tables **or** bureau-calculated |
| Money out | UI + NACHA *preview* / provider sync hooks | Real ACH + W-2/1099 e-file (self **or** bureau) |
| Regulations | Seeded KB + AI Q&A (started) | Subscribe feed **and/or** AI-assisted with human publish gate |

---

## Decision A — Regulatory info (subscribe vs AI) *(customer decides)*

**Where it lands in product:** Support → **System Configuration** → **Enterprise decisions** (and Vendors / law packs). Contracts still prep; the **choice + risk appetite** are recorded now.

**Customer brief (risk · reward · cost):** [NSCC_ENTERPRISE_DECISIONS_AB.md](./NSCC_ENTERPRISE_DECISIONS_AB.md)  
**Questionnaire:** [NSCC_ACCT_PAYROLL_CUSTOMER_QUESTIONS.md](./NSCC_ACCT_PAYROLL_CUSTOMER_QUESTIONS.md) § Section 3  

**We prepare for all three options.** ★ = suggested default — not locked. Customer alone weighs appetite for risk.

| Option | Reward | Risk | Potential cost |
| --- | --- | --- | --- |
| **A1. Subscribe only** | Licensed feeds, SLAs, audit trail | Vendor lock; gaps outside feed | Higher ongoing subscription / filing APIs |
| **A2. AI grab + human publish** | Fast, lower cash | Hallucination if gate skipped | Lower cash / higher HR review labor |
| **A3. Hybrid ★** | Subscribe for filing-critical; AI drafts with publish gate; Official / Published / AI-draft labels | Two pipelines | Medium |

**Hard rule regardless of choice:** unverified AI never drives filings.

### Prep tasks for Decision A

1. Inventory what the current regs module covers (17 states × topics) vs what the customer actually files.  
2. List 2–3 candidate subscribe vendors (content + filing) and rough cost bands.  
3. Define AI publish gate: draft → review → effective date → immutable audit.  
4. Label every regs answer in UI: **Official (subscribed)** vs **AI draft (unverified)** vs **Internal published**.  
5. Record choice in SysConfig; wire vendor contracts after pick.

**Status:** **Customer decides** (product + HR + counsel) via brief + questionnaire + SysConfig.

---

## Decision B — Payroll tax & money movement *(customer decides)*

**Where it lands in product:** System Configuration → **Enterprise decisions** + payroll company under Outside companies.

**Customer brief:** [NSCC_ENTERPRISE_DECISIONS_AB.md](./NSCC_ENTERPRISE_DECISIONS_AB.md)

| Option | Reward | Risk | Potential cost | NSCC role |
| --- | --- | --- | --- | --- |
| **B1. Bureau-primary** | Certified tax + ACH/W-2 | Bureau dependency / fit | Ongoing PEPM + implementation | Stages pay runs; bureau owns tax/money |
| **B2. Self-calc + bank ACH** | Maximum control | Highest compliance burden | High internal + CPA / bank / e-file | Own tables + NACHA / e-file |
| **B3. Hybrid bureau ★** | Field pay in NSCC; tax/ACH at bureau | Handoff must stay clean | Medium | Field earnings; bureau tax + ACH/W-2 |

Prep engineering for **B1, B2, and B3** in parallel where cheap (adapter hooks, estimate banner, Field Payroll earnings). Do not claim certified tax or live ACH until the customer’s B path is connected.

### Prep tasks for Decision B

1. Map Check vs Gusto capabilities vs customer needs (multi-state, certified payroll, CIT/security roles).  
2. Define the handoff contract: NSCC pay run JSON → provider → posted taxes / ACH status back.  
3. Keep estimate-only tax banner until certified path live.  
4. Scope real NACHA only if B2; otherwise NACHA stays preview/export under bureau guidance.

**Status:** **Customer decides** (finance + payroll admin).

---

## Workstream map (gaps → prep)

### 1. Payroll tax

| Gap | Prep now | Build later (after Decision B) |
| --- | --- | --- |
| Demo withholding `annual÷26` | Document as **estimate**; banner on Field Payroll / Pay Calc | Wire bureau tax **or** Pub 15-T + state tables |
| Not certified | Do not claim certified in customer materials | Third-party certification / CPA review if self-calc |

### 2. Payroll bureau

| Gap | Prep now | Build later |
| --- | --- | --- |
| Check/Gusto = sync hooks | Keep sandbox; list required API keys / webhooks | Production OAuth, retry, clearback, failure UX (ops language) |
| Not a certified processor | Customer pack already honest | Live org keys + runbooks |

### 3. ACH / NACHA / W-2 e-file

| Gap | Prep now | Build later |
| --- | --- | --- |
| Product surface only | Keep preview; label “not live money movement” | Bureau path **or** bank ACH + SSA/IRS e-file partners |
| Year-end W-2/1099 | Keep summaries/export | Provider e-file hook when keys present |

### 4. Pay / billing product gaps (IPS questions)

**Authoritative status:** [Known gap truth table](#known-gap-truth-table-authoritative).

| Gap | Built? | Depends on | Prep |
| --- | --- | --- | --- |
| Hourly couriers (ignore trips) | **No** | #9 | Sketch hours source; exclude trips when hourly |
| Day stipends | **No** | #6 | Sketch `day_stipend` + settlement key |
| Combined hours + trips | **No** | #3 / #5 | Primary basis only today; combine later if asked |
| Invoice roll-ups / week batch | **No** | #1 / #1b / #2 | “Draft each day this week” vs “One weekly invoice” |
| True weekly/biweekly tax | **No** | Decision B | Estimate banner until bureau or certified tables |
| Full state trip-rate table | **No** | — | Expand beyond CT; blank states keep fallbacks |

### 5. System of record

| Gap | Prep now | Build later |
| --- | --- | --- |
| Live still Sage | Keep dual-mode; native proves workflows | Cutover checklist only after tax/money + hardening |
| Native = sandbox maturity | `NSCC_FINANCE_MODE=native` plan (already in exec brief) | Org isolation, backups, restore drills |

### 6. Hardening

| Gap | Prep now | Build later |
| --- | --- | --- |
| SOD at scale | Inventory current clerk/approver/admin gates | Load-test maker-checker; small-team override policy |
| Period locks under load | Document close checklist behavior | Concurrent close / lock stress tests |
| DR / SOC-style | List Firebase/GCP controls we inherit | Backup cadence, RPO/RTO, access reviews, pen-test |

---

## Phased prep (suggested order)

### Phase 0 — Now

- [x] Honest gap list + known gap truth table  
- [x] IPS questionnaire includes Decisions A/B with **all options** (★ = suggestion only)  
- [ ] Schedule IPS workshops for Decision A and Decision B  
- [ ] Collect answers #1–#9 + A/B  
- [x] Add “Estimate only” tax banner on Field Payroll / Pay Calc / Pay Runs copy  
- [x] Pillar readiness strip on Leadership → Executive Summary (Ops / Accounting / HR & Payroll / Leadership)  
- [x] Keep QBO-easy wording on every new control  

**Product posture for CEO demos (2026-08-21):** four left-nav pillars are present on live + demo + demo2; overlapping modules stay (hide in System Configuration); tax is labeled estimate-only.

### Phase 1 — Product gaps (after questionnaire answers)

- Hourly courier / day stipend / roll-ups / combined pay — **only as IPS chose**

### Phase 2 — Certified path (after Decision B + A)

- Provider OAuth / tax/money per **chosen** B option  
- Regs path per **chosen** A option  

### Phase 3 — SoR hardening

- Dual-mode forever **or** cutover checklist; SOD / DR / close under load  
- **Keep** the live/demo ability to talk to external systems (Sage Connect / staging) for customers who decline native Accounting, HR, and Payroll

---

## What “done enough for enterprise” means (exit criteria)

1. **Tax & pay:** Either bureau calculates final tax/ACH, or self-calc is CPA-reviewed with current tables.  
2. **No double-pay** remains (already started) under real volume.  
3. **Regs:** Every employee-facing answer is labeled Official / Published / AI-draft.  
4. **Easy mode:** A non-accountant can bill a day and run field pay without GL vocabulary.  
5. **SoR:** Written decision — Sage (or another external ERP/payroll) remains primary via bridge, **or** native is primary for a named scope. **Ops + bridge without native Accounting/HR/Payroll is a supported customer SKU** — do not force native pillars.  
6. **Hardening:** Documented RPO/RTO, access review, close lock under concurrent users.

---

## Owners (fill in)

| Workstream | Suggested owner | IPS counterpart |
| --- | --- | --- |
| Decision A (regs) | Product + HR eng | HR / counsel |
| Decision B (bureau/tax) | Product + finance eng | Controller / payroll admin |
| Pay/billing gaps | Accounting eng | Ops / payroll |
| Hardening / SoR | Platform | IT / finance |

---

## Do not

- Market demo withholding as certified.  
- Let unverified AI answers drive filings.  
- Force staff through COA/JE language in Easy mode.  
- Cut over live SoR before Decisions A & B and Phase 2.
