Profit per Pillow.

Financial Analytics SaaS Platform for Real Estate

“PLANEKS was an organized, responsible, and proactive team.”

Tanya Zorov, CEO at Profit per Pillow

Property owners managing room-by-room rentals face a problem that can’t be handled by most standard analytics tools. Existing co-living platforms generate valuable operational and financial data, but it is often distributed across multiple exports and reporting views. For property owners, consolidating billing, collections, occupancy, and earnings metrics into a clear set of KPIs can become a time-consuming manual process.

PLANEKS developed Profit Per Pillow: a Python-based financial analytics SaaS platform that extracts and consolidates this data together, runs the calculations, and presents property owners with dashboards they can put to use.

Country:

USA

Timeline:

Ongoing since February 2026

Team size:

2 developers

Engagement:

profit per pillow interface

Technologies

AWS Amazons logo png

AWS

celery logo image

Celery

postgre database logo png

PostgreSQL

Docker logo small png transparent

Docker

profit per pillow data

Project Overview

This Real Estate software development case study covers a Python-based SaaS platform built for real estate investors to track room- and property-level performance. PLANEKS took over from an AI-generated UI prototype and built the full backend: Django REST Framework, PostgreSQL, Celery task queue, Docker-based deployment on AWS EC2, and integrations with QuickBooks, Stripe, Google Gemini, and an external market data source.

The outcome of our partnership is a multi-dashboard web application that processes PadSplit source data: accounting data, uploaded expense files, and zip-code-level market benchmarks, then surfaces them as property performance reports, occupancy rates, revenue breakdowns, and profitability metrics.

About the Client

Profit Per Pillow operates in the US rent-by-room market. The target users are property owners and operators who list individual rooms on PadSplit, a co-living platform that matches landlords with vetted members. These owners may manage dozens of rooms across multiple properties, but their visibility into performance is limited by the platform’s lack of embedded analytics.

The client came in with domain knowledge and a precise, comprehensively described business idea, validated through a Lovable-generated prototype. It demonstrated the concept but essentially required a technical partner to implement the backend, business logic, database structure, and integrations necessary for a production platform.

tanya zorov ceo at profit per pillow

Tanya Zorov

Founder & The Profit Per Pillow Engineering Team

After more than 20 years of leading data analytics and building business intelligence dashboards in the financial sector, Tanya Zorov began investing in coliving properties in Jacksonville, Florida.

How it works

1

Import and Structure Property Data

A property owner signs up through Stripe Checkout and gets immediate access after a successful payment. There is no manual account creation. Once inside, the user downloads four CSV reports from PadSplit and uploads them to the platform. The system parses each file, matches records to properties and rooms, resolves edge cases like mid-month member changes and vacant rooms, and stores structured data in PostgreSQL.
2

Capture and Process Expenses

Expense data comes from two paths. Users who employ QuickBooks Connect via OAuth2 get automatic monthly expense syncing. Those who don't use QuickBooks upload bank statements, spreadsheets, or invoices, and a Google Gemini-powered intake wizard extracts the expense line items, asks clarifying questions where property assignments are ambiguous, shows a preview, and writes the finalized records to the database.
3

Allocate Costs and Calculate Profitability

The platform then allocates shared expenses across properties based on each property's revenue for that month, calculates profitability metrics at room, property, and portfolio level, and pulls daily market benchmark data covering 1,500+US zip codes to give owners a local pricing and occupancy reference.
4

Explore Insights and Ask Questions

The React frontend displays the results across four dashboards: Portfolio Overview, Property P&L, Forecasting, and Market Analysis. An AI-powered chat assistant, built on the OpenAI API, answers investment questions using live portfolio data from the database.

Use cases

The platform addresses several distinct operational problems that property owners on PadSplit run into without a dedicated analytics tool.

Property Portfolio Profitability Tracking

A real estate investor managing properties across multiple cities has no clean way to compare performance without manually pulling reports and cross-referencing spreadsheets. Profit Per Pillow gives portfolio-level visibility in one place.
After uploading one month of PadSplit files, the platform calculates revenue, expenses, occupancy, and net profitability per property. Owners can see which properties are performing and which are underperforming, without designing their own spreadsheet models. This is the core use case in real estate SaaS software development: replacing manual aggregation with structured reporting.

Room-Level Performance Analysis

Property owners using PadSplit need visibility into individual rooms, since performance varies room by room within the same property. A single property can have rooms collecting full rent, rooms with a gap between what's billed and what's actually collected, and rooms sitting vacant. Understanding performance at this level across a portfolio is operationally critical.
The platform calculates per-room income, the difference between collected and billed amounts, occupancy status, and outstanding debt. Owners can identify underperforming rooms at a glance instead of cross-referencing multiple CSV files from the platform.

Expense Management and Allocation

A property owner with 60+ rooms across 12 properties can't easily track which expenses belong to which properties, especially when a single expense covers multiple locations. Splitting costs equally would produce inaccurate profitability numbers.
Profit Per Pillow handles three expense flows: automatic QuickBooks sync, manual file upload with AI-assisted extraction via Google Gemini, and revenue-proportional allocation across multi-property expense classes. The allocation engine queries each property's earnings for the relevant month and distributes the expense accordingly. The finalized figures feed directly into per-property P&L reporting. This is a repeatable approach to expense management that applies across any real estate SaaS software development project dealing with shared cost structures.

Market Benchmarking

