Rental Ledger Categorizer - Bank CSV to Schedule E
Pricing
Pay per event
Rental Ledger Categorizer - Bank CSV to Schedule E
Bank or credit-card CSV to IRS Schedule E categories per rental property. No bank login, rule-based with confidence and needs-review flags, duplicates free.
Pricing
Pay per event
Rating
0.0
(0)
Developer
GM Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
Rental Ledger Categorizer: Bank CSV to IRS Schedule E (no bank login)
Rental Ledger Categorizer by GM Labs turns a bank or credit-card CSV export into IRS Schedule E categories for each rental property. Drop in last year's transactions, get every row categorized (advertising, repairs, utilities, mortgage interest and more), plus a per-property Schedule E summary you can hand to your CPA or paste into a spreadsheet.
- No bank linking, no account login. You paste a CSV or give a CSV URL. Nothing is stored outside this run's dataset and key-value store.
- Rule-based, no AI guessing. Merchant and keyword rules with a confidence score. Anything unclear goes to Needs review.
- Duplicates removed (same date + amount + description) and never charged.
- Good for catch-up bookkeeping on back years, landlords whose Stessa or Baselane bank feed broke, and bookkeepers handling CSVs from several landlord clients.
What it does
- Reads your CSV (comma, semicolon or tab; needs a date column, a description/payee column, and either an Amount column or Debit/Credit columns).
- Removes duplicate rows.
- Assigns each row a property (from your property list) and a category:
| Schedule E line | Category code | Examples matched |
|---|---|---|
| 3 | rents | Zelle/Venmo/rent deposits (money in) |
| 5 | advertising | Zillow, Apartments.com, Craigslist, listing fees |
| 6 | auto_travel | Fuel, tolls, parking, Uber/Lyft |
| 7 | cleaning_maintenance | Cleaning, lawn, pest control, HOA |
| 8 | commissions | Leasing / tenant-placement fees |
| 9 | insurance | State Farm, Allstate, landlord policies |
| 10 | legal_professional | CPA, attorney, eviction, tenant screening |
| 11 | management_fees | Property management fees |
| 12 | mortgage_interest | Mortgage payments (flagged: split principal using Form 1098) |
| 13 | other_interest | Card interest, HELOC interest |
| 14 | repairs | Plumbing, HVAC, handyman, roofing |
| 15 | supplies | Home Depot, Lowe's, hardware |
| 16 | taxes | Property tax, county treasurer, rental licence |
| 17 | utilities | Water, sewer, electric, gas, trash, internet |
| 18 | depreciation | Not derived from bank data (n/a) |
| 19 | other | Use via custom rules |
| n/a | transfer, security_deposit | Transfers, card payments, deposits (non-deductible) |
| n/a | needs_review | No rule matched |
- Writes a Schedule E summary (property x category totals) as
SCHEDULE_E_SUMMARY.csvand a JSONSUMMARYrecord.
Input example (copy-paste)
{"csvText": "Date,Description,Amount\n01/05/2026,HOME DEPOT #4521,-86.12\n01/08/2026,CITY WATER UTILITY 12 OAK ST,-61.33\n01/03/2026,ZELLE FROM J SMITH RENT 12 OAK ST,1650.00","properties": [{ "name": "12 Oak St", "match": ["12 oak"] }, { "name": "44 Elm Ave", "match": ["44 elm"] }],"customRules": [{ "match": "joe's handyman", "category": "repairs", "property": "44 Elm Ave" }]}
Or set csvUrl to a public CSV link (for example a Google Sheet published as CSV). Card exports that show spending as positive numbers: turn on expensesArePositive.
Output example (one dataset row)
{ "date": "01/05/2026", "description": "HOME DEPOT #4521", "amount": -86.12, "property": "12 Oak St","category": "supplies", "categoryLabel": "Supplies", "scheduleELine": "15", "confidence": 0.8,"matchedRule": "merchant/keyword: home depot", "needsReview": false, "isDuplicate": false, "charged": true }
Export the dataset to CSV, Excel or JSON from the Storage tab, or call it from the Apify API, Make, Zapier or n8n.
Pricing (pay per event)
- $0.25 per run that has at least one usable row.
- $0.002 per categorized row. Rows sent to Needs review, duplicate rows, unparseable rows and empty input are free.
- A typical landlord year of 300 to 1,500 rows costs about $0.85 to $3.25. Set a max charge on the run to cap spend; the Actor stops billing when it is reached.
FAQ
Is my bank data stored? Only in this run's own dataset and key-value store in your Apify account, which you control and can delete. GM Labs does not receive or keep it.
Which banks work? Any CSV with a header row: Chase, Bank of America, Wells Fargo, Capital One, Amex, credit unions, Relay, Mercury and others.
Can I teach it my vendors? Yes, customRules run before the built-in rules (confidence 0.95).
Does it split mortgage principal and interest? No. Mortgage payments are put on line 12 with confidence 0.6 and flagged for review; use your lender's Form 1098 for the interest amount.
Disclaimer
This is not tax, legal or accounting advice. Categories are produced by simple keyword rules and can be wrong. Review every row, especially Needs review and low-confidence rows, and confirm with a qualified tax professional before filing. IRS Schedule E (Form 1040) line numbers are given for convenience only.
Made by GM Labs. Questions or a bank format that doesn't parse? Open an issue on the Actor page.