Rent Roll Analysis Skill
Rent roll analysis in one command: occupancy, loss-to-lease, delinquency, lease expirations and the data errors that break underwriting. $29, offline.
View Rent Roll Analysis Skill
QuickBooks Online rejects a journal entry import for one wrong account name, a sub-account without its parent, or an A/R line with no customer. Check the file against your own chart of accounts first and get an import-ready CSV.

| Situation | Code | Level |
|---|---|---|
| Debits don't equal credits for a Journal No. | unbalanced_journal | error |
| Debit and credit on the same line | debit_and_credit_on_one_line | error |
| Account not in your chart (with a did-you-mean) | unknown_account | error |
| Sub-account name that exists under several parents | subaccount_without_parent | error |
| A/R or A/P line with no Name | ar_ap_line_without_name | error |
| Two or three dates inside one entry | several_dates_in_one_journal | error |
| One Journal No. used for entries weeks apart | journal_no_reused | warning |
| Name not in your customer/vendor list (--names) | unknown_name | warning |
| Sub-account written without its parent (unique) | account_parent_added | fixed |
| Case-only difference | account_case_fixed | fixed |
| "6100 Rent Expense" style account-number prefix | account_number_removed | fixed |
| Negative debit or credit | negative_amount_moved | fixed |
| $, commas or parentheses in amounts | amount_reformatted | fixed |
examples/fernwood-october-close/ is a fictional bakery's October adjusting entries as an accountant might type them in a spreadsheet: 24 lines in 11 entries, checked against the bakery's account list and customer/vendor list, with 16 planted problems (a transposed accrual, a payroll tax line with both columns filled, "Prepaid Expense" for "Prepaid Expenses", "Supplies" that exists under two parents, a catering accrual to A/R with no customer, a reused JE number and more). expected.json labels what QuickBooks would reject and what can be fixed safely; the tests assert exactly that, in any row order, and that every entry in the import-ready file balances.
Outputs in out/: je_import_ready.csv (QuickBooks column names, one date format, plain amounts, safe fixes applied), issues.csv, report.md, summary.json. Exit 0 = ready to import; 1 = errors to fix first; 2 = an input problem (the message says which flag fixes it).

./run_tests.sh
python3 -m qbojeimport --je examples/fernwood-october-close/october_adjusting_entries.csv \
--accounts examples/fernwood-october-close/account_list.csv --names examples/fernwood-october-close/names.csv --out out/Python 3.9+ (tested on 3.10 and 3.13), no dependencies. Not affiliated with Intuit or QuickBooks.
Zip, 18 KB, v1.0, 15 files. Use and modify it for yourself and for clients you serve; no resale or redistribution of the kit itself. Full terms in LICENSE.txt.
Check a journal entry CSV before importing it into QuickBooks Online: unbalanced entries, rejected account names, A/R and A/P lines with no name. $12.
Rent roll analysis in one command: occupancy, loss-to-lease, delinquency, lease expirations and the data errors that break underwriting. $29, offline.
View Rent Roll Analysis SkillCAM reconciliation for every tenant: pro-rata shares, gross-up, caps, admin fee, base-year stops, statements that foot. $29 once, offline.
View CAM Reconciliation SkillLevel subcontractor bids in one command: plug exclusions and gaps, flag thin allowances and outlier prices, check totals, rank. $29 once, offline.
View Bid Leveling Skill