Rental Ledger Categorizer - Bank CSV to Schedule E avatar

Rental Ledger Categorizer - Bank CSV to Schedule E

Pricing

Pay per event

Go to Apify Store
Rental Ledger Categorizer - Bank CSV to Schedule E

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

GM Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Security

Limited permissions

Share

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

  1. Reads your CSV (comma, semicolon or tab; needs a date column, a description/payee column, and either an Amount column or Debit/Credit columns).
  2. Removes duplicate rows.
  3. Assigns each row a property (from your property list) and a category:
Schedule E lineCategory codeExamples matched
3rentsZelle/Venmo/rent deposits (money in)
5advertisingZillow, Apartments.com, Craigslist, listing fees
6auto_travelFuel, tolls, parking, Uber/Lyft
7cleaning_maintenanceCleaning, lawn, pest control, HOA
8commissionsLeasing / tenant-placement fees
9insuranceState Farm, Allstate, landlord policies
10legal_professionalCPA, attorney, eviction, tenant screening
11management_feesProperty management fees
12mortgage_interestMortgage payments (flagged: split principal using Form 1098)
13other_interestCard interest, HELOC interest
14repairsPlumbing, HVAC, handyman, roofing
15suppliesHome Depot, Lowe's, hardware
16taxesProperty tax, county treasurer, rental licence
17utilitiesWater, sewer, electric, gas, trash, internet
18depreciationNot derived from bank data (n/a)
19otherUse via custom rules
n/atransfer, security_depositTransfers, card payments, deposits (non-deductible)
n/aneeds_reviewNo rule matched
  1. Writes a Schedule E summary (property x category totals) as SCHEDULE_E_SUMMARY.csv and a JSON SUMMARY record.

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.