Pricing decisions in the co-living market depend on local supply and demand. Without market context, owners price rooms based on gut feel.
The platform pulls daily market benchmark data by zip code, including active and upcoming listings, shared- and private-room pricing, occupancy rates, and days to booking, across 1,494 US zip codes. Owners can compare their room rates and occupancy against local market conditions and adjust pricing to stay competitive.

Challenges & Solutions

Six core technical problems defined how the real estate solution was implemented, as this SaaS dashboard case study shows.

Challenge

Solution

Turning a Prototype into a Production Product. The client had a Lovable-generated UI prototype. It demonstrated the concept but lacked a backend, data processing, authentication, and deployment infrastructure.

The Django backend was developed from scratch, connected to the existing Lovable frontend via a Git submodule, and created a shared deployment pipeline. The Lovable visual editor pointed to the production backend during UI iteration, while backend logic was developed and tested locally. Both merged cleanly for production deploys. This workflow let the client refine the UX against real data without waiting for backend releases, and it let the development team work on business logic without blocking on frontend changes.

Parsing Fragmented Rental Platform Data. PadSplit exports raw transactional CSV files with no built-in business analytics. The files contain dozens of edge cases: mid-month member move-ins and move-outs, partial billing periods, vacant rooms with stale data, test listings, rooms changing members, and multiple transaction reasons per room.

We have built a custom parsing and aggregation engine, with the core logic implemented as SQL functions in PostgreSQL. The engine handles all known edge cases and returns accurate per-room statistics regardless of inconsistencies in the source files. The aggregation logic was later encapsulated behind an API, making the same pipeline reusable for any PadSplit-based client. Onboarding a new property owner requires no changes to the parsing or calculation layer.

Room-Level Financial Logic with Many Edge Cases. Calculating accurate room-level KPIs requires handling rental-specific situations that don't appear in typical financial software: rooms billed for partial months, rooms switching members mid-period, and revenue summaries that don't align cleanly with billed or collected amounts.

The aggregation layer in PostgreSQL handles all of these cases. The output provides owners with accurate room-level figures for income, debt, occupancy, and profitability, despite inconsistencies in the source data. This case study on data visualization shows that the harder problem here was data correctness, with charting coming second.

Expense Data from Different Sources. Some users manage expenses in QuickBooks. Others use bank statements, spreadsheets, or invoices with no consistent structure. A platform that only supports one workflow would exclude a large share of the target users.

PLANEKS implemented both paths. The QuickBooks integration handles the full OAuth2 flow, including token refresh every 30 minutes and re-authentication every 100 days when the refresh token expires. For users not on QuickBooks, the Google Gemini intake wizard detects the file format, extracts expense line items, resolves property-mapping ambiguities interactively, and writes finalized records to the database. Both paths produce identical output for the downstream allocation engine.

Fair Expense Allocation Across Properties. A QuickBooks expense class such as "Maintenance Zone A" may cover three properties with varying revenue levels. Splitting costs equally would overstate expenses for low-revenue properties and understate them for high-revenue ones.

The revenue-proportional allocation engine queries the earnings data for the relevant month and distributes each shared expense based on each property's share of total revenue. The allocation recalculates automatically when property mappings change. Profitability figures by property reflect actual cost distribution, not approximations.

SaaS Access Control and Subscription Billing. The platform needed to operate as a commercial SaaS product with gated access for paying subscribers and no free tier.

Our experts integrated Stripe Checkout. After a successful payment, a PendingSignup record automatically converts to a live user account. A subscription middleware layer gates all API endpoints, returning HTTP 402 for canceled, unpaid, or expired accounts. Subscription state updates through Stripe webhooks.

Build a Custom Python Analytics Platform with PLANEKS

PLANEKS implements Python-based SaaS platforms, financial dashboards, and data-heavy web applications for startups and growing businesses. This SaaS dashboard case study represents what that looks like in practice – if you have rental or financial data that your current tools can’t parse, aggregate, or visualize at the level your business needs, schedule a call to walk through the specific requirements and get a concrete technical assessment.

Results

From AI-generated prototype to production SaaS in 2.5 months

Built from a full-time engagement, with development continuing into phase two.

AI-generated prototype

Production SaaS Platform

Reduced manual work

A property owner managing 60+ rooms across 12 properties eliminated hours of manual monthly spreadsheet work. AI expense intake eliminates manual data entry, regardless of the bookkeeping tool the owner uses.

1,500+ zip codes covered

Market benchmarks covering pricing, occupancy rates, and days to booking are available for 1,500+ US zip codes and are updated daily.

100% adoption rate

Every registered user is a paying subscriber. Stripe gates access with no free tier, so account creation and subscription activation are the same step.

Under 200ms API response time

Django REST Framework endpoints on a properly provisioned EC2 instance return read-heavy dashboard queries in under 200ms.

Faster frontend delivery

The Lovable Git submodule workflow lets one developer ship full-stack features with UI in a single iteration cycle, reducing frontend scaffolding time compared to a traditional setup.

99.9% uptime

The Docker + Caddy + AWS EC2 stack has no single point of failure and has held to standard uptime expectations in production.

Testimonials

How our services bring about success

Need a hand? Contact us!

Reach out for the reliable IT services.

    We will add your info to our CRM for contacting you regarding your request. For more info please check our Privacy Policy.

    Or call us now!

    If you are looking for a tech partner with extensive tech and industry expertise, an impeccable reputation, and a large number of experienced engineers, choose the best Python web development company. Choose PLANEKS!