Every internal dashboard, what it does, what it pulls from, and the logic underneath. Read this first if you are new to the operation.
Each entry lists: what it shows, who reads it, source (where the data is pulled from), logic (the meaningful joins / filters / business rules), and cadence. Reports without a link are still planned. The process map shows where each report fits in the lifecycle.
Where every lead is in the acquisition pipeline — inquiry → tour → application → payment → lease.
Audience
PM, owner. Daily check during the leasing season.
Source
portal-postgres: lead_inbound, applicant, applicant_state_transitions, lease. Dataverse is read-only here.
Logic
Stage = latest state in applicant_state_transitions. Activities (tour, call) are joined from lead_inbound rows where kind in ('tour','callback','inquiry'). Site filter via site_id.
Period revenue with proper deferred-vs-earned treatment, deposits liability, refunds netted. The single number for "how much did we earn this period".
Audience
Owner monthly close; PM mid-month for pacing.
Source
Dataverse salesinvoice + salesinvoicedetail, joined to product → GL account map (table #159), joined to lease move-in/out dates.
Logic
Period bearing — rent earned ratably between billing-cycle-start and the earlier of cycle-end and move-out. Deposits stay in liability until SODA finalization, then split refund/forfeit. Excludes returned-deposit lines from revenue (the bug fix in #63).
Cadence
Live with period presets (All / YTD / MTD / QTD / Last month).
All open security deposit liability — by lease, by tenant, by site.
Audience
Owner (liability reconciliation); PM ahead of move-outs.
Source
Dataverse salesinvoicedetail filtered to deposit product, less applied refunds/forfeits.
Logic
Deposit posted − deposit released (refund line or forfeit-to-revenue line). Tied to lease, surfaced at the lease level even though the invoice may have been issued pre-lease.
All inbound to the four shared PM mailboxes, categorized — payments, leads, support, internal — plus LiveWire check images and AuthNet receipts.
Audience
PM (find a specific email); accountant (find LiveWire checks); owner (see staffing load).
Source
Microsoft Graph Mail.Read scoped to the four mailboxes via Application Access Policy.
Logic
Heuristic categorizer (sender + subject + body keywords). LiveWire and AuthNet are parsed for payer + amount and surfaced as unmatched-payments CSV for reconciliation.