One place for every dashboard. Categorized by domain, sliceable by site.
analytics-01 — it runs the report generators and pushes artifacts to this repo. (Crosbyprodinternal is 20.84.50.106; the grprod tunnel serves the legacy Flask apps + Abhi's cron emails from there.)
One-page form. Submit creates the Dataverse lead in the right tenant. Bypasses the heavyweight CRM UI.
One-page form. Creates or updates the Dataverse contact and de-dupes by phone.
Two-click activity capture so the CRM activity log actually reflects what happens on the front desk.
One-page form that kicks off the refunds workflow with SODA inputs. No more reverse-invoice surgery in CRM.
Per-inbox volume across PM + AuthNet salesreceipts + LiveWire check notifications. Categorized + flagged as needs-action vs no-action so the dashboard surfaces the real triage list (unmatched payments, external inquiries) and de-emphasizes automated digests.
Outbound applicant reminders + inbound replies. Failed-delivery + opt-out rate.
Inquire → tour → application → screening → approval → move-in. Conversion per stage, time-in-stage, drop-off by source: Facebook / Google / drive-by / referral / sign.
Per source: call volume, applications submitted, approval rate, weekly rent activated, effective CAC. Joins voice-report unknown-callers + CRM signup-source.
Plaid identity-verification + income + bank-income + payroll-income results per applicant. Currently on Crosbyprodinternal: /crosbyplaidresults (Flask, port 8080).
Weekly rent recognition schedule, deferred revenue, period close. Currently on Crosbyprodinternal: /revrec port 5009 + dashboard at port 6231; cron at /var/www/cronjobs/revrec every 30 min.
Active leases × rent × occupancy state × discount class. Will surface three columns: base product rent, time-based move-in discount, customer-based discount. Currently /var/www/cronjobs/rentroll/billing_validation_job.py on Crosbyprodinternal (06:00 UTC daily, xlsx email). Port + billing-end-vs-move-out logic fix per #154.
Onsite kiosk transactions via the ACH-encrypted JPMC pipeline. Per-kiosk volume, decline reasons, reconciliation status. Today: 4 Azure Functions + /ckreports FastAPI port 8000.
Active deposits held per lease — security, pet, FOB, electrical. Sourced from CRM gr_unitleases. SODA pre-stage flag is the next layer.
Open refunds, age, dollars; health flags for missing deposits/damages/invoice-status fields. Sourced from CRM gr_invoicerefund. Proper state machine + workflow comes with #48 / #113 — this view surfaces the failure modes the constraint-driven workflow will prevent.
Per pending move-out: deposit on file, open invoice total including pending Wild Energy power-bill close, cleaning + damage line items, projected refund-check amount. Drives the 30-day cycle from move-out to refund check.
Status of the automated job that queries Wild Energy after invoice-period close and generates the resident power invoice — feeds SODA. Surfaces backlog and stuck residents.
Success / decline rates, ACH return reasons, recurring Customer Profile skipped charges, retry success.
Future / 0–30 / 31–60 / 61–90 / 90+ buckets, per lease. Sourced from CRM invoicedetails.gr_balanceowe. Per ADR-0019 — customer-facing AR aging sources from CRM, not BC.
BC-posted Zelle GL activity per period (Crosby GL 10470 in GRFIS1, Willis GL 10530 in GRFIS2). The reconciliation view per ADR-0019. CRM-side column pending payment-method field discovery.
Closed leases with balance + invoices without lease + monthly short-stay holding balance. Per ADR-0023, every gap auto-substantiates with its evidence. Each row is a PM action.
Internal financials, inter-company, vendor activity. Stays in Business Central per the customer-vs-vendor split.
Live unit grid per site: occupied / vacant-ready / vacant-not-ready / maintenance-hold. Days-vacant, churn signals.
Open work-orders by property, age, SLA breach, vendor performance, parts pipeline. Currently on the finrep LXC at maintenance.gatedrentals.com — folds into the platform.
WiFi PPSK provisioned + Assa Abloy locks + SODA generated. Time-to-ready after move-out.
Structured PM checklist that feeds the SODA workflow's damage line items. Per-room damage classification using the canonical catalog's deposit-forfeiture products. Photos + signatures.
Routine + annual inspections, pass / fail rate, follow-up actions outstanding.
Cross-domain summary: occupancy %, weekly rent activated, calls answered, applications submitted, arrears, work-orders open. Currently /var/www/cronjobs/dailykpi/kpi.py on Crosbyprodinternal (06:00 UTC daily, email). Port + dashboard pending (#96 + #155).
Sanitized status view per applicant: in-flight, awaiting docs, scoring complete, blocked. No PII in the dashboard. Fires from AuthNet webhook (#74). Hits Kredifi API — entity/storage shape TBD.
Flask app aggregating Crosby ops views (port 7000 on Crosbyprodinternal, served via /crosby* on grprod tunnel). Specific tabs to inventory and re-implement here.
Source: github.com/Gated-Rentals/gr-reports. Generators live in gatedrentals-platform under tools/*. Refresh cadence: cron on analytics-01 pushes fresh artifacts directly to this repo; CF Pages auto-deploys.