A real estate transaction tracker in SharePoint for a small brokerage
Use two linked SharePoint lists: one row per deal, with a Stage choice column and date columns for inspection, appraisal, financing and closing, plus a checklist list with one row per task. Add a Closing soon view (ClosingDate between [Today] and [Today]+14) and a daily Power Automate flow to remind the agent.
This is a way to keep track. It is not a source of rules about your deals.
Columns at a glance
Deals list:
- Title: file label. Example: Deal 12, Oak Lane.
- Stage: Choice. Example: 2 Under contract.
- Agent: Person. Example: the agent on the file.
- InspectionDate, AppraisalDate, FinancingDate, ClosingDate: Date, date only.
Deal checklist list:
- Title: the task. Example: Send disclosure forms.
- Deal: Lookup to the Deals list.
- Done: Yes/No, default No. Owner: Person. TaskDue: Date, date only.
What this guide is, and what it is not
This guide shows how to build a tracking list. It does not tell you what your dates mean, how long anything must be kept, or what your state, your brokerage or your license requires. Use the dates in your signed contract. This list only reminds you. If a date in the list and a date in the contract ever differ, the contract wins, and you should fix the list. This guide is not legal advice.
Why a spreadsheet tracker breaks down
A transaction sheet works for three deals. At fifteen deals, problems start:
- Each agent keeps a private copy, so the office has no single view.
- Dates sit in cells that nobody is warned about.
- The stage is typed ("under contract", "UC", "pending"), so you cannot count or filter it.
- The checklist is a second tab that falls out of date.
- Nobody can quickly answer "which closings are in the next two weeks?"
If you are still deciding whether to leave your spreadsheet, see "Replace a spreadsheet tracker with a SharePoint list".
Before you start
Settle three things before the first deal goes in.
- Label each file briefly. A street name plus a deal number fits the Title column. Names, phone numbers, bank details and ID numbers belong in whatever system your brokerage already uses.
- Name the few people allowed to create deals and change dates.
- Pick the milestone dates your contracts really contain. I show four below. Delete any that your deals never use.
Step 1. Create the deals list
Microsoft describes a list as a collection of data that you can share with your team. Exact names may differ on your screen.
- Open your team site in a browser.
- Choose the option to create a new list, and start from blank.
- Name it "Deals".
Step 2. Add the columns
Microsoft's column types page explains each type named here. My suggested set follows.
- Title. It exists in every list. Put a short file label in it, for example "Deal 12, Oak Lane". You may rename it File.
- Stage (type: Choice). Enter these values on separate lines: 1 New, 2 Under contract, 3 Inspection, 4 Financing, 5 Clear to close, 6 Closed, 7 Fell through. Swap in your own stage names if they differ. Microsoft describes a Choice column as a fixed menu of values. Our advice, not a Microsoft rule: the leading digit keeps your order. Make 1 New the default.
- Agent (type: Person or Group). Microsoft says this type offers a searchable people picker. Limit it to a single person.
- InspectionDate, AppraisalDate, FinancingDate and ClosingDate (type: Date and time, date only for each).
Microsoft says a Date and time column can hold just a date or a date with a time. Pick date only, because the reminder flow later compares whole days.
Why write the date names without spaces? A flow or filter formula refers to a column by its internal name. When the display name has no spaces, the internal name matches it. A name with spaces gets encoded characters inside, and a typo there breaks the formula.
Microsoft says a column can be marked required. Our advice, not a Microsoft rule: require Stage and Agent only. Keep the dates optional because a new deal may not have all four yet, and a flow simply passes over a row whose date is blank.
Step 3. Create the checklist list
The checklist is a second list, called a child list. Each task is one row, and each row points to one deal.
- On the same site, create a new blank list named "Deal checklist".
- Keep the Title column. Use it for the task, such as "Send disclosure forms".
- Add a column named Deal, type Lookup. Microsoft says a Lookup column gets its values from a column in another list on your site. Choose the Deals list as the source and Title as the column to show.
- Add Done (type: Yes/No) and set its default value to No in the column settings, so every new task lands in the open-tasks view. Add Owner (type: Person or Group) and TaskDue (type: Date and time, date only).
Now each deal can have as many task rows as it needs. A row in the checklist list shows which deal it belongs to. One way to start is to keep a short standard checklist in a text note and type the rows in for each new deal. If you want new deals to get their checklist automatically, that is a flow, and it is a good small job to hand to someone who builds them.
Step 4. Add a sample deal
Add one fake deal and mark it as a test. Delete it afterward.
- Title: Example Street, deal 1 (test)
- Stage: 2 Under contract
- Agent: (pick a person)
- InspectionDate: (a date in the future)
- ClosingDate: (a later date)
Then add two sample checklist rows and set Deal to your test deal. If the form is slow to fill in on a phone, remove a column now.
Step 5. Build the views
Per Microsoft, a view is a saved way to sort, filter and group the rows, and creating one leaves the underlying list untouched. Microsoft says a filter using [Today] or [Me] has to be built in the classic view editor (Edit current view, then Filters), and that those tokens are unavailable when you filter from a column header. Our advice, not a Microsoft rule: use the classic editor for blank and "is not equal to" filters too. Menu names can differ on your screen. Per Microsoft's filtering page, a view accepts up to 10 filter statements.
- Deals by stage. In the classic view editor, set Stage is not equal to 6 Closed, And Stage is not equal to 7 Fell through. Group by Stage, then sort by ClosingDate, ascending. Each stage shows its own block of deals, with the nearest closing first.
- Closing soon. In the classic view editor, set ClosingDate is greater than or equal to [Today], And ClosingDate is less than or equal to [Today]+14, And Stage is not equal to 7 Fell through. Sort by ClosingDate, ascending. Microsoft's example for [Today] math is a date greater than or equal to [Today] minus 30; use the same pattern with a plus sign for dates ahead.
- Missing a date. In the classic view editor, set Stage is equal to 2 Under contract, And InspectionDate equal to nothing (leave the value box empty). This shows deals where somebody forgot to enter a date. Our advice, not a Microsoft rule: test this view with your sample deal before you rely on it.
For the checklist list, one way to start is a view of rows where Done is equal to No, grouped by Deal. This is the list of open tasks, deal by deal.
Make the views public so the office sees one picture.
Step 6. Why there is no "days left" column
It is tempting to add a calculated column that counts days until closing. A calculated column cannot do that. Microsoft says the TODAY and ME functions are not supported in calculated columns. A calculated column can only work from other columns in the same row. Use the Closing soon view, or the reminder flow in Step 7, for anything that depends on today's date. For more on this limit, see "SharePoint calculated column formulas for due dates and status".
Step 7. Optional: a date reminder flow
A scheduled Power Automate flow can look for deals with a date approaching and notify the agent. Build it small.
- Open Power Automate and make a scheduled cloud flow. Microsoft's route: My flows, then Create from blank, then the Recurrence trigger, then Interval and Frequency. A daily run means Interval 1 with Frequency Day. Fill in Time zone and Start time as that page describes.
- Add the SharePoint action Get items and point it at the Deals list.
- Expand Advanced options and type a filter in the Filter Query box, one line per date column:
ClosingDate ge 'formatDateTime(addDays(utcNow(),3),'yyyy-MM-dd')' and ClosingDate lt 'formatDateTime(addDays(utcNow(),4),'yyyy-MM-dd')' and Stage ne '6 Closed' and Stage ne '7 Fell through'
Enter the part inside the quotes as an expression. Microsoft's Get items page shows filters shaped like this, a column compared with a date from formatDateTime, and lists eq and ne among the supported operators. Microsoft's expression reference gives addDays the form addDays(timestamp, days), and days may be negative or positive. The line above therefore matches deals closing three days from now; change the 3 and 4 for earlier or later warning. I compare against a range instead of using eq because a date column can carry a time too. That choice is our advice, not a Microsoft rule.
- Fill in Top Count. Microsoft says Get items returns 100 items unless you raise Top Count, and the ceiling is 5,000. Enter your largest expected count of open deals.
- Open the action settings and switch Pagination on if the list could outgrow that figure. Microsoft says to enable Pagination for lists over 5,000 items.
- Add an action that notifies each Agent. "Send a reminder before a due date in a SharePoint list" covers that part.
- Copy the Get items step for InspectionDate, AppraisalDate and FinancingDate, or build a separate flow for each date.
Leave Top Count at its default and the flow reads only the first 100 items. Deals beyond row 100 then get no reminder, and no error tells you so. "Power Automate Get items stops at 100 rows: how to get them all" goes deeper.
Treat the reminder as an aid. A flow may be switched off or fail without notice, so open the Closing soon view once a week and rely on the signed contract for the true dates.
Step 8. Decide who can see and edit
A view only changes what is shown, so use permissions. Keep client details out of the list, give agents and the office manager edit rights and everyone else read rights, and ask your admin to set it up. For rows each agent sees alone, see "Let each person see only their own items in a SharePoint list". Ask your admin and your brokerage what must be done with deal records.
What to avoid
- Putting client details in the list. A short file label is enough, and views do not hide anything.
- Typing the stage freehand. A Choice column lets you filter and count.
- Trying a calculated column built on today's date. SharePoint does not support it.
- Adding spaces to the date column names, which complicates the filter line.
- Leaving Top Count at its default in a flow. The result is a silent cut-off at 100 rows.
- Mistaking a reminder for the deadline. The signed contract holds the deadline.
- Piling on columns. Keep the form short so agents can log a deal quickly.
- Removing closed deals to keep the list tidy. Hide them with a filter in your everyday views. To move old rows elsewhere, read "Archive closed items to another list".
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
How do I put a checklist on each deal?
Use a second list with a Lookup column that points to the Deals list. Microsoft describes a Lookup column as one that gets values from another list on your site. Each task is a row, and the Deal column says which deal it belongs to.
What goes on a real estate transaction timeline checklist?
Put the inspection, appraisal, financing and closing dates on the deal row. Put each task in the Deal checklist list, with a TaskDue date and a Done column.
Can the list tell me what a date means in my contract?
No. The list stores the dates you type and reminds you. Use the dates in your signed contract, and ask your broker or lawyer about what they mean.
Why does my reminder flow miss some deals?
Get items returns 100 items by default. Set Top Count in Advanced options, and turn on Pagination for larger lists.
Can a calculated column show days until closing?
Not by using today's date. Microsoft says TODAY and ME are not supported in calculated columns. Use the Closing soon view or the reminder flow.
Sources
- Microsoft Support, List and library column types and options
- Microsoft Support, Use filtering to modify a SharePoint view
- Microsoft Support, Introduction to SharePoint formulas and functions
- Microsoft Support, Edit permissions for a list, library, folder or item
- Microsoft Learn, Run a cloud flow on a schedule in Power Automate
- Microsoft Learn, In-depth analysis into Get items and Get files SharePoint actions
- Microsoft Learn, Workflow expression functions reference