The Rental Portfolio Ops Dashboard
Six spreadsheets replaced by one live dashboard. Occupancy, applicants, revenue, renewals at risk, maintenance turnaround, and late payments all render on one screen, backed by a six-table Airtable base and built on Bolt. Every question about your portfolio is one click away.
Section One
What You're Building
A single live dashboard for your rental portfolio, backed by a six-table Airtable base. Occupancy rate, applicant funnel, revenue vs. target rent, lease renewals at risk, maintenance turnaround, and late-payment rate all render on one screen and update the moment you touch the base.
The Airtable base is the source of truth. The dashboard sits on top of it and reads live. No duplicate data entry, no reconciling five spreadsheets before an owner call, no forgotten renewal because it lived in a different file than the payment history.
Fig. 1 — system flow
Data
Airtable base
6 tables — source of truth
Compute
Formula fields
Days Until Lease End, Days Late, Turnaround Days
Read
Bolt dashboard
Reads live from Airtable via API
View
6 panels
Occupancy, applicants, revenue, renewals, maintenance, late-pay
The rule that makes this work
Data layer and presentation layer stay separate. Airtable holds the data, Bolt holds the view. That separation is what lets you add a client portal or a mobile view later without rebuilding anything underneath.
Section Two
What You Need
Airtable
The source of truth. Free plan works for portfolios up to a few hundred records per table, which covers most 3 to 10 property operators for a year or more.
Claude with the Airtable connector
This is what builds the base for you. In Claude: Settings, Connectors, add the Airtable connector and authorize it. Once connected, Claude can create bases, tables, fields, links, and formulas directly in your account.
Bolt
The dashboard host. Free tier is enough for a personal or single-portfolio dashboard. Bolt scaffolds the app from a natural-language prompt and hosts it at a live URL.
An Airtable personal access token
Bolt uses this to read your base. In Airtable: account picture, Developer hub, Personal access tokens. Create one with the scopes data.records:read and schema.bases:read, scoped to the base you build in step 02.
Total cost to start: zero. Every tool here has a free tier that comfortably covers a small portfolio. You only pay when you outgrow limits or want features like scheduled snapshots.
Section Three
Step-by-Step Build
01
Step One
Connect Claude to Airtable
In Claude (claude.ai): Settings, Connectors, find Airtable, click Connect, and authorize the workspace you want the base in. Once connected, Claude can create bases, tables, fields, links, and formula fields directly in your account.
02
Step Two
Paste the Airtable build prompt
Open a Claude chat with the Airtable connector on. Paste the prompt below. Claude will ask you two questions about your portfolio scale and screening process, then build the six-table base tuned to your answers. A full build takes a few minutes.
Copy this: the Airtable build prompt
Connect to my Airtable and build a base called Rental Portfolio Ops. The base needs six tables with these relationships: 1. Properties — one row per building or address 2. Units — one row per rentable unit, linked to Properties 3. Applicants — one row per applicant, linked to the Unit they applied for 4. Leases — one row per lease, linked to Units and to the Applicant who became the tenant 5. Payments — one row per rent payment, linked to Leases 6. Maintenance — one row per request, linked to Units Before you start building, ask me these two questions: - How many properties and units am I tracking? Field detail should match my scale, not a 500-unit portfolio. - Do I want applicant screening tracked as a funnel (Inquiry, Screening, Approved, Denied, Leased) or just tenant/no-tenant? The funnel version enables applicant reporting on the dashboard. Once I answer, build the base. Every table needs at minimum the fields required to answer these six questions live: 1. What's my occupancy rate right now? 2. Where is each applicant in the funnel? 3. What's the revenue vs. target rent this month? 4. Which leases end in the next 90 days? 5. What's the average maintenance turnaround? 6. What percentage of rent came in late this month? Add these three formula fields, since these are the calculations the dashboard depends on: - Days Until Lease End (Leases): computes from lease end date and today. - Days Late (Payments): computes from due date and paid date, or due date and today if unpaid. - Turnaround Days (Maintenance): computes from opened date and resolved date. Fill in remaining field details based on my portfolio scale and screening answer. When the base is built, give me the base ID and tell me the minimum records I need to enter to see all six dashboard panels populate.
Why the questions matter
A duplex owner needs different unit fields than a five-property manager. Letting Claude ask before building is what keeps the base right-sized for your operation instead of generic. If you already know your scale, answer both questions in the same message as the prompt to skip the round-trip.
03
Step Three
Populate just enough to see it work
You do not need to enter your full history. To see all six dashboard panels render, you need at minimum: two properties, three or four units, two applicants at different funnel stages, one or two active leases, a handful of payments (mix paid and late), one open and one closed maintenance request. Ten minutes of data entry is enough to verify the build end to end.
04
Step Four
Get your Airtable token and base ID
In Airtable: account picture, Developer hub, Personal access tokens, Create new token. Give it scopes data.records:read and schema.bases:read, and grant access to the Rental Portfolio Ops base. Copy the token. Then open the base and copy the base ID from the URL, which starts with "app". You need both for the Bolt step.
05
Step Five
Paste the Bolt build prompt
Open bolt.new. Paste the prompt below with your base ID and token filled in. Bolt scaffolds the dashboard, connects it to Airtable, renders the six panels, and gives you a live URL when it's done. Bolt picks the visual style, so no two dashboards look identical.
Copy this: the Bolt build prompt
Build me a rental portfolio operations dashboard. Connect the dashboard to my Airtable base and read data live on every page load. Do not duplicate the data into a separate database. - Base ID: [YOUR_BASE_ID] - Personal access token: [YOUR_TOKEN] The base has six tables (Properties, Units, Applicants, Leases, Payments, Maintenance) with linked relationships already set up. Layout: single-page dashboard, six-panel grid, clean and minimal. Each panel shows one number or one chart with a clear label. Design a color palette and typography that reads as professional operations tooling, not a marketing site. Render these six panels: 1. Occupancy rate — occupied Units / total Units 2. Applicant funnel — count by stage 3. Revenue vs. target — this month's Payments vs. Leases' monthly rent 4. Renewals at risk — Leases where Days Until Lease End < 90 5. Maintenance turnaround — average Turnaround Days on closed requests 6. Late-payment rate — percent of this month's Payments where Days Late > 0 When the dashboard is built, give me the live URL.
06
Step Six
Verify each panel, then bookmark
Open the dashboard URL Bolt gave you. Each of the six panels should show real numbers from your base. If a panel shows zero or an error, it almost always means the base does not have data for that panel yet, not that the code is broken. Add records to the empty table and refresh. Once all six read correctly, bookmark it. Any change you make in Airtable now shows up on the dashboard on next refresh.
Why this works
You never wrote a schema and you never wrote code. Claude built the data layer through the Airtable connector, tuned to your portfolio scale. Bolt built the presentation layer from a natural-language description. The whole thing runs on infrastructure someone else maintains, and the two layers are cleanly separable so either one can be swapped later without touching the other.
Good to know
If Bolt returns an auth error connecting to Airtable, the fix is almost always the token scopes. It needs both data.records:read and schema.bases:read on the specific base, not just workspace-level access. If a formula field shows the wrong value, tell Claude what you expected vs. what you got and it'll fix the formula in place through the connector.
Section Four
The Upgrade Path
Run it for a month before you add anything. As you find questions the six panels do not answer, add a field or a table in Airtable and tell Bolt about the new panel. Iteration cost is minutes, not days, because the data layer and the view layer stay separate.
From there the same skeleton scales sideways. Automated alerts: connect n8n or Airtable Automations to send a Telegram or email nudge when Days Until Lease End drops under 30, or when Days Late crosses 5. Client portal: a second Bolt view scoped to owner login, same base underneath. Mobile view: point Bolt at the same base and ask for a mobile-first version. None of that requires touching the six-table structure underneath. It was built to be read from, not rebuilt around.
“The data layer and the view layer stay separate. Iteration cost is minutes, not days.”
— The Rental Portfolio Ops Dashboard, p. 8
§ Fin.
Rather have it built for you?
This guide is one system from the Soulwire Studio workflow library. We build AI automations for businesses that run on process: intake, scheduling, proposals, compliance-heavy operations. If you'd rather spend your time closing deals than debugging dashboards, book an audit and we'll find the automation hiding in your business.

