Unified Integration Architecture
Connecting All Systems. One Intelligence Layer.
Enterprise platforms converging through a unified cloud pipeline into role-specific operational dashboards — culminating in one executive intelligence center.
Members Only
Log in to view the Business Systems Architecture diagram.
Create Your Account
Register, confirm your email, then come back to view the diagram.
System Connectivity
All Your Systems. Fully Connected.
We integrates with the platforms that run your business — no replacements, no disruption. Hover any system to explore sample outputs.
Overall Performance Summary
All systems · Cross-portfolio intelligence · Real-time
Q2 2025
7 Systems Live
// ItsOkay.Core.PortfolioAggregator.cs
public class PortfolioAggregator
{
private readonly IServiceBus _bus;
public async Task<PortfolioSummary>
AggregateAllAsync()
{
// Parallel fetch across all 7 systems
var (fin, prop, con, mkt,
iot, erp, ext) =
await (_bus.FetchAsync("financials"),
_bus.FetchAsync("property"),
_bus.FetchAsync("construction"),
_bus.FetchAsync("marketing"),
_bus.FetchAsync("iot"),
_bus.FetchAsync("erp"),
_bus.FetchAsync("external"));
return new PortfolioSummary
{
TotalNoi = erp.Noi,
Occupancy = prop.OccupancyRate,
BudgetHealth = con.CostVariancePct,
LeadVelocity = mkt.AvgDaysToLease,
DevicesOnline = iot.DevicesOnlinePct,
RentPremium = ext.RentPremiumVsMarket,
Timestamp = DateTimeOffset.UtcNow
};
}
}
Total Portfolio NOI
$4.8M
↑ 11.2% YOY
Avg Occupancy
94.6%
↑ 1.4% vs Q1
Portfolio Budget
$142M
-2.1% variance
Leasing Velocity
12.4d
↓ 3.1 days faster
IoT Devices Online
99.2%
↑ 1,847 units
Rent Premium vs Mkt
+$142
↑ $18 vs Q3
System Health Status
Live
| System | Status | Last Sync | Records |
|---|---|---|---|
| Construction · Procore | Live | 47s ago | 12 projects |
| Property · Yardi | Live | 1m ago | 3,240 units |
| Marketing · Funnel | Live | 2m ago | 214 leads |
| IoT · Loxone | Live | 8s ago | 1,847 devices |
| Finance · JD Edwards | Live | 5m ago | GL synced |
| Intel · Zillow / Ads | Polling | 12m ago | 8 markets |
Monthly NOI Trend
6-Month
Construction Intelligence · Procore
Active projects · Real-time cost tracking · Schedule risk
Q2 2025
API Connected
// ItsOkay.Procore.Integration.cs
using System.Net.Http;
using Newtonsoft.Json;
public class ProcoreClient
{
private readonly HttpClient _http;
private const string BASE =
"https://api.procore.com/rest/v1.0";
public async Task<ProjectKPI>
GetConstructionKPIs(int companyId)
{
// Fetch active projects
var res = await _http.GetAsync(
$"{BASE}/projects?company_id=
{companyId}");
var json = await res.Content
.ReadAsStringAsync();
var projects = JsonConvert
.DeserializeObject<List<Project>>(
json);
// Extract KPIs
return new ProjectKPI
{
TotalBudget = projects
.Sum(p => p.budget_amount),
ScheduleAdherence = CalcAdherence(
projects),
OpenRfis = projects
.Sum(p => p.open_rfis),
OpenPunchItems = projects
.Sum(p => p.punch_items),
CostVariance = CalcVariance(
projects),
SafetyIncidents = projects
.Sum(p => p.incidents_ytd)
};
}
}
Total Portfolio Budget
$142M
↑ $18.4M YOY
Schedule Adherence
94.2%
↑ 6.1% vs target
Active Projects
12
↑ 3 new launches
Open RFIs
38
↓ 14 resolved today
Cost Variance
-2.1%
↑ Under budget
Safety Incidents
0
↑ 47 days clear
Monthly Cost Burn vs Budget
6-Month
Project Phase Mix
Live
12
Foundation36%
Structure24%
Finishing17%
Planning23%
Property Operations · Yardi Voyager
Occupancy rates · Lease expirations · Work orders · Rent rolls — fully automated
Q2 2025
Yardi Live
// ItsOkay.Yardi.VoyagerConnector.cs
public class YardiConnector
{
private readonly ISoapClient _soap;
public async Task<PropertyBundle>
GetPropertyDataAsync(
DateOnly asOf)
{
// Occupancy + Lease + WorkOrders
var (occ, leases, wo, rents) =
await (
_soap.CallAsync("GetOccupancy",
new { AsOfDate = asOf }),
_soap.CallAsync("GetLeases",
new { ExpiringWithin = 90 }),
_soap.CallAsync("GetWorkOrders",
new { Status = "Open" }),
_soap.CallAsync("GetRentRoll",
new { AsOfDate = asOf })
);
return new PropertyBundle
{
OccupancyRate = occ.Rate,
ExpiringLeases = leases.Count,
OpenWorkOrders = wo.Count,
TotalRentRoll = rents.TotalRent
};
}
}
Portfolio Occupancy
94.6%
↑ 1.2% vs Q1
Monthly Rent Roll
$3.2M
↑ 4.8% YOY
Total Units
3,240
8 properties
Leases Expiring 90d
47
↑ 12 need renewal
Open Work Orders
18
3 urgent
Avg Rent / Unit
$987
↑ $42 vs Q1
Occupancy by Property
Live
Lease Expiry Pipeline
90-Day
| Property | Units | Expires | Status |
|---|---|---|---|
| Sunset Apts | 8 | Jun 30 | Outreach |
| Harbor Lofts | 14 | Jul 15 | At Risk |
| City Suites | 6 | Aug 1 | Renewed |
| Eastview | 11 | Aug 20 | Pending |
| Midtown | 8 | Aug 31 | New Lead |
Marketing & Leasing · Funnel Leasing
Ad performance · Pipeline velocity · Cost-per-lease · Conversion rates — real-time
Q2 2025
Funnel Live
// ItsOkay.Marketing.FunnelConnector.cs
public class FunnelLeasingService
{
public async Task<LeadPipeline>
GetPipelineAsync(Guid propertyId)
{
var leads = await _funnel
.Leads.ListAsync(
propertyId: propertyId,
status: LeadStatus.Active);
var adData = await _funnel
.Ads.GetAttributionAsync(
propertyId: propertyId,
period: Period.Last30Days);
return new LeadPipeline
{
TotalLeads = leads.Count,
CostPerLease = adData.TotalSpend
/ leads.Count(l =>
l.Status == LeadStatus.Leased),
ConversionRate = leads
.Count(l => l.TourCompleted)
/ (double)leads.Count * 100,
AvgDaysToLease = leads
.Where(l => l.LeasedDate.HasValue)
.Average(l =>
l.LeasedDate!.Value
.Subtract(l.CreatedAt).Days)
};
}
}
Active Leads
214
↑ 22% vs last mo.
Cost per Lease
$312
↓ 14% (savings)
Lead → Tour Rate
38%
↑ 4pp MoM
Tour → Lease Rate
62%
↑ 7pp MoM
Avg Days to Lease
12.4d
↓ 3.1 days faster
Ad Spend / Month
$24.8K
Stable budget
Lead Source Attribution
30-Day
214
Google Ads34%
ILS / Zillow24%
Organic16%
Referral14%
Other12%
Pipeline Velocity (Leads)
6-Month
Smart Home & IoT · Loxone
Resident experience · Device utilization · Energy efficiency · Smart-unit analytics
Q2 2025
Loxone Live
// ItsOkay.IoT.LoxoneConnector.cs
public class LoxoneService
{
public async IAsyncEnumerable<DeviceEvent>
StreamEventsAsync(
CancellationToken ct)
{
await foreach (var msg in
_ws.ReceiveAsync(ct))
{
var evt = JsonSerializer
.Deserialize<DeviceEvent>(msg);
if (evt?.Type is
"thermostat" or "lock" or
"energy" or "motion" or
"leak")
yield return evt;
}
}
public async Task<EnergyReport>
GetEnergyMetricsAsync()
{
var readings = await _http
.GetAsync("api/energy/summary");
return new EnergyReport
{
AvgKwhPerUnit = readings.AvgKwh,
PeakDemand = readings.Peak,
SavingsPct = readings
.CalcSavingsVsBaseline()
};
}
}
Devices Online
1,847
99.2% uptime
Energy Savings YOY
18.4%
↓ cost reduction
Avg kWh / Unit
4.2
↓ 0.8 vs last yr
Smart Thermostats
620
All units covered
Resident Satisfaction
4.7★
↑ 0.3 vs Q1
Leak Alerts (30d)
2
Both resolved
Device Type Breakdown
Live
1,847
Smart Locks34%
Thermostats33%
Leak Sensors13%
Other20%
Monthly Energy Trend (kWh/unit)
6-Month
Financial Command · Oracle JD Edwards
GL · AP/AR · Payroll · Asset financials — live NOI & cash flow reporting
Q2 2025
JDE Connected
// ItsOkay.Finance.JdeConnector.cs
public class JdeFinanceConnector
{
public async Task<FinancialBundle>
GetFinancialsAsync(
string businessUnit,
FiscalPeriod period)
{
// Parallel fetch: GL + AP + AR + Payroll
var (gl, ap, ar, pay) = await (
_orch.PostAsync<GlSummary>(
"GetGLSummary",
new { businessUnit, period }),
_orch.PostAsync<ApSummary>(
"GetAPSummary",
new { businessUnit, period }),
_orch.PostAsync<ArSummary>(
"GetARSummary",
new { businessUnit, period }),
_orch.PostAsync<PayrollSummary>(
"GetPayroll",
new { businessUnit, period })
);
return new FinancialBundle
{
Revenue = gl.Revenue,
OpEx = gl.Expenses,
Noi = gl.Revenue - gl.Expenses,
ApBalance = ap.Outstanding,
ArBalance = ar.Outstanding,
Payroll = pay.TotalCost
};
}
}
Revenue (MTD)
$2.1M
↑ 5% vs budget
Net NOI
$1.29M
↑ 6% vs budget
Operating Expenses
$810K
-4% over budget
AR Outstanding
$148K
18 open invoices
AP Payable
$94K
7 due this week
Payroll (Monthly)
$214K
Processed on-time
GL Account Summary
Period
| Account | Actual | Budget | Var% |
|---|---|---|---|
| Rental Revenue | $2.1M | $2.0M | +5% |
| OpEx Total | $810K | $780K | -4% |
| Maintenance | $112K | $100K | -12% |
| Management | $180K | $190K | +5% |
| NOI | $1.29M | $1.22M | +6% |
Monthly NOI vs Target
6-Month
Market Intelligence · Zillow · Google Ads
Benchmark rents · Market absorption · Ad attribution · Competitive positioning
Q2 2025
Zillow + Ads
// ItsOkay.Market.ExternalIntelligence.cs
public class ExternalIntelligenceService
{
public async Task<MarketBundle>
GetMarketDataAsync(
string submarket)
{
// CoStar benchmark rents
var costar = await _costar
.GetAsync(
$"/v2/markets/{submarket}"
+ "/vacancy-rent");
// Zillow rental estimates
var zillow = await _zillow
.GetRentalZestimatesAsync(
submarket);
// Google Ads performance
var ads = await _gads
.GetCampaignMetricsAsync(
_customerId,
DateRange.Last30Days);
return new MarketBundle
{
MedianMarketRent = costar.MedianRent,
ZillowEstimate = zillow.Avg,
RentPremium = _portfolio.AvgRent
- costar.MedianRent,
Roas = ads.CalcRoas(),
Impressions = ads.Impressions,
Conversions = ads.Conversions
};
}
}
Rent Premium vs Mkt
+$142
↑ $18 vs Q3
Market Vacancy Rate
6.8%
Our: 5.4%
Blended Ad ROAS
4.8×
↑ 0.6× MoM
Impressions (30d)
284K
↑ 31% MoM
Ad Conversions
312
↑ 18% MoM
Avg Market Rent
$2,210
Our avg: $2,352
Rent Benchmark by Submarket
Zillow + CoStar
| Submarket | Market Med. | Our Avg | Premium |
|---|---|---|---|
| Downtown Core | $2,340 | $2,480 | +$140 |
| Midtown | $2,100 | $2,244 | +$144 |
| Eastside | $1,870 | $2,010 | +$140 |
| Harbor Dist. | $2,280 | $2,420 | +$140 |
| Suburban N. | $1,750 | $1,830 | +$80 |
Ad Spend vs Conversions
6-Month