Rent Management
A one-screen overview of everything to do with rent you owe (or collect) from shop/stall vendors — how many agreements are active, what your total monthly rent bill is, what is overdue right now, and what is coming due in the next week.
Overview
Rent Management is built for shop owners who sublet stalls/counters to vendors (e.g. a market complex or shared retail space) and need to track rent agreements and collections without a separate spreadsheet.
The dashboard is the landing page for the whole Rent Management area and pulls together numbers from your Rent Agreements and Rent Payments records into four stat cards plus two action lists.
It has no filters or settings of its own — it is a read-only summary; agreements and payments themselves are created and edited on the Rent Agreements and Rent Payments pages.
Before You Start
- Requires the Rent Management feature enabled on the Advanced plan tier or above — the menu item and page are hidden entirely below that tier.
- Only Managers/Owners can open this page; staff without manager rights will not see it in the sidebar.
- The dashboard is only useful once you have created at least one Rent Agreement — with none, all four stat cards read zero and both list cards stay hidden.
Step-by-Step Guide
1 Read the rent stat cards
- Look at Active Agreements — a count of rent agreements currently in ACTIVE status.
- Look at Monthly Rent — the sum of the monthly rent amount across every active agreement, formatted as currency.
- Look at Overdue Amount — the total balance still owed across all rent payments that are past their due date.
- Look at Upcoming Due — the total balance owed across rent payments due in the next 7 days, so you can plan collections/cash flow ahead of time.
2 Chase down overdue rent
- If any payments are overdue, an Overdue Payments card appears listing each one by vendor name, due date, and balance amount in red.
- Use this list as your daily follow-up call sheet before it slips further past due.
- Once a payment is recorded (on the Rent Payments page), it disappears from this list on the next dashboard load.
3 Plan for rent due this week
- If any payments are due within the next 7 days, an Upcoming Payments (Next 7 Days) card lists each vendor, due date, and balance amount in orange.
- Use this to remind vendors ahead of the due date, or to make sure you have cash/UPI collection ready on the day.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Active Agreements | Count of rent agreements currently marked ACTIVE (from the Rent Agreements page). |
Monthly Rent | Sum of monthly rent across all active agreements, shown as a currency value. |
Overdue Amount | Total outstanding balance across every rent payment whose due date has passed and which is not fully paid. |
Upcoming Due | Total outstanding balance across rent payments due within the next 7 days. |
Overdue Payments list | Per-vendor rows (vendor name, due date, balance amount) for every overdue payment — only rendered when at least one exists. |
Upcoming Payments (Next 7 Days) list | Per-vendor rows (vendor name, due date, balance amount) for payments due in the coming week — only rendered when at least one exists. |
Tips & Best Practices
- Check this dashboard first thing each morning if you manage several rented-out stalls — it surfaces both what is already late and what is about to become late in one glance.
- If a vendor consistently shows up in Overdue Payments, consider reviewing their agreement's billing day/frequency on the Rent Agreements page.
Troubleshooting & FAQ
All four stat cards show zero.
The Overdue Payments card is missing even though I know a vendor is late.
I do not see Rent Management in my sidebar at all.
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/RentDashboardPage.jsx
Backend endpoints used:
GET /rent-management/dashboard
Related tables (db-core repositories):
RentAgreementRentPayment
Redux slices:
scope (selectCurrentScope / getScopeQueryParams)
Feature flag key: rent_management (requires advanced plan tier or above)
Fetches a single aggregated payload from the backend (dashboard.agreements, dashboard.overdue, dashboard.upcomingDue) rather than composing multiple calls client-side. Uses an AbortController so an in-flight request is cancelled if the component unmounts before it resolves. Currency is hard-formatted to INR via Intl.NumberFormat regardless of store locale digits.