Return Grid Docs Property Manager Guide

Property Manager Guide

Everything you can do in the Owner Portal

A working walkthrough of Return Grid for the people who run the portfolio — underwriting a deal, closing on it, leasing it, maintaining it, reporting on it, and eventually selling it.

Who this is for: owners, property managers, analysts, and anyone on your team with an Owner Portal login.
Where you sign in: returngrid.app
New here? Start with Onboarding your first property — the short sequential path through the parts you need first.
Companion guide: the Tenant Guide — what your renters see. Worth reading before you turn the Tenant Portal on.
Last updated: July 2026

Not everything in this guide will be switched on for you. Some features depend on your plan (Search Watch, portfolio dashboards, and custom domains need Team or Enterprise), and some depend on which integrations your organization has connected — invoicing, payments, e-signature, screening, ticketing and SMS are all optional and each can run in a manual mode instead. Where that matters, it's called out in the section.

Getting started

Signing in, finding your way around, and setting up the landing page you'll look at every morning.

The Return Grid owner landing page with overdue rent and maintenance widgets
The Owner Portal landing page. Overdue rent, maintenance needing triage and upcoming dates surface before you go looking for them.

Signing in

Sign-in is two steps: you enter your email, Return Grid works out which sign-in methods your organization offers, and then it shows you those options.

  1. Enter your email. Press Continue.
  2. Enter your password. A password is always available, on every plan. If your organization has Zoho SSO enabled, a Sign in with Zoho button appears above it — SSO is layered on top of passwords, it never replaces them.

If you've forgotten your password, use Forgot password on the second step. If your account is locked after too many failed attempts, wait 15 minutes or ask an admin to use Unlock account on your user record. If your email was never verified, the sign-in screen offers a Resend verification email button inline rather than leaving you stuck.

Only people on the Users list can sign in. That list is the allowlist for every sign-in method, including SSO. Adding someone to your Zoho account does not give them Return Grid access — an admin has to add them under Settings → Users first.

The main menu

Everything hangs off five dropdowns in the top navigation.

MenuWhat's under it
PropertiesAnalyzing (create a new analysis, view the list) · Owned · Sold
TasksTask list · Maintenance · Messages
TenantsThe tenant directory
ReportsRent Roll · Compare properties · Saved comparisons · Dashboards · Map · Usage and Charges · Repair Duration & Aging · Tenant Directory
SettingsUsers · Search Watch · Defaults · Contract deadlines · Customize Landing Page · Billing · Credentials · Tenant Portal Branding · Tenant Portal Providers · Custom Domain · Integration Errors · Communications · Rental Listings · Applications · Help & documentation · My Profile · Log out

Your landing page

The landing page is a stack of widgets, each one answering a question you'd otherwise have to go looking for.

Landing page
Today's important dates
Everything due in the next 3, 30, or 90 days across all four lifecycle phases
Overdue rent
Invoices past due, by tenant and property
Maintenance needing triage
Tenant requests nobody has picked up yet
Applications awaiting review
Submitted rental applications with no decision
Offers awaiting response
Offers received on properties you're selling
Tasks due
Your assigned to-dos and auto-generated capital-forecast tasks
Financial snapshot
Headline portfolio numbers
Analyze pipeline by status
How many deals sit at each stage
Portfolio by lifecycle phase
Analyze / Own / Sell / Sold mix
Active dispositions
Properties currently on the market
Recent activity
What your team has been doing
Search Watch
New listings the hourly scan found for you

Use Customize my view on the landing page to hide or reorder widgets for yourself. Admins can set the organization-wide default under Settings → Customize Landing Page. A personal layout always wins over the org default, and saving a new org default doesn't disturb anyone who has already personalized theirs.

The property lifecycle

Every property in Return Grid sits in exactly one of four phases. Phase determines what the record can do.

Analyze Own Sell Sold
PhaseWhat it meansWhat unlocks
AnalyzeA deal you're underwriting. Pro-forma numbers only.Calculator, comps, deal score, offers, diligence visits, purchase contract deadlines
OwnA building you actually own.Rent Roll, leases, tenants, actual-vs-projected, CapEx reserve accruals, maintenance, Tenant Portal
SellA disposition in progress.Sell Tracker checklist, offers received, 1031 deadlines, sale showings
SoldA completed sale. Terminal.Realized-return reporting. Figures lock at the sale date and stop feeding live KPIs.

Moving between phases

  • I bought it — Analyze to Own. Captures your actual close terms (see Closing the purchase).
  • Move to Sell — Own to Sell. Opens a sell attempt with your default checklist.
  • Complete sale — Sell to Sold. Locks the financials.
  • Undo purchase and Cancel sale — reverse a transition you made by mistake.
  • Re-underwrite — rerun the analysis on a property you already own, against today's numbers.

Already own the building? Use Add a property I already own from the + New analysis chooser, or from the empty state on the Owned list. It skips the purchase analysis entirely and asks only what you know off the top of your head — address, units, current rent, taxes, insurance, what you paid and when, and the loan as it was originated. Return Grid amortizes forward from the closing date to work out today's balance, value and equity. Everything stays editable on the calculator afterwards.

Analyzing a deal

The underwriting calculator, the metrics it produces, and the pipeline that tracks your deals.

The Metrics tab of a property, showing monthly profit, breakeven occupancy and cap rate cards
The Metrics tab. Overview, Sensitivity, Income & equity, Financing and Actuals each break the same deal down a different way.

Starting an analysis

From Properties → Analyzing → Create new analysis. Purchase price, current rent, rehab cost, property taxes and unit count are deal-specific and required every time. Everything else — closing costs, down payment, interest rate, loan term, vacancy, maintenance, CapEx reserve, management, other expenses, insurance per unit, comp radius and lookback, appreciation, rent growth and projection length — starts from your organization's saved defaults.

Property tabs

OverviewProperty InfoUnit InfoMetricsFinancingRent RollVisitsRepairs & ImprovementsDocumentsSell TrackerActual vs. projected

Not every tab is available in every phase. Rent Roll and Actual vs. projected only carry real data once a property is Owned; Sell Tracker only has an active checklist once you've moved the property to Sell.

The metrics

