Skip to content

ERPNext Migration , Finalization Handoff (for Fable 5)

URL: https://mkdocs.justinsforge.com/memory/handoffs/erpnext-migration-finalization-2026-06-10/

STATUS UPDATE 2 (Fable 5, 2026-06-10 evening): MIGRATION FUNCTIONALLY COMPLETE. Task C executed same-day (Justin supplied TikTok/Amazon/SweatPals data + all 1099-Ks): 102 gross-up JEs across 6 channels, ~$19.3k of 2025 platform fees surfaced, every channel gross >= its 1099-K, BS ties to statements to the penny. Audit findings F1/F2/F4/F5 corrected per Justin (rent, Gusto fees, garage lighting, JWVR due-from), plus a final-sweep find: $8,527.50 of self-payments reclassed out of Contract Labor. FINAL 2025: JWVR 64,165.76 / SIP 21,599.73 / NOVA +127.14 / WEOP -49,727.50 / WIEB consolidated K-1 36,165.13 / GOC -1,957.58 (Justin 40% / Michael 60%). Tax intake complete + manifest with accountant action list: Tax Returns/2025 Taxes/INTAKE-MANIFEST-2026-06-10.md; tie-outs in SETTLEMENT-GROSSUP-TIEOUT-2026-06-10.md. Open externally: SweatPals 1099-NEC (maybe), 7 Notion to-dos (Q2 estimate 6/15!, late 1099-NECs, W-9s, Jerry loan, GOC TIN, Michael 1040-X, NE sales tax). Remaining work: Justin's book review -> accountant package (gated). Ongoing: daily engine 4x/day + monthly gross-up cadence + FY2026 true-up at close.

