Xero baseline — Renfroe Holdings org, 2026-04-19¶
Purpose: Snapshot of what is actually in the live Xero org today, before we start building out the real COA + tracking categories + Brex-driven workflow. Produced from read-only API pulls against the live org via scripts/fpa/xero_client.py. Raw JSON snapshots in /tmp/xero-baseline/ on claude-code-01 (not committed).
TL;DR — the org is not empty¶
Austin's mental model coming in: "I've done nothing to Xero yet — it's whatever Brex's default connector + a couple bank-feed adds produced." Accurate in spirit but materially understated. The org has 111 accounts, 53 of which are BANK-type (including 19 credit cards), 25 unpaid AP bills totaling $124K, 28 auto-generated journal entries, and 9 supplier contacts (one of them a duplicate-spelling of another). None of Austin's planned custom COA, tracking categories, or property-specific accounts exist yet — what's there is Xero's default US BUSINESS template plus Brex's auto-pushed bills and bank-feed-created accounts.
The headline cleanup items before we build anything new:
1. 10 duplicate bank accounts — Brex created "Brex business account#001" through "#009" (plus a base "Brex business account") alongside user-named accounts for the same sub-accounts. Every Brex ledger entry is hitting the wrong side of this duplicate pair.
2. 2 mortgage balances are loaded as BANK-type accounts instead of long-term liabilities (First Horizon ...8368 and what appears to be Lavaca ...0819).
3. Contact duplicate: "PORTILLA, RUY-DÍAZ & AGUILAR, S.C." (3 bills) and "Portilla Ruy Diaz y Aguilar SC" (7 bills) are the same Mexican law firm. Combined AP = $13,869.19 split across both records.
4. Zero tracking categories — Entity and Asset Class dimensions from the plan do not exist, so every bill pushed so far is uncategorized by entity.
5. 25 ACCPAY bills have no AccountCode on any line item — Brex is creating bill headers but not mapping to GL accounts, so the P&L can't be read yet.
Org identity¶
| Field | Value |
|---|---|
| Name | Renfroe Holdings |
| Legal name | Renfroe Family Holdings, LLC |
| Entity type | SINGLEMEMBERLLC |
| EIN | 33-1273117 |
| Edition / Class | BUSINESS / PREMIUM |
| Base currency | USD |
| Fiscal year end | Dec 31 |
| Timezone | EST |
| Xero org created (UTC) | 2024-10-19 |
| Default sales tax | Tax Exclusive |
| Default purchases tax | No Tax |
Org was created ~18 months ago but meaningful data only starts 2026-02-16 — consistent with Brex connector being turned on in Feb 2026.
Chart of accounts — what's there¶
111 accounts, by type: BANK 53, EXPENSE 20, CURRLIAB 13, EQUITY 5, CURRENT 4, FIXED 4, SALES 3, REVENUE 3, DIRECTCOSTS 3, OTHERINCOME 2, INVENTORY 1.
Structure is Xero's stock US BUSINESS template: generic 1200 AR / 2000 AP / 3000 Owner's Capital / 3900 RE / 4000 Sales / 5000 COGS / 6000-series expenses / 8100-8200 FX. None of the planned custom lines exist (no 1510 W 3101 building, no 2210 First Horizon mortgage, no 4010 Guest revenue, no 6110 R&M, no 6510 Pearce Bevill, etc.).
53 BANK-type accounts (the mess)¶
Brex auto-created duplicates (must be resolved):
| Brex-created (likely from connector) | User-named (likely from direct add) | Last 4 |
|---|---|---|
Brex business account BREX 3529 |
Casa Moksha: Dep 3529 |
3529 |
Brex business account#001 BREX 3529 (also this) |
(same pair, two Brex copies exist) | 3529 |
Brex business account#002 BREX 0926 |
1006 20th St LLC: Ops (Defunct) 0926 |
0926 |
Brex business account#003 BREX 3161 |
Renfroe Marine Holdings: Ops 3161 |
3161 |
Brex business account#004 BREX 4145 |
Oceana 433: Ops 4145 |
4145 |
Brex business account#005 BREX 5803 |
Five Pts Holdings: Ops 5803 |
5803 |
Brex business account#006 BREX 5636 |
Oceana 433: Dep 5636 |
5636 |
Brex business account#007 BREX 0593 |
Renfroe Holdings GK 0593 |
0593 |
Brex business account#008 BREX 9271 |
ATX Marine Holdings: Ops 9271 |
9271 |
Brex business account#009 BREX 7098 |
W 3101 Holdings 7098 |
7098 |
Brex Primary Checking Account 715920804568798 |
(not duplicated, good) | 8798 |
Treasury 1769 |
(not duplicated) | 1769 |
Vault 0631 |
(not duplicated) | 0631 |
Casa Moksha: Ops 3753 + Brex business account BREX 3753 |
(dup pair) | 3753 |
Every Brex card / bank posting appears to be landing on the BREX #### account while the user-facing operational view shows the #### account — classic symptom of Brex connector vs. manual bank-feed-add collision. This needs one-time resolution (pick one side, move opening balances, delete the other).
Credit cards (19 total, all CREDITCARD subtype of BANK):
Delta Platinum Business 2004, Brex Credit Card BREX, Business Platinum 6009, Marriott Bonvoy 9417, Delta SkyMiles Reserve 5006, CREDIT CARD ... 8587, Private Bank Visa Signature 0115, Citi Strata Elite 0615, Southwest RR Premier 2848, G. RENFROE 7523, Business Platinum 2009, Marriott Business 3762, CREDIT CARD ... 1331, Hyatt Visa 3179, Ritz Carlton 3194, Marriott Bonvoy Brilliant Amex 1000, Citi/AAdvantage Exec World Elite 3764.
The personal cards (Delta SkyMiles Reserve, Hyatt, Ritz, Southwest, the Marriott consumer cards) being in the RFH org is a separation-of-books problem and aligns with the "mixed personal + business" issue Austin already flagged for Monarch sort. Need a call on which stay and which get archived.
Other bank accounts of note:
- MORTGAGE ...8368 and MORTGAGE ...0819 — wrongly typed as BANK. These are Monarch-feed imports of First Horizon (W 3101) and Lavaca mortgage balances; should be LT-LIAB (2210 / 2220).
- CHECKING ...5045, ...4923 — presumably Chase business (identities need confirming).
- CHECKING ...6248 — Wells Fargo Austin personal (planned as memo-only 1085).
- PayPal 66WPWUTTS8CMJ — exists, matches Casa Moksha workflow.
- Wise USD 7856 + MXN 5334 + AUD 8550 + CAD 5698 + EUR 9840 + GBP 6499 + JPY 0391 — 7-currency Wise stack wired in.
- No Coinbase account(s). CM crypto flow not represented.
Non-bank accounts — what the default template gave us¶
Income side: 4000 Sales / 4100 Discount Received / 4200 Merchandise / 4300 Service / 4400 Markup on Reimb / 4710 Uncategorized Income / 4715 Other Income / 4820 Vendor Refunds. → None of the hospitality / rental / crypto-specific revenue lines from the plan exist.
COGS: 5000 COGS / 5100 Purchase Discount / 5300 Subcontractors. → No booking platform fees, payment processor fees, property management fees.
Expenses: 6000 Advertising / 6040 Bank Service Charges / 6110 Automobile / 6140 Biz License / 6155 Dues & Subs / 6200 Meals / 6320 Insurance / 6330 Professional Fees / 6400 Reimbursable / 6680 Wages / 6720 Payroll Tax / 6722 Mileage / 6900 Bad Debt / 7000 Depreciation / 7050 Misc / 7150 Other / 8100 Bank Revaluations / 8150 Unrealized FX / 8200 Realized FX / 8201 PayPal fees. → No repairs/maintenance breakout, no utilities split, no mortgage-interest line, no IVA handling, no Mexican payroll line items (IMSS, aguinaldo, holiday premium), no professional-services breakout by firm.
Liabilities: 2000 AP / 2060 Gift Card / 2100 Unpaid Expense Claims / 2160-2190 Payroll liability lines / 2200 Sales Tax / 2400 Line of Credit / 2500 Suspense / 2550 Historical Adjustment / 2600 Rounding / 2650 Tracking Transfers. → No mortgage LT debt, no intercompany payable (2030 Due to RHG, 2040 Due to GK), no Mexican tax liability lines.
Equity: 3000 Owner's Capital / 3110 Owner's Investment / 3120 Owner's Draw / 3130 Billable Time / 3900 RE. → Close enough to the plan (3010 / 3030 / 3050); naming is different but structure maps.
Fixed assets: 1520 Computer & Office Equipment + accum depr / 1530 Vehicles + accum depr. Real estate basis (1510-1560) entirely absent. Marina lease rights (1610-1630) absent. Investment in subsidiaries (1810-1820) absent.
Tracking categories¶
Zero configured. The Entity (RFH parent, W 3101, W 3603, ATX Marine, Austin Marine, Renfroe Marine, Five Points BHM, Oceana 433, RHG summary, GK summary) and Asset Class (Holdings/Mgmt, Residential Rental, Commercial Rental, Marina, Hotel, Primary Residence, Foreign Real Estate) dimensions from chart-of-accounts.md do not exist. Every bill Brex has pushed in Feb-Apr 2026 is therefore uncategorized by entity — un-drillable reporting today.
Contacts (9)¶
All suppliers, no customers, $80,305.63 AP outstanding.
| Contact | AP outstanding | Notes |
|---|---|---|
| PEARCE, BEVILL, LEESBURG, MOORE P. C. | $24,550.00 | US CPA per reference_advisors.md |
| ATP Fund II, LP | $30,000.00 | Capital call |
| Alex Snider Advisory | $8,212.50 | Advisor fees |
| Portilla Ruy Diaz y Aguilar SC | $8,618.78 | duplicate — 7 bills |
| PORTILLA, RUY-DÍAZ & AGUILAR, S.C. | $5,250.41 | duplicate — 3 bills |
| Desarrollo Empresarial Anjona, S.C. | $2,173.94 | MXN; RHG-side vendor |
| CONLEY ROSE | $1,500.00 | Legal — unclear firm, check |
| Designer Installs | $0.00 | |
| RTC Restoration & Glass, Inc. | $0.00 |
Portilla merge: easy win, two spellings of Ruy-Díaz & Aguilar Mexican legal firm (per reference_advisors.md). Consolidate under the accented form, re-point the 7 "Portilla Ruy Diaz y Aguilar SC" bills.
Invoices & journals¶
- 25 ACCPAY bills totaling $124,047.19, all dated 2026-02-16 → 2026-04-10.
- 22 AUTHORISED, 3 PAID.
- 0 lines carry an AccountCode → all expense categorization is missing.
- Invoice counts by contact match the contacts table above.
- 28 Journal entries, same date range. Presumably paired with the 25 bills (auto-GL posts).
- 0 BankTransactions API-surfaced (suggests Brex connector posts bills, not bank-feed transactions directly — need to verify whether there's a Brex→Xero bank-rec workflow and what reconciles to what).
- 0 BankTransfers, 0 CreditNotes, 0 ManualJournals, 0 Items.
Tax & currencies¶
- 5 default tax rates, AUTO LOOKUP via Avalara, Tax Exempt, Tax on Sales (OUTPUT), Tax on Purchases (INPUT), Sales Tax on Imports. No Mexican IVA rate configured, no JPY consumption-tax rate.
- 7 currencies enabled — USD (base), AUD, CAD, EUR, GBP, JPY, MXN. Matches the Wise footprint. Good.
- 1 branding theme ("Standard") — fine for now.
Gap analysis vs. chart-of-accounts.md¶
What the plan calls for and what's in the org today:
| Plan section | Status |
|---|---|
| Entity tracking dimension | ❌ absent |
| Asset Class tracking dimension | ❌ absent |
| 1010-1099 Cash & equivalents (specific per-Brex-account numbering) | ⚠️ accounts exist but with different codes (all BANK-no-code) + duplicates |
| 1120/1130 Intercompany receivables | ❌ absent |
| 1220 Recoverable IVA | ❌ absent |
| 1510-1560 Real estate basis | ❌ absent |
| 1610-1630 Marina lease rights | ❌ absent |
| 1810-1820 Investment in subs | ❌ absent |
| 2030/2040 Intercompany payables | ❌ absent |
| 2110-2130 Mexican tax liabilities | ❌ absent |
| 2210-2240 Long-term debt (mortgages, AFR) | ❌ absent — mortgages loaded as BANK not LIAB |
| 3010/3020/3030/3050 Equity lines | ⚠️ close — existing 3000/3110/3120/3130/3900 maps ok |
| 3035 SBA distribution | ❌ absent |
| 4010-4030 Hospitality revenue | ❌ absent |
| 4100-4199 Real estate rental income | ❌ absent |
| 4300-4399 Other income (interest, invest, FX) | ❌ absent (8100/8200 FX exists only) |
| 5010-5040 COGS breakout (booking, processor, crypto, PM fees) | ❌ absent |
| 6000-6099 Mexican payroll lines | ❌ absent |
| 6100-6199 R&M breakout | ❌ absent |
| 6200-6299 Utilities breakout | ❌ absent |
| 6300-6399 Property other operating | ❌ absent (6320 Insurance exists as generic) |
| 6400-6499 Mortgage interest | ❌ absent |
| 6500-6599 Professional services by firm | ❌ absent (6330 generic Professional Fees only) |
| 6800-6899 Software subs | ❌ absent |
| 9010-9030 FX / crypto OCI | ❌ absent |
Effectively: nothing from the custom plan is in place. The work is still all ahead.
Recommended sequence¶
Proposed order of operations — confirm before executing any writes.
-
Don't build new structure yet. The three inputs
chart-of-accounts.mdflags (JME monthly deliverable, Japanese accountant monthly deliverable, Pearce Bevill structure input) are still outstanding. Building out the full planned COA and then reshuffling it after those inputs arrive is waste. -
Cleanup-only phase first — can proceed without external input:
- Merge Portilla contacts (7 bills moved to canonical record, delete dup).
- Resolve the 10 duplicate Brex bank-account pairs (pick side, reassign transactions, archive other).
- Reclassify
MORTGAGE ...8368and...0819out of BANK type and into the liability section (even if code is placeholder until plan is finalized). - Decide which of the 19 credit cards stay in RFH vs get archived as personal-only.
-
Configure Entity + Asset Class tracking categories (these are independent of COA detail — can safely install now).
-
Code-assign backlog — the 25 unmapped ACCPAY bills need expense-account coding before next month close. Doable manually in Xero or scriptable via API once the target account exists in the COA.
-
Brex connector behaviour investigation — understand whether Brex is supposed to create
BREX ####as a pass-through ledger and expects us to reconcile to user-named accounts, or whether the user-named accounts were set up redundantly. That determines cleanup direction. -
Then build the full custom COA once the three outstanding inputs arrive.
Inputs to this analysis¶
- Live Xero API pulls via
scripts/fpa/xero_client.py— 15 endpoints: Organisation, Accounts, Contacts, Invoices, Journals, ManualJournals, BankTransactions, BankTransfers, CreditNotes, Items, TrackingCategories, TaxRates, BrandingThemes, Currencies. - Raw JSON snapshots left at
/tmp/xero-baseline/on claude-code-01 (not committed — ephemeral, re-runnable). - Cross-checked against
accounting/chart-of-accounts.md,context/entities.md,banking/brex.md,reference_advisors.md(memory).