MetricWhat it tells you
Cap rate on costNOI against what you paid. The underwriting view.
Cap rate on current valueNOI against what it's worth today. The exit view.
Cash-on-cashAnnual cash flow against cash actually invested
DSCRNOI against debt service — the number a lender asks for
IRRTime-weighted return across the projection period
GRMPrice against gross rent, for quick screening
Breakeven occupancyHow empty it can get before it stops covering itself
Price/sqft, rent/sqft, profit per unitComparability across differently-sized buildings
Deal scoreA weighted 0–100 score and letter grade

Both cap rates are always shown. Neither replaces the other. Cap rate on cost tells you whether you bought well; cap rate on current value tells you what the market would pay you today.

The Deal Score formula

Under Settings → Defaults → Deal Score formula, admins control the weighting. Cap rate, cash-on-cash, DSCR and cash flow each get a weight (they must total 100%), plus a Low value that scores 0 and a High value that scores 100, scaling linearly in between. Raising a High value lets that metric keep earning credit past the old ceiling instead of capping out. Grade thresholds are the minimum score for each letter and must strictly decrease A through D; anything below D is an F. On an all-cash deal with no debt service, DSCR falls back to the cash-on-cash score.

The default weighting is Return Grid's own judgment call (cap rate 25% / CoC 35% / DSCR 20% / cash flow 20%), not an external published standard. Tune it to how your firm actually decides.

The pipeline

Every analysis carries a status: To Review Reviewing Offer submitted Offer accepted Offer lost Not Interested. Statuses drive the landing-page pipeline widgets, the Dashboard and Map default filters, and which deals count toward the average cap rate.