STATUS UPDATE (Fable 5 session, 2026-06-10 afternoon): A0 audit GREEN (all numbers re-derived independently, tie to the penny; 5 findings incl. 2026 rent-as-draws $5,880 and Gusto fees $351.78, reclass JEs proposed pending Justin's review). Tasks A and B DONE: forge_erpnext_daily_post.py posts per-txn JEs twice daily (07:20/13:20 timer), per-card ledgers 2431-2435 live, BS ties to statements to the penny. Task C prep done, blocked on Justin's TikTok/Shopify/SweatPals settlement reports. See reference_erpnext_daily_post and AUDIT-INDEPENDENT-2026-06-10.md + TASK-C-SETTLEMENT-GROSSUP-PREP-2026-06-10.md in the Finance Migration workspace folder.

Handoff from the Opus session (2026-06-09/10) that migrated Justin's 2025 books off QuickBooks into self-hosted ERPNext. QuickBooks is canceled; 2025 (full) + 2026 (YTD) are posted, submitted, and FY2025 is closed. This doc carries the business knowledge, the verified financial/tax facts, and the remaining tasks. Audit at bottom = green.

1. ENTITY STRUCTURE (verified against formation docs on Drive)

  • Wiebelhaus Enterprises LLC (WIEB) = S-corp parent (Form 2553 signed 2025-02-19). Sole member/manager: Justin. It is the parent/sole owner of JustinWiebVR LLC (JWVR), Shop Nova Design LLC (NOVA), Sip 'n' Serve Society LLC (SIP) , single-member LLCs whose P&L consolidates into WIEB's 1120-S (per the First Amendment, DocuSigned 12/30/2024). WIEB is a GROUP company in ERPNext; transactions post to its operating leaf WEOP (Wiebelhaus Enterprises Operating).
  • Gus Outdoor Co (GOC) = SEPARATE partnership (1065), Justin 40% / Michael 60% (Michael is majority; Gus the Bass is his brand). Files its own return.
  • Legal review doc: Finance Migration Summer 2026/LEGAL-STRUCTURE-VERIFICATION-2026-06-09.md. Formation docs on Drive: Business/Wiebelhaus-Enterprises/Formation-Docs.

2. KEY BUSINESS FACTS (learned from Justin, not in code)

  • Brands: JWVR (creator/sponsorships + homelab), NOVA (Shop Nova Design, TikTok-Shop + Shopify e-commerce), SIP (Sip 'n' Serve, pickleball events via SweatPals), GOC (fishing products / Gus the Bass plushies, w/ brother Michael).
  • GOC formation (2025, OA 2025-02-05): Michael contributed plushie inventory $5,992.50 (705 of 1,000 units) + TikTok cash $2,000 + savings $2,300 + brand $10k (soft) + sweat $5k; Justin cash $5,528.33 + sweat $5k. $9,500 loan from Jerome (Jerry, dad) funded Michael's inventory , a real GOC related-party note per the members' SPOKEN agreement (not in OA); $500/mo principal, 0% (under $10k de-minimis). Plushies sold out in 2025 -> $0 opening inventory. Justin's note "paper a 1-page promissory note" is LOW priority (loans have ~$0 tax effect either way).
  • Garage: Justin personally owns the detached garage at 4606 Franklin Park Dr; leases it to WIEB ($980/mo, signed 12/22/2025, 5-yr NNN). Lease assigns leasehold depreciation to WIEB. Build = LFM Remodeling contractor $52,117.73 (paid by WIEB 2026)
  • materials ~$18,760 (Justin's personal cards 2025 -> owner contribution). Placed in service 2026 -> 100% bonus depreciation $69,878.37 booked on the 2026 books (QIP/nonresidential; business storage, same footprint; accountant confirms QIP).
  • Justin S-corp salary: $45,000 W-2 (Gusto, run as one off-cycle payroll 12/12/2025), fed WH $9,900, net $0 (cash already taken as distributions; year-end reclass). Cash that left WIEB = $17,070 taxes = the 12/11/25 Gusto debit.
  • Commingling: ~$40k of business spend on personal cards booked as owner contributions (garage materials $18,760 -> 1715; JWVR gear $20,738 -> 5440). Home Depot classified via SKU-level Pro export (construction = garage; landscaping ~$2,081 = personal, excluded). COMMINGLING-WORKSHEET-2026-06-09.md.

3. TAX / PAYMENT FACTS (verified from IRS Online Account + filed returns)

  • Preparer: IRS Tax Solutions LLC, 1401 Lavaca St Austin (the recurring $1,099 fee).
  • 2024 (filed 6/25/25, verified by reading the 1040 visually): AGI $152,002, taxable $106,998, total tax $13,518, payments $15,745 (WH $4,745 + $11k), refund $2,227. (An earlier text-extraction gave WRONG 2024 numbers , $6,993/$85k , DISREGARD those.)
  • IRS payment ledger (authoritative): $11,000 (4/8/25) = 2024 balance; $4,000 (12/30/25) + $9,000 (4/15/26) = 2025. The $4,000 on the GOC card (6509, 4/17/25) was MICHAEL's taxes (not in Justin's IRS account) , a GOC distribution to Michael.
  • 2025 (all 3 returns ON EXTENSION, not filed): est. income ~$157k (Justin $45k W-2 + S-corp K-1 ~$27,669 + Krystal 2 W-2s: Econic $15,085.51 + SweatPals $70,315.72 + GOC K-1 -$762). Standard deduction beats itemized ($30k vs ~$27.5k; only one mortgage, 1098 = $20,489.54 interest). Est. 2025 tax ~$14-17k (anchored to 2024's $13,518 on ~same income). Prepaid ~$29,914 (WH $16,914 + $4k + $9k) -> ~$13-16k refund once filed WITH our books' ~$40k deductions. Safe harbor MET (110% x $13,518 = $14,870 < WH).
  • Working sheet: Tax Returns/2025 Taxes/2025-TAX-ESTIMATE-WORKING.md. Tax docs (renamed) in Tax Returns/2025 Taxes/Intake/. Returns copied to Tax Returns/All Tax Returns/.
  • Justin will review the books himself before the accountant package is built. Wait.

4. MIGRATION STATE (what's posted + the tooling)

  • ERPNext: 6 companies, custom COA (forge_erpnext_build_coa.py), fiscal years 2025+2026, payroll/partner/bank accounts (forge_erpnext_books_setup.py).
  • Books posted via forge_erpnext_post_books.py (dry-run default; --apply; --year): opening balances + per-(entity,month) cash-basis activity JEs (bank = universal contra)
  • manual JEs (payroll, commingling, GOC formation, garage depreciation). 2025 + 2026 YTD done. NOT idempotent , re-running double-posts (key issue for task A below).
  • FY2025 CLOSED (5 Period Closing Vouchers, 2025-12-31). 752 GL entries.
  • 2025 P&L (live, ties to classifier): JWVR +$56,366, SIP +$21,600, NOVA -$569, GOC -$1,906, WEOP -$49,728. WIEB S-corp consolidated ~$27,669.
  • Manual-JE design: MANUAL-JOURNAL-ENTRIES-2026-06-09.md. Pre-post review: PRE-POST-REVIEW-2026-06-10.md. Classifier: forge_books_import.py (reads finance.db business slice; vendor_map.json is the editable vendor dictionary).
  • Shared lake: data/finance/finance.db (also feeds finances.justinsforge.com; coordinate via data/finance/COORDINATION.md). Cross-source dedup fixed (windowed, in forge_finance_db.reconcile_cross_source).

5. REMAINING TASKS (priority order; Justin's calls incorporated)

A0. FULL AUDIT FIRST (Justin's explicit ask , do before building anything else). Independently audit (a) HOW ERPNext was built: companies, group structure, COA, fiscal years, the opening + activity + manual JEs, the period close , confirm it all maps correctly and the reports (P&L, Balance Sheet, Trial Balance) are right per entity and consolidated; (b) HOW finances flow end-to-end: finance.db slice -> classifier (forge_books_import.py) -> forge_erpnext_post_books.py -> ERPNext GL, and the shared-lake coordination with finances.justinsforge.com. Re-derive the numbers independently (don't just trust this session). Document findings; only then proceed. A. Incremental/ongoing posting engine , DAILY (Justin: wants mid-month P&L). Rebuild posting as idempotent + transaction-level (or daily-batch), keyed on the finance.db transaction id (or a stable hash), so re-runs only add new rows and ERPNext stays current to the daily SimpleFIN sync. Run daily (or on-demand). Mid-month P&L = just open the report; it's always live. (Replaces the one-time monthly-summary load, which was a historical-import simplification and is NOT how ongoing should work.) This also yields transaction-level detail in ERPNext, which Justin wanted. Reconcile against the already-posted 2025/2026 historical JEs so nothing double-counts at the seam. B. Per-card liability ledgers (Justin wants this). Today one cash ledger per entity folds card activity in with checking, so the Balance Sheet cash doesn't tie to bank statements. Add a Credit Cards Payable ledger per business card; card spend -> Dr expense / Cr card-payable; card payment -> Dr card-payable / Cr bank. Makes the BS reconcile to the penny (P&L already exact). C. Platform settlement GROSS-UP + sales tax (DO BEFORE accountant package). TikTok Shop, Shopify, SweatPals net out fees+shipping+sales-tax before depositing; our books recorded the NET deposit as revenue. This understates gross sales AND hides deductible fees/shipping. Fix: pull each platform's payout/settlement reports (from Justin) and book gross sales (revenue) + merchant fees (5330) + shipping (5320) + collected sales tax (2315 Sales Tax Payable liability), netting to the bank deposit. This also populates the sales-tax liability. Needs Justin to provide TikTok/Shopify settlement reports. Most material brands: NOVA (TikTok-heavy), GOC (Shopify). D. GOC partner-capital split (cosmetic, low priority). GOC owner contributions currently land in generic 3600; optionally split to 3610 (Justin) / 3620 (Michael) created accounts. Justin: not important. E. Accountant package (AFTER Justin reviews books). Bundle per-entity P&Ls + the commingling/garage/payroll worksheets for IRS Tax Solutions to file the extended 2025 returns WITH the ~$40k deductions (the ~$13-16k refund lever). Justin will review first. Accountant-pending (do NOT build): garage QIP confirmation, reasonable-comp review.

6. AUDIT (this session, all green)

  • 2025 P&L pulled from ERPNext GL ties exactly to the classifier + manual JEs.
  • All JEs balance (Dr=Cr); 0 missing accounts; unmapped expense long-tail routed to 5223.
  • Post-FY2025-close: each entity's BS imbalance = ONLY its open 2026 net income (2025 correctly rolled to Retained Earnings). Books internally consistent.
  • finance.db itself: cross-source dupes 0; income channels complete; commingling ~complete (only ~$1k residual). See FINANCIAL-DATA-AUDIT-2026-06-09.md.
  • Recommendations sanity check: A/B/C are the right finalization items; C is the one that changes the 2025 tax numbers (gross revenue + more expenses), so it gates the accountant package. A makes it a live system. B is BS-cleanliness. All sound.

7. KEY PATHS

  • Scripts: scripts/forge_erpnext_{build_coa,books_setup,post_books}.py, forge_books_import.py, forge_finance_{db,ingest}.py, forge_gdrive_{search,read}.py.
  • Workspace: /mnt/workspace/Forge/Finance Migration Summer 2026/ (all worksheets), /mnt/workspace/Tax Returns/ (returns + 2025 intake).
  • ERPNext: erpnext.justinsforge.com (CT 104); creds ~/.forge-secrets/erpnext.env; bot API via the api() helper in the erpnext scripts. PDF reading: render with pymupdf (.venv-finance/bin/python, fitz) then Read the PNG (form PDFs extract as garbage).