Under Settings → Defaults you control three separate status lists: Average cap rate statuses (which deals feed that one KPI — by default it excludes To Review and Not Interested so unvetted and passed-on deals don't skew it), Portfolio defaults (the pipeline KPI boxes and the starting filter on Dashboard and Map), and Properties list default view (which checkboxes are ticked when someone first opens the saved-analyses list). Anyone can change the filter for their own session; these only set the starting point.

Bulk editing and sharing

  • Bulk edit — select several properties and update assumptions across all of them at once. Leave a field blank to leave that value untouched.
  • Share with teammates — sends the link by email, text, or both, based on each person's own notification preference in Settings → Users.
  • Public share link — a read-only copy anyone can open with no sign-in. They cannot edit or delete anything. A signed-out viewer sees a prompt to sign in and lands back on the same page afterwards.

Data feeds & comps

Where the numbers come from, how long they're cached, and how to force a refresh.

The System Defaults settings page, with financing, operating and comp assumptions
Settings → Defaults — the starting assumptions applied to every new analysis.

Return Grid pulls property taxes, rent comps, sale comps, and price & sale history from RentCast, plus listing imports from the major portals.

DataCache
Property taxes14 days
Rent and sale comps5 days
Unit listings3 days
  • Pull Remote Data respects the cache — if the data is fresh, it reuses it and doesn't spend an API call.
  • Sync data feeds forces a bypass and refetches everything.

When a refetch produces values that differ from what's in your form, Return Grid does not overwrite you. It opens Fresh values that differ from yours — a field-by-field list showing your current value next to the new one, with a Replace current value button per row and a Replace all remaining values shortcut. Blank fields are filled in automatically. Replacing a value only puts it into the form; you still have to Save changes.

Comp radius and lookback

Set organization-wide under Settings → Defaults, and overridable per property on the property edit page. Changing the default updates the starting point for new properties and for any existing property that hasn't set its own override.

Unit Info source of truth

Rent Roll is unconditionally the source of truth for Unit Info — there's no setting to turn this on or off. Any property that has real Rent Roll unit records shows its Unit Info tab as read-only display (with a link through to Rent Roll to edit), and those unit records feed underwriting math, comp lookups, and PDF/Excel exports directly. Properties with no Rent Roll units yet are unaffected.

Comp lookups, AI estimates and web imports are metered. Each has a daily allowance that resets at midnight UTC, and volume above your plan's included amount becomes an overage charge. Reports → Usage and Charges shows today's allowance at the top — that's the number that answers "why did this just stop working" — with the month-to-date and custom-range totals below it.

Search Watch

A recurring scan that finds new for-sale listings matching your buy box and drafts the analysis for you.

Under Settings → Search Watch, create a job with the criteria you actually buy on:

New search watch job
Job name
How you'll recognize it in the list
Turn on this search watch job
The on/off switch for this job
Location
City, zip codes (comma-separated), county, state — up to 15
Price
Min and max
Unit count
Min and max units
Property types
Single family, multi-family
Check frequency
How often this job runs, from every hour to once a week. Defaults to every 6 hours
Email recipients
Who gets the report, comma or newline separated

On each check, matching new listings are automatically saved as draft analyses and emailed to your recipients. Listings where a unit count isn't published are included anyway and flagged in the email, rather than silently skipped — the alternative loses you deals.

Checking more often costs more data. Each check spends one listing lookup per location per property type, so an hourly job over a wide area uses several times the allowance of the 6-hour default. The frequency picker shows the trade-off as you change it, and your organization's data budget still caps total spend regardless of what you choose here.

Auto-drafted analyses use your saved defaults for every assumption except the deal-specific ones. They land in the pipeline for someone to actually look at, they don't commit you to anything.

Search Watch activity is recorded against a system address built from your organization's email domain (search-watch@your-domain), which you set under Settings → Credentials → Organization. That domain does not restrict who can sign in — the Users list does that.

The Deal Inbox

A private email address for your account. Forward a listing to it and Return Grid reads the listing for you.

Search Watch goes out and finds deals on criteria you set. The Deal Inbox is the other direction: deals that come to you — an agent's MLS alert, a broker's blast, a partner forwarding something they spotted — land in one reviewable queue instead of in your email.

Getting an address

Open Deal Inbox from the main menu and go to the Addresses tab. + Create address mints one, and Copy puts it on your clipboard. Give each one a label you'll recognize — most accounts want one, but a separate address per market or per agent makes the queue easier to read.

Three things you can do to an address after it exists:

  • Senders — who this address accepts mail from. Anyone, or an approved list. Mail from outside an approved list is held, not deleted — nothing is bounced back to the sender. Adding someone to the list releases their mail from then on, and Trust this sender on a held message in the Inbox tab also releases whatever of theirs is already waiting.
  • Rotate — shuts the current address off and issues a replacement in one step. Use this if the address ends up somewhere public.
  • Revoke — switches the address off for good.

Treat the address like a password. Anyone who has it can put deals in your inbox. That is the point — it is what lets an agent Cc it without needing a Return Grid login — but it is also why Rotate exists.

Pointing an MLS auto-notification at it

You don't have to change where your existing alerts go. In Paragon, open the auto-notification you already have on your saved search and add your inbound address as a Cc recipient. You keep getting your own alerts exactly as before, and Return Grid gets a copy it can read. The same trick works for a Zillow saved search, a broker's mailing list, or just forwarding a message by hand.

What we can read

Return Grid reads the listing sites below. The authoritative list for your account is on the Deal Inbox screen itself, under What you can forward — it is generated from what your installation can actually fetch, so it is never out of date the way a page like this one can be.

SourceWhat to send
LoopNetA link to the listing page. LoopNet is commercial only.
Paragon link from your agentA collaboration link your agent sent you, on paragon.ice.com. Paste it, or forward the email it came in.
Paragon listing alert emailAn automatic "New Listings" or "Price Change" alert, on paragonrels.com. Forward the whole email — each link is built for one property and one recipient, so there is nothing to browse to and nothing to copy out.
Realtor.comA link to the listing page.
RedfinA link to the listing page.
ZillowA link to the listing page.

The two Paragon rows are different products. Paragon brands both of them "collaboration," which is why they are easy to mix up, so go by the web address rather than the name: a link on paragon.ice.com is one your agent sent you by hand, and a link on paragonrels.com came out of an automatic alert. Forward either one — you do not have to work out which is which.

Tracking and redirect links are fine. Alert emails almost never contain the listing URL directly — they wrap it in a click-tracker — and Return Grid follows those through to the real listing before deciding whether it recognizes the site.

Send it even if the source isn't listed. Nothing is thrown away. An email we can't read still appears in the queue as a card, with the links it contained and the reason each one didn't work, and you can paste a listing link into the card to bring the numbers over by hand.

The queue

Mail is picked up on the hour, so a forwarded listing shows up within about an hour rather than instantly. Each one becomes a card on the Inbox tab showing what we could read from the email itself — address, price, beds, baths — along with who sent it and when.

From a card:

  • Enrich & create fetches the full listing and opens the same review-and-apply screen a pasted URL would, then creates the analysis.
  • Create from the email instead makes the analysis from what the email itself said, with no fetch. Faster and free, but you only get the fields the email happened to include.
  • Dismiss clears it from the queue. Nothing is deleted.

If we couldn't read a listing, the card says which link failed and why, and offers whichever next step actually helps: Try again when the problem looked temporary, such as a site that timed out, and a paste box otherwise. A link that failed because it points somewhere we don't read will fail the same way on a second attempt, so no retry button is offered for one — pasting the listing is the way through.

A second email about a property already in the queue updates the existing card rather than adding another. If the price changed, that is called out, and the people listed under Notify on the Addresses tab get an email about it. Leave that list empty and it goes to the account owner.

Nothing is fetched, and nothing is created, until you press a button. Reading the email costs nothing and happens automatically. Fetching the listing behind it is a metered import, the same as pasting a URL, and it only ever happens for one listing at a time when you ask for it — there is no setting that turns it on for the whole queue.

Offers & contract deadlines

Getting a deal under contract, and the deadline clock that starts when you do.

Move a deal to Offer submitted, then to Offer accepted when the seller signs. Accepting an offer creates the property's contract deadlines automatically, from your organization's template.

The deadline template

Under Settings → Contract deadlines. Each row is a deadline with an offset in days from an anchor date:

  • Accepted counts forward from the offer acceptance date.
  • Closing counts from the target closing date — use a negative offset for "days before closing".
  • Protects earnest marks a row where walking away before that date still gets your earnest money back. Return Grid uses the last such date to work out when your deposit becomes non-refundable.

Saving the template replaces the whole set at once. Editing it only affects future contracts — properties already under contract keep the deadlines they were given.

When a deal falls through

Moving a property back out of Offer accepted prompts the Contract fell through form: what happened, and whether your earnest money was returned. You can skip it — the status change is never blocked on the form — but it's worth filling in. The contract and its deadlines are kept as history rather than deleted, so next year you can look back at why a deal died.

Closing the purchase

The "I bought it" transition — one modal that turns a pro-forma into an operating asset.

A table of owned properties with cap rate, cash-on-cash and cash flow columns
The owned-properties list, with phase, cap rate, cash-on-cash, price and monthly cash flow on every row.

Every field defaults to the pro-forma value when the modal opens, and the label shows what the pro-forma said, so you can see exactly what you're overriding. Confirm the required four and you're done; expand the sections if you want to capture full close terms in the same pass.

I bought it

Required

Actual close price
What you actually paid
Actual close date
Real closings slip — this is editable even when pre-filled from the contract
Owning entity
Which LLC or entity holds it
Assigned teammates
At least one. They receive auto-generated tasks from future capital-forecast runs on this property.

Purchase details (optional)

Actual closing costs, actual rehab spend at close, and a Paid all cash switch that hides the financing block and treats the deal as unlevered.

Financing (optional)

Actual down payment, computed loan amount, actual interest rate (eighths of a point are fine — 6.375 works), loan term, separate amortization for balloon structures, balloon due date, loan product, points paid at close, prepayment penalty expiry and notes.

Ops handoff (optional)

Insurance carrier, annual premium, renewal date, HOA or condo dues, and the property-tax reassessment block.

Closing documents (optional)

Settlement statement, deed, title policy, note & mortgage — whatever you have in hand today.

Audit trail

Deed recording number, from the recorded deed at the county register of deeds.

Loan product
Conventional 30-year fixed · DSCR (investor) · Portfolio / relationship · Commercial 5/25, 7/25 and 10/30 balloon · SBA 7(a) · Seller-financed · HELOC / cross-collateralized

Capture the tax reassessment now. Most Wisconsin counties reassess to sale price on transfer. If you tick Expect property tax reassessment at close, Return Grid asks for the new assessed value (defaulting to your close price) and the new annual tax, and suggests a figure. Skipping this leaves year-one NOI overstated by whatever the old assessment understated.

Closing documents upload after the transition, not before. The phase change is what you came for and it isn't held hostage to a 12 MB scan. If an upload fails it tells you so, without claiming the purchase failed. Documents that arrive later go in the property's Purchase Closing Docs section.

The owned property record

What changes once a building is yours.

  • Actual vs. projected — a new tab comparing what you underwrote against what the building is actually doing. Reported gross rent, reported operating expenses, trailing-twelve NOI, and monthly cash flow after debt service.
  • Rent Roll — real units, leases and tenants (see below).
  • CapEx reserve — monthly accruals post automatically on the 1st for any owned property with a CapEx Reserve % set.
  • Tenant Portal — leases on this property can provision renter accounts.
  • Maintenance — tenant requests route to this property.
  • Documents — tagged, searchable document storage, with an AI classifier that suggests the tag.

Only Owned-phase properties carry a real reserve balance. The CapEx & RUL report deliberately excludes non-owned records for that reason — a pro-forma reserve on a deal you haven't bought isn't money.

Financing, refis & payoff

Keeping the debt picture honest over a long hold.

Record a refinance

Record refinance logs the event and updates the loan terms while preserving your original underwriting separately. At least one of new rate, new term, or new loan amount is required. You can also capture refinance date, lender name, cash-out amount, new amortization, new balloon date, the prepayment penalty on the new loan (recording "None" clears the old one), and refi closing costs — fees, points and appraisal, tracked for tax basis rather than added to your inputs.

Return Grid stitches the loans together into a single continuous amortization schedule, so remaining balance, equity and LTV stay correct across a refi rather than resetting.

Mark a loan paid off

Records that the current loan is paid in full. The amortization schedule and current-loan inputs are hidden, refinance history is preserved as loan history, and it can be undone. Enter the payoff date, and optionally the actual total interest paid from your final payoff statement — leave it blank and the paid-off summary keeps using Return Grid's simulated figure, clearly labelled as simulated. If a prepayment penalty was charged, record the amount actually charged.

Rent Roll, leases & tenants

Units, leases, the people on them, and the documents that bind them.

The Rent Roll tab, listing units with occupancy, tenants and rent
Rent Roll: units, occupancy, tenants, actual versus market rent, portal status and per-unit actions.

The lease drawer

Open a property, go to Rent Roll, and add or open a lease.

Lease
Status
Draft · Active · Notice given · Expired · Terminated early
Dates
Lease start and end, move-in and move-out
Money
Monthly rent, security deposit, pet deposit, rent due day, late fee, late fee grace period
Rent history
Mid-lease increases, kept as a dated history rather than overwriting the original rent
Deposit
Amount held, held since, holding account, and the Return deposit action
Inspections
Move-in and move-out condition records
Tenants
Primary, Co-tenant, Guarantor, Occupant (minor)
Renters insurance
Tracked only — Return Grid does not broker or sell insurance

Lease documents

Each document is typed — Signed lease, Addendum, Amendment, Notice, Deposit letter, House rules, Move-in report, W-9 — and each carries a Visible in Tenant Portal toggle. Nothing reaches the renter until you tick it.

Lease actions

  • Save as draft / Activate lease
  • Send for signature… and Continue — requires Zoho Sign connected. Once signed, the tenant's portal account is provisioned automatically.
  • End lease — either Expire (ran its term) or Terminate early.

Lease templates

Under Settings → Documents → Templates, upload the PDF you already use as your lease. Tag it as a new lease or a renewal, optionally scope it to a jurisdiction (for example WI), and set one default per type — those defaults are what the lease and renewal send actions reach for.

Return Grid does not ask you to edit the PDF. You tell it where on the page each piece of information belongs, by drawing on the document itself.

Drawing the layout

Edit layout on any template row opens the page as you'll print it, and you drag a box wherever something should be filled in. Each box is one of three kinds:

Field
A value Return Grid already knows — tenant name, rent, lease dates, deposit. Pick which one from the panel on the right.
Signature
Where somebody signs. Tenant signature regions are handed to Zoho Sign; the landlord's is filled in by Return Grid before the lease is ever sent.
Special condition
Wording that changes lease to lease — a pet clause, a parking stall, a concession. You'll be asked for the text when you draft the lease.
The Edit layout editor showing a Wisconsin residential lease with labelled boxes drawn over the landlord name, tenant name, address, term dates, rent and deposit lines, and the Field, Signature and Special condition tools above the page
Boxes sit on the page exactly where the printed values will land, so the layout you draw is what the finished lease looks like.

Boxes move and resize after the fact, Prev and Next walk multi-page templates, and nothing is stored until Save layout. A template with no boxes will send as a blank form, so the drafting screen warns you before that can happen.

If you used merge fields before: older templates written with {{tenant_name}}-style placeholders in the PDF text are still accepted and still fill in. New templates don't need them — draw a Field box instead. The two approaches don't have to agree, and you can re-draw an old template's layout at any time without re-uploading it.

The landlord's signature is not sent out for signing. Return Grid applies it inside the Owner Portal at the moment you send, so the lease reaches the tenant already countersigned. If it can't work out who signs for your organization, it leaves the space blank rather than guessing.

The tenant directory

Tenants in the main nav lists everyone on a lease at any of your properties, with contact details and active-lease counts. Open a tenant to see their info, financial summary, every lease they are or were on, and all their lease documents — including anything executed through e-sign. Archive hides a former tenant from the default list without deleting their history; Unarchive brings them back.

Tenants are created from leases, not directly. Open a property, go to Rent Roll, add a lease, and attach people to it — they appear in the directory from there.

Portfolio rent roll

Reports → Rent Roll lists every unit across every Own- or Sell-phase property with its current lease and primary tenant. Sold properties are excluded. Reports → Tenant Directory is the same idea for people.

Security deposits

Holding a deposit, and the four-step wizard for giving it back correctly.

The deposit lives on the lease: amount held, the date you started holding it, and which account it sits in. When the lease ends, Return security deposit opens a guided wizard.

  1. Review. Confirm the deposit facts before you withhold anything. The statutory deadline is computed automatically from the property's state and shown here.
  2. Deductions. Add every withholding. Each row needs a category, a description of at least 20 characters, and a positive dollar amount. Attach receipt URLs where you have them.
  3. Preview letter. The return letter the tenant will receive, citing the state-specific statute and itemizing every deduction line.
  4. Payout method. Electronic payout by ACH through your payments provider, a paper check to the forwarding address, or other with notes. Then Submit & issue refund.

Start the wizard early. Missing the statutory deadline can convert the withheld amount into treble damages in most states. The deadline is on screen from step one specifically so it isn't a surprise.

Why the 20-character minimum? "Cleaning" is not a defensible itemization in a deposit dispute. The field forces enough detail to stand up.

Listings & syndication

Publishing vacancies to a public page and feeding them to the rental portals.

Under Settings → Rental Listings. Turn on Enable public listings page and your published listings become visible at returngrid.app/rent/your-org — or on your own domain if you've set one up. No login is required for applicants.

Creating a listing

Headline
What prospects see first
Rent, available from
Monthly rent and the date it's ready
Application fee
Pre-filled from your default, overridable per listing
Contact email and phone
Required before a listing can syndicate
Pet policy, laundry, parking
The three questions every prospect asks
Photos
Up to 12. Save the listing first to enable uploads.
Published
Visible to the public
Share with Zillow, Trulia and HotPads
Include this listing in the syndication feed

Syndication

Return Grid publishes a live XML feed. Give the feed URL to Zillow Rental Network once, and your published listings stay synchronized automatically as you edit, unpublish, or delete them — there's nothing to resubmit.

A listing needs a complete address, rent, contact method, and at least one photo before it appears in the feed. Incomplete listings still show on your own page but are held back from syndication.

Applications & screening

Reviewing what comes in off your listings, and running background and credit checks.

Settings → Applications lists every rental application submitted through your public listings, with the applicant, the listing, the fee, and the submission date. Open one for the full detail.

Application detail
Applicants
Primary applicant and co-applicants
Uploaded documents
Pay stubs, ID, references — whatever the applicant attached
Screening summary
Progress and result summary from your screening provider
Update application status
With a denial reason and internal denial notes
Mark fee paid
Record the application fee when collected outside the portal

Denial reasons are structured: Credit, Income, Eviction history, Criminal history, Incomplete application, plus internal notes that the applicant never sees.

Screening

Connect Checkr Tenant or TransUnion SmartMove under Settings → Tenant Portal Providers → Applicant screening. Then use Start screening on an application and Open provider report to read the full result on the provider's site.

Return Grid never sees a Social Security number. Applicants enter it only on the provider's own hosted page. Return Grid stores a summary — score bands, flags, a report link and adverse-hit codes — and never the raw consumer report. That boundary is enforced in the data model, not just in policy.

Applications on a custom domain need a bot check. Return Grid provisions a Cloudflare Turnstile widget for each of your domains automatically once the domain is verified and its certificate is live. While a domain has no working widget, the application form on that domain is turned off — your listings still show, and applications on returngrid.app are unaffected. If automatic setup fails you can retry it, or supply keys from your own Cloudflare account as a fallback.

Setting up the Tenant Portal

Branding, the providers behind it, and serving it from your own domain.

The Tenant Portal Branding settings page with a live tenant-view preview
Tenant Portal Branding. The live preview shows renters exactly what you are about to publish.

Branding

Settings → Tenant Portal Branding. Included with every plan — no upgrade required.

Portal URL
tenant.returngrid.app/your-slug — lowercase letters, numbers and hyphens
Portal display name
What renters see as the name of the place they're signing into
Welcome message
Your copy on the dashboard
Logo
PNG or SVG, at least 200 × 60 px, up to 2 MB
Accent color
A preset or a custom hex. Return Grid checks it for WCAG AA contrast and warns you if it's unreadable.
Contact information
Contact name, email, phone, emergency phone, office hours
Footer
Legal or disclosure text
Move-in / move-out inspections
Let tenants complete a move-in condition checklist within 7 days of moving in
Tenant two-factor authentication
Require a second factor — authenticator app or text message

A live preview updates as you type. Open Tenant Portal shows you the real thing.

What you can't change, and why. Your logo, accent color, copy and contact details are yours. Typography, neutral color tokens, accessibility behavior, core controls and page layout stay Return Grid-controlled, so every renter gets a portal that works and reads clearly regardless of who their landlord is.

Changing your portal slug breaks existing invite links. If you change it, resend them.

Some jurisdictions require move-in and move-out inspections and will override your choice regardless of the switch.

Providers

Settings → Tenant Portal Providers, admin-only. Every one of these has a manual or native mode, so you can run the Tenant Portal without connecting anything.

CapabilityOptions
InvoicingZoho Books, or Manual (invoices live in Return Grid)
PaymentsZoho Payments hosted checkout, or Manual instructions plus recorded receipts
Applicant screeningCheckr Tenant, TransUnion SmartMove
Maintenance ticketsReturn Grid Native, or Zoho Desk
Lease e-signatureZoho Sign
Rent-payment credit reportingEsusu or RentReporters — scaffold only today
SMSTwilio, ClearlyIP
Email sendingReturn Grid's shared mail, or your own SMTP relay

Manual payments

If you don't connect a payment provider, write your own instructions in Instructions shown to tenants — accepted methods, recipient details, and what reference to include. Then record what arrives under Payment receipts, choosing a method: Check, Zelle, Venmo, Cash App, Cash, or ACH recorded manually. Each receipt attaches to an open invoice with an amount, a date received, and a reference.

Never put bank passwords or card details in the tenant-facing instructions field. It renders verbatim on a page every one of your renters can read.

Manual invoicing

Under Invoices → New invoice, pick the tenant and lease, set an amount and a due date, and create it. The tenant sees it on their Rent & Invoices page with a running balance.

Credit reporting

Rent-payment credit reporting is a scaffold, not a live integration. Turning it on enables tenant opt-in and logs on-time payment events as pending rows. Nothing is sent to a bureau until a real Esusu or RentReporters integration is wired in. Don't promise renters credit building on the strength of this switch yet.

Zoho Desk

By default, maintenance requests tenants submit through the Tenant Portal are tracked in Return Grid Native — a built-in ticket list with no setup required. If your team already runs support through Zoho Desk, you can connect it instead so those requests open as tickets there. Connecting is two halves: a few minutes in Return Grid, then a few minutes in Zoho Desk.

The Tenant Portal Providers page scrolled to the Maintenance tickets card, showing Ticketing provider: Return Grid Native with Use Return Grid Native, Connect Zoho Desk and Test connection buttons, next to the neighboring Applicant screening and Lease e-signature cards
Settings → Tenant Portal Providers — the Maintenance tickets card before anything is connected.

Return Grid's side.

  1. Create a Zoho OAuth app. In the Zoho API Console, create a Server-based Application. Note its Client ID and Client Secret — Client Secret is shown beside the Client ID on that same app's page.
  2. Find your Desk organization ID. In Zoho Desk, open Setup → Developer Space → API. The organization ID shown there is a number, not your help-desk name — that number is what Return Grid needs, not the Client ID or Secret from the previous step.
  3. Open Settings → Tenant Portal Providers (admin-only) and click Connect Zoho Desk on the Maintenance tickets card. Enter the Client ID, Client Secret and Desk organization ID.
  4. Copy the redirect URI Return Grid generated and paste it into your Zoho app's Authorized Redirect URIs — Zoho refuses the connection if it doesn't match exactly.
  5. Click Continue to Zoho and authorize the app.
  6. Pick a department. After authorization, Return Grid reads your Desk account's department list and shows it in a dropdown — select the one tenant maintenance requests should open tickets in, then click Save department.

Once connected, the card shows two values you'll need on the Zoho Desk side:

  • Zoho Desk webhook secret — shown once, immediately after you save the department. Zoho Desk's own webhook screen has no custom-header field, so this secret is appended to the webhook URL itself: https://returngrid.app/api/tenant-portal/providers/ticketing/zoho/webhook?secret=<this secret> is what you'll paste in as the "URL to Notify" value below. If you navigate away without copying it, use Regenerate webhook secret to get a new one — the old one stops working the moment you do.
  • Zoho Desk webhook Source ID — a UUID Return Grid generates for you and always displays (it isn't sensitive, so unlike the secret it doesn't disappear after one view). Zoho Desk's webhook form requires a Source ID in this format; paste this one in as-is rather than making one up.
The Tenant Portal Providers page scrolled to the Maintenance tickets card, showing Ticketing provider: Zoho Desk connected, with Use Return Grid Native, Connect Zoho Desk, Test connection and Disconnect Zoho Desk controls, plus the revealed Zoho Desk webhook secret and webhook Source ID fields
The same card once Zoho Desk is connected — the webhook secret and Source ID fields appear below the controls.

Zoho Desk's side.

In Zoho Desk, go to Setup → Developer Space → Webhooks → New Webhook and fill in:

FieldWhat to enter
NameAny label you'll recognize — "Return Grid" is fine.
URL to notifyThe full webhook URL from the Return Grid side, including the ?secret= portion at the end.
DescriptionOptional.
Source IDPaste the webhook Source ID Return Grid generated. Don't invent your own — Zoho requires UUID format and Return Grid's value is what it expects back.
Choose EventAdd a row per Ticket event you want to sync. "Add", "Add Comment" and "Add Attachment" are the useful ones for tenant maintenance requests.

Each event row defaults to "All departments." If you want tenant requests scoped to a single department — Maintenance, say — set that dropdown on every row you add; leaving it on "All departments" means Zoho will fire the webhook for tickets from every department in your Desk account, not just the one Return Grid is watching.

Save the webhook. Zoho Desk runs a connectivity check against the callback URL at save time — this should now succeed; connect through Return Grid first so a valid secret exists before you save.

Only one department today. Return Grid's connect flow supports routing to a single Desk department per organization. Multi-department routing is tracked in issue #620 but not yet built.

Custom domain

Settings → Custom Domain. Requires Team or Enterprise. Serve the Tenant Portal from something like portal.yourcompany.com instead of the Return Grid subdomain.

  1. Add the domain. Enter a fully qualified hostname.
  2. Add the DNS records shown on the domain's own card, at your registrar — Cloudflare, Namecheap, GoDaddy, wherever the domain lives. Every value has a Copy button, and Copy all records takes the whole table at once. Propagation takes a few minutes.
  3. Check now. Once the records resolve, Return Grid issues a free SSL certificate automatically and provisions the bot-check widget.

Each domain shows a four-step progress line — Domain added, DNS verified, SSL issued, Live — so you can see exactly which stage is still outstanding. If DNS verification fails, that card explains what was expected versus what was found. Once a domain is live its DNS records collapse behind a one-click disclosure on its card; they are never deleted.

Your own mail relay

By default Tenant Portal email goes out through Return Grid's shared mail account. To send from your own domain instead, supply the outbound SMTP relay your organization already uses — your Google Workspace or Microsoft 365 relay, typically. Enter host, port, connection security (STARTTLS on 587 is the usual answer), from address, username and password, and use Send test email before you rely on it.

Communications & broadcasts

Reaching all your tenants at once, and knowing whether it landed.

Settings → Communications. Configure your SMS provider (Twilio or ClearlyIP), set your organization time zone, then send announcements.

Send a tenant announcement
Subject and message
What you're telling them
Audience
All active tenants · Selected properties · Selected leases · Selected bedroom counts
Delivery channels
Email · SMS · Push · In-app
Send timing
Send now, or schedule for a specific time
Emergency broadcast
Overrides channel preferences and the 24-hour per-property limit. Requires an attestation.

Broadcast delivery history shows every broadcast sent or scheduled, its audience, channels, and per-channel delivery results.

SMS opt-outs are always honored, including on emergency broadcasts. Text messages also respect an 8 AM–9 PM local window based on your organization time zone, unless a tenant's device reports a different zone. Emergency broadcast overrides channel preferences and the daily frequency cap — it does not override a legal opt-out.

Maintenance & messages

Triaging what tenants report, and answering what they ask.

The owner-side maintenance request queue
The maintenance queue, filterable by status, priority and property.

Maintenance

Tasks → Maintenance is a board of tenant requests by status:

New In progress Waiting on tenant Resolved Closed

Open a request to set its Priority (Low, Medium, High, Urgent), link it to a Return Grid task with Linked task ID, and reply. Every reply has a switch: Internal note, hidden from tenant. Use it for vendor coordination and anything you don't want quoted back at you; leave it off when you're actually answering the renter.

"Maintenance needing triage" on your landing page is the count of requests nobody has moved out of New. It's the one maintenance number worth looking at every morning.

Messages

Tasks → Messages holds general questions from tenants that aren't tied to a maintenance request. Same reply mechanics.

Repairs, CapEx & reserves

Tracking work, classifying it correctly for tax, and funding it from a reserve.

Categories

CategoryTreatment
RepairAn operating expense. Hits NOI in the period.
Capital improvementDraws against the CapEx reserve. Posted as a spend automatically when the item is marked done.
DiligencePre-purchase, logged from a diligence visit.

The BAR test. Does this Better, Adapt, or Restore the property beyond its original condition? If yes, it's likely a capital improvement rather than a repair. The classification affects both your reserve and your tax treatment.

The operating expenses field on the calculator is recurring-only. A one-time repair belongs in the repairs tracker, not baked into an annual expense assumption where it will misstate every future year.

A repair item

Status
Not started · In progress · Blocked · Done · Forecasted
Target timeframe
Month 1 · 1–6 months · 6–12 months · 2–3 years · 4–5 years · 5–10 years · 10+ years
Estimated cost
A low and a high, plus ✨ Estimate with AI and Use as estimate
Actual cost
What it really came to
Assign to
One of three: a vendor by name and contact, an internal maintenance user picked from your own team, or unassigned. Choosing one clears the other, so a repair is never on a vendor and a staff member at the same time. The internal list is the users you have tagged as maintenance users in Settings, with anyone whose service types match this repair listed first.
Dates
Identified · Due / replacement · Started · Completed
Photos / receipts
Two strips: Found for the problem as you found it, Completed for the finished work. Older photos taken before this split all read as Found.

The repairs list itself is a table on a wide screen and a stack of cards on a phone, with a column showing where each item came from — a visit, a tenant ticket, the capital forecast, or logged directly — and who it is currently on. + Schedule a repair at the top of the tab opens a blank repair.

Forecasted items are projections from the capital forecast rather than live work. Promote to Repairs Tracker turns one into a real repair order when the time comes.

The CapEx reserve

Set a CapEx Reserve % on an owned property and monthly accruals post automatically on the 1st, dated as the 1st of the following month (an August 1 entry covers July). Spends post automatically when a capital improvement is marked done. Manual adjustments are also possible.

Reports → CapEx & RUL Report shows open items and the reserve balance for one property or the whole owned portfolio, and the reserve ledger lists every accrual, spend and adjustment with filters by property, type and date range, plus Export CSV.

Duration & aging

Per property, the Duration & Aging tab in the repairs modal; portfolio-wide, Reports → Repair Duration & Aging. Both use the same timing logic, so the two views never disagree.

  • Work duration — date started to date completed.
  • Turnaround — date identified to date completed. This is the number your tenants feel.
  • Open items — not started, in progress, or blocked, aged as of today.

Missing start dates are counted as unknown, never as zero days. Items without a recorded start date are excluded from every median and average rather than dragging them down. When you mark an item done with no start date, Return Grid asks for the real one — a soft prompt, not a required field, because auto-stamping today would record when you closed the row, not when work began. Forecasted items are excluded from aging entirely; a projected future replacement isn't work anyone is waiting on.

Date filters apply to completed work only. Open items are always aged as of today, so narrowing the window never makes your backlog look artificially smaller.

Visits & inspections

One form, four purposes, and it changes shape depending on which you pick.

TypeWhenForm
Diligence (pre-purchase)Analyze phaseFull condition survey. Edits shared property details.
Prospective TenantFinding rentersShort prospect form
Sale showingSellingShort prospect form
Routine inspectionAny owned propertyFull condition survey, read-only on shared details

The available types depend on the property's phase — a "Sale showing" filter on an owned property just empties the list, so Return Grid only offers types that can actually exist there.

The condition survey

Diligence and routine inspections walk a sticky section navigation: Exterior & structural · Basement / crawl space · Mechanical systems · Interior (per unit) · Garage & parking · Common areas & grounds · Safety & compliance · Tenant & occupancy observations · Neighborhood / curb impression · Repairs & cost log · Overall assessment.

Shared property details — roof type, siding, window type, driveway — are editable on a diligence visit because you're establishing what the building is. They're read-only on a routine inspection, which records the property's current state rather than redefining it.

Anything you log under + Add repair item in the cost log becomes a real repair item on the property, marked as created from a visit.

Save draft as you walk; Mark complete when you're done. Sold properties won't accept new visits, but everything already logged stays.

Tasks

Manual to-dos and the ones Return Grid creates for you.

Tasks → Task List. Filter by status (All open & in progress, Done, Cancelled, All), assignee, and property. Create with + New Task — title, due date, property (or "Not tied to a property"), and one or more assignees.

Capital-forecast runs generate tasks automatically and assign them to the teammates attached to that property, which is why Assigned teammates is required when you record a purchase.

Tasks are shared, not copied. One status and one completion, shared by every assignee — nobody ends up with their own private copy that stays open after the work is done.

Reports & dashboards

Where to look when someone asks how the portfolio is doing.

ReportWhat it answers
Portfolio overviewWhere every property sits in the lifecycle, one headline number per phase, and everything coming due across all four
Own dashboardOccupancy, payments received vs. invoiced, trailing-12 NOI, monthly cash flow, average days to fill a vacancy, turns completed, open repair & CapEx items, and everything coming due on owned property
Sell dashboardProperties in Sell, average days on market, projected net proceeds, offers received in 30 days, active dispositions longest-on-market first, and all offers received portfolio-wide
Sold dashboardSales closed this year, total realized gain, average hold-period return, average hold period, and open 1031 replacement deadlines
Lease expirationsEvery active or notice-given lease ending in the next 90 days
CapEx & RULOpen capital items and reserve balance, per property or portfolio-wide
Repair Duration & AgingHow long repairs take and how old the backlog is, worst property first
Rent RollEvery unit with its current lease and primary tenant
Tenant DirectoryAll non-archived tenants with contact info and active-lease counts
Compare propertiesSide-by-side underwriting across deals, saveable as a named comparison
MapEvery non-sold property with an address, color-coded by pipeline status
Usage and ChargesComp lookup, AI estimate, web import and document OCR volume, overage charges, and storage

Most tables export to CSV, and property analyses export to PDF and Excel.

Closing an accounting period

Under Settings → Money → Accounting Periods, each calendar month is either open or closed — there's no separate "locked" state to think about. Closing a period is a signal to the rest of your team that the month's books are done: Close period asks why you're closing it (an audit note like "month-end review complete"), and that reason is required, not optional. Need to fix something afterward? Reopen period is available on any closed period and asks the same kind of question — why it's being reopened — before putting it back to open. Every close and reopen, with its reason, who did it and when, shows right on the period's row in the Activity column, so the audit trail is visible at a glance instead of buried in a log only an admin can query.

Selling a property

The Sell Tracker, offers, and 1031 deadlines.

Move to Sell opens a sell attempt and stamps it with your organization's default checklist. The Sell Tracker tab shows progress through the steps, your list price, offers received, and 1031 details.

The checklist

Edit the org-wide template under Edit default checklist. Editing it only affects future sell attempts — properties already in Sell keep the checklist they were given.

Offers

+ Add offer captures the offer amount, buyer name, offer date, financing type, expiration date, and contingencies or notes. Accepting an offer moves the property to Under contract. Reports → Offers received rolls every offer across every open sell attempt into one list, filterable by Pending, Accepted, Rejected & withdrawn, or All.

1031 exchanges

Flag the sale as a 1031 and record your notes. The 45-day identification and 180-day closing dates are tracked with your other sell deadlines and flagged in red, because those two dates are unforgiving.

Completing the sale

Complete sale records the list price and the actual sale price and moves the property to Sold. Cancel sale reverses a sell attempt that didn't happen; View sale history shows previous attempts on the same building.

After the sale

Realized results, and what stops counting.

Sold is terminal. Figures lock at the sale date and never feed the live portfolio KPIs, the dashboard, the map, or the cap-rate averages again — a building you sold two years ago shouldn't be moving this quarter's occupancy number.

The Sold Properties Report gives purchase-to-sale financials for every completed sale, with total sale price, total gain, and per-property annualized return and cash-on-cash at exit.

Read those two columns carefully. "Annualized return" is a CAGR-style approximation from purchase price to sale price over the hold period, not a true multi-period IRR. "CoC at exit" divides total gain by total cash invested — purchase price plus closing costs plus rehab spend — not just the down payment. They're useful for ranking your exits against each other; they aren't the numbers to hand an LP without explanation.

Users, roles & org settings

Who gets in, what they can change, and your own profile.

Users

Settings → Users. This list is the sign-in allowlist for every login method your organization offers. Add someone with first name, last name, email, and optionally a mobile number, then set their Share notices preference — Email, SMS, or Email + SMS. SMS options stay unavailable until a mobile number is saved. Tick Admin to give them administrative rights.

Per-user actions: edit their details, Send password reset link, Unlock account after failed sign-in attempts, and disable an account without deleting it.

What admin unlocks

  • Editing organization defaults (non-admins can read them, but the save controls are replaced with a notice)
  • Credentials and SSO configuration
  • Tenant Portal Providers and Custom Domain
  • Integration Errors
  • The organization-wide landing page layout

Billing and subscription changes are owner-only, a step above admin.

Zoho SSO (Enterprise)

Under Settings → Credentials. Register a Self Client app in the Zoho API Console with scope AaaServer.profile.Read and the redirect URI shown on the page, then paste the Client ID and Client Secret. Users will always be able to sign in with their Return Grid password as well — SSO adds a route, it doesn't remove one.

Secrets are encrypted at rest and never shown again in full. Once saved, you see only a masked hint. Leave a secret field blank to keep its current value unchanged.

Your profile

Settings → My Profile. Change your display name, change your email (a confirmation link is sent to the new address, and you can cancel a pending change), set your notification preferences, and change your password with your current one.

Plans, billing & usage

What each plan includes, and the two different pages that answer money questions.

PlanPriceIncludes
Starter$49/mo1–3 seats, a monthly analysis allowance, the full Tenant Portal
Team$249/moUp to 10 seats, unlimited analyses, Search Watch, portfolio dashboard, custom domains
EnterpriseCustomUnlimited seats, Zoho SSO, guided onboarding

Every plan starts with a 14-day free trial. Tenant Portal branding is included on all three — no upgrade required.

Managing the subscription

Settings → Billing, owner-only. Change plan (applies immediately and is prorated), cancel, or reactivate. Checkout runs in a Zoho-hosted iframe.

Return Grid never sees your card. Card details go straight to the payment processor through the hosted checkout — the application has no access to them at any point. The same is true of rent: Return Grid routes invoice data but never receives or holds tenant funds.

Usage vs. billing

Two different pages, and people look in the wrong one constantly:

  • Settings → Billing — your subscription plan and its status.
  • Reports → Usage and Charges — what you've consumed and been charged for on top of it.

Usage and Charges opens with today's allowance at the top, because "why did this just stop working" is the question people actually arrive with, and daily allowances reset at midnight UTC — a month-to-date total can't answer it. Below that: a summary for the billing cycle or any custom date range, overage charges split into pending (accrued, not yet invoiced) and billed (already submitted, should match your invoice), and a searchable usage log filterable by source — comp lookup, AI estimate, web import, document OCR.

Document OCR page scanning (property documents, vendor bills, insurance certificates and licences) is metered separately, by plan: 200 pages/month on Starter, 500 on Team, 1,000 on Enterprise, at $0.005/page after that. Unlike the other three services this allowance is monthly, not daily — Google bills the underlying scanning service on a monthly cycle, and a scan burst on move-in day or a new portfolio import shouldn't trip a daily cap — so it doesn't appear in the today's-allowance section above, only in the range summary and overage charges below it.

When something breaks

Diagnosing it yourself before you ask anyone.

Integration Errors

Settings → Integration Errors, admin-only. Recent failures from Zoho Books, Zoho Payments and Zoho Desk, filterable by provider and date range (7, 30 or 90 days). Each row shows the operation, error class, HTTP status, attempt number, and whether it will retry automatically. Open one for the full request and response.

This is where "why did my invoice not create" gets answered without a support ticket.

Common causes

SymptomLook at
A teammate can't sign inAre they on Settings → Users? Is their account disabled or locked? Has their email been verified?
Comps or AI estimates stopped working mid-dayToday's allowance on Reports → Usage and Charges. It resets at midnight UTC.
Data looks staleThe cache. Use Sync data feeds to force a refresh rather than Pull Remote Data.
A listing isn't in the Zillow feedComplete address, rent, contact method, and at least one photo are all required.
Applications fail on your custom domainThe bot-check widget. Check its provisioning state on Settings → Custom Domain and retry.
Invoices aren't appearing for tenantsSettings → Integration Errors, filtered to Zoho Books.
Tenant portal emails aren't arrivingIf you've configured your own SMTP relay, use Send test email. Otherwise check the tenant's notification preferences.
A tenant can't see a document you uploadedThe Visible in Tenant Portal toggle on that document.

Accessibility

Return Grid is built to WCAG 2.1 Level AA. The Accessibility Conformance Report (VPAT) documents where it conforms and where it doesn't. If you set a custom accent color for the Tenant Portal, the branding page checks it for contrast and warns you when it fails.

Other documentation

All Return Grid documentation · Tenant Guide — worth sending to renters at move-in, and worth reading yourself before you switch the Tenant Portal on.