Tenant Billing (RUBS)¶
RUBS -- the Ratio Utility Billing System -- is the most common method for allocating master-metered utility costs to individual tenants in multifamily properties. MeterBase automates RUBS calculations and can push charges directly to your property management system.
What Is RUBS?¶
In many multifamily properties, utilities are master-metered: a single meter serves the entire building, and the property receives one bill. RUBS provides a fair, formulaic way to allocate that cost to individual units based on measurable factors like square footage or occupant count.
RUBS is not submetering. It does not measure actual unit-level consumption. Instead, it distributes costs proportionally using a chosen allocation method. This is legal in most U.S. states for master-metered properties, though regulations vary.
Allocation Methods¶
MeterBase supports four allocation methods. Choose the one that best fits your property and local regulations.
Square Footage¶
Allocates based on each unit's floor area relative to total occupied floor area.
$$\text{Unit Charge} = \text{Net Bill} \times \frac{\text{Unit Sqft}}{\text{Total Occupied Sqft}}$$
Best for: Properties where unit sizes vary significantly (e.g., mix of studios and 3-bedrooms). This is the most commonly used method.
Occupant Count¶
Allocates based on the number of occupants in each unit.
$$\text{Unit Charge} = \text{Net Bill} \times \frac{\text{Unit Occupants}}{\text{Total Occupants}}$$
Best for: Properties where units are similar in size but occupancy varies. Requires tracking occupant counts (available from lease data via PMS).
Bed/Bath Count¶
Allocates based on a weighted combination of bedrooms and bathrooms.
$$\text{Unit Weight} = \text{Bedrooms} + (0.5 \times \text{Bathrooms})$$
$$\text{Unit Charge} = \text{Net Bill} \times \frac{\text{Unit Weight}}{\text{Total Weight}}$$
Best for: Properties where bedroom/bathroom counts are a reasonable proxy for usage and occupancy data is unavailable.
Equal Split¶
Divides the net bill equally among all occupied units.
$$\text{Unit Charge} = \frac{\text{Net Bill}}{\text{Number of Occupied Units}}$$
Best for: Properties where all units are identical or near-identical in size and occupancy. Simplest method but least equitable for mixed-unit properties.
Choosing a Method
Square footage is the most defensible method in most jurisdictions because the data is objective and does not change. Occupant-based allocation is more equitable but requires accurate, up-to-date occupancy data.
Common Area Deduction¶
Most properties have common areas that consume utilities but should not be charged to tenants: lobbies, hallways, laundry rooms, pools, fitness centers, and management offices.
MeterBase supports two approaches:
| Approach | How It Works |
|---|---|
| Percentage deduction | Deduct a fixed percentage (e.g., 10%) from the total bill before allocation. This is the most common approach. |
| Fixed amount deduction | Deduct a specific dollar amount each month for common area usage. |
Industry Standard
Common area deductions typically range from 5% to 15% of the total bill for multifamily properties. Your property management company or local RUBS consultant can advise on the appropriate percentage.
Admin Fees¶
MeterBase supports applying an administrative fee to each tenant charge to cover the cost of the billing program:
| Fee Type | Description | Example |
|---|---|---|
| Flat fee | A fixed dollar amount added to each unit's charge | $3.00 per unit per month |
| Percentage fee | A percentage of the unit's allocated charge | 5% of allocated amount |
Admin Fee Regulations
Some states and municipalities restrict or prohibit RUBS admin fees. Check your local regulations before applying fees. MeterBase does not provide legal advice.
Vacancy Handling¶
When units are vacant, their share of the utility cost must go somewhere. MeterBase supports two approaches:
Owner Absorbs (Default)¶
Vacant units are excluded from the calculation. The property owner absorbs the cost that would have been allocated to vacant units. Only occupied units are charged.
Total occupied sqft: 40,000 sqft (out of 50,000 total)
Net bill: $4,500
Only occupied units share the $4,500
Owner absorbs the ~$900 that vacant units would have paid
Redistribute to Occupied Units¶
Vacant units are excluded, and their share is automatically redistributed across occupied units. This means occupied tenants pay slightly more when vacancies exist.
Redistribution Risks
Redistributing vacancy costs to occupied tenants can lead to significantly higher charges during periods of high vacancy. Some jurisdictions may not allow this approach. Use with caution.
Manual RUBS Flow¶
For properties without a PMS connection, use the manual workflow:
Step 1: Set Up Units¶
Enter your unit roster with the data needed for your chosen allocation method:
- Open the property detail page
- Go to Units tab
- Click Add Units or Import from CSV
- Enter unit number, sqft, bedrooms, bathrooms, occupancy status
curl -X POST https://api.meterbase.io/api/properties/1/units \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"units": [
{"unit_number": "101", "sqft": 800, "bedrooms": 1, "bathrooms": 1, "occupied": true},
{"unit_number": "102", "sqft": 1000, "bedrooms": 2, "bathrooms": 1, "occupied": true},
{"unit_number": "103", "sqft": 600, "bedrooms": 0, "bathrooms": 1, "occupied": true},
{"unit_number": "104", "sqft": 1000, "bedrooms": 2, "bathrooms": 2, "occupied": false}
]
}'
Step 2: Configure RUBS Settings¶
Set the allocation method, common area deduction, admin fee, and vacancy handling for the property:
curl -X PUT https://api.meterbase.io/api/properties/1/rubs-config \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"allocation_method": "sqft",
"common_area_deduction_type": "percentage",
"common_area_deduction_value": 10,
"admin_fee_type": "flat",
"admin_fee_value": 3.00,
"vacancy_handling": "owner_absorbs"
}'
Step 3: Calculate Charges¶
Select a bill and run the RUBS calculation:
- Go to Tenant Billing tab on the property page
- Select the bill to allocate
- Review the calculation preview (shows each unit's charge)
- Click Confirm Charges
Response:
{
"bill_id": 42,
"bill_total": 5000.00,
"common_area_deduction": 500.00,
"net_allocable": 4500.00,
"allocation_method": "sqft",
"charges": [
{"unit": "101", "sqft": 800, "allocated": 1500.00, "admin_fee": 3.00, "total": 1503.00},
{"unit": "102", "sqft": 1000, "allocated": 1875.00, "admin_fee": 3.00, "total": 1878.00},
{"unit": "103", "sqft": 600, "allocated": 1125.00, "admin_fee": 3.00, "total": 1128.00}
],
"total_charged": 4509.00,
"owner_absorbed": 491.00
}
Step 4: Export or Post¶
- Export CSV -- Download charges for manual posting to your accounting system
- Export PDF -- Generate tenant billing statements
- Post to PMS -- If connected via Propexo, push charges directly (see next section)
PMS-Powered Billing (calculate-from-pms)¶
For properties with a connected PMS, MeterBase offers a fully automated billing flow via the POST /billing/calculate-from-pms endpoint. This is the recommended approach for properties integrated with Yardi, RealPage, Entrata, or any other Propexo-supported PMS.
How It Works¶
- You provide: Property ID, billing config, billing period, total master-meter bill amount, and utility type.
- MeterBase automatically: Queries the connected PMS via Propexo for current tenant/unit data (sizes, occupancy, vacancy status).
- RUBS calculation runs using the billing config's allocation method with live PMS data.
- Results are returned with per-unit charges and stored in billing history.
- Optionally: Push calculated charges back to the PMS in one step.
API Example¶
curl -X POST https://app.meterbase.io/api/v1/billing/calculate-from-pms \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"property_id": "prop_abc123",
"billing_config_id": "bcfg_001",
"billing_period_start": "2026-03-01",
"billing_period_end": "2026-03-31",
"total_amount": 3247.85,
"utility_type": "electric"
}'
The response schema is identical to the manual RUBS calculation, but the units array is populated automatically from PMS data. No need to manually supply unit information.
Key Benefits¶
- No manual unit entry -- tenant data is pulled in real time from your PMS
- Always current -- occupancy changes, move-ins, and move-outs are reflected automatically
- End-to-end automation -- combine with charge posting for a fully hands-off billing cycle
- Audit trail -- every PMS-powered calculation is logged in billing history
Prerequisites¶
- Property must have an active Propexo integration (
propexo_syncsrecord) - A billing config must be set up for the property
- PMS must have current unit and lease data available
Error Handling¶
| Error | Cause | Resolution |
|---|---|---|
"No PMS integration configured" |
Property has no Propexo sync | Set up PMS integration first |
"Failed to fetch tenant data" |
PMS API unavailable | Check PMS connection; retry later |
"No occupied units found" |
PMS returned empty unit list | Verify unit data in your PMS |
PMS-Connected RUBS Flow (Legacy)¶
For properties connected to a PMS through Propexo, the manual step-by-step workflow is also available:
Step 1: Sync Units from PMS¶
Units, lease data, and occupancy are pulled automatically from your PMS:
curl -X POST https://api.meterbase.io/api/propexo/sync-units \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"property_id": 1}'
This populates the unit roster with current data from Yardi, RealPage, or whichever PMS you use.
Step 2: Calculate Charges¶
Same as the manual flow -- select a bill and run the RUBS calculation.
Step 3: Push Charges to PMS¶
Post the calculated charges back to the PMS:
curl -X POST https://api.meterbase.io/api/rubs/post-charges \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"property_id": 1,
"bill_id": 42,
"charge_date": "2026-04-01",
"charge_code": "UTIL",
"description": "March 2026 Utility Charge (RUBS)"
}'
Async Processing
Charge posting is processed asynchronously. MeterBase creates a job, posts each charge to the PMS via Propexo, and tracks the result. Check the job status via the UI or API. See the Propexo Integration Guide for details on the charge posting pipeline.
Billing History¶
MeterBase maintains a complete history of all RUBS calculations:
- Per-property history -- Every billing cycle with per-unit breakdowns
- Per-unit history -- Charge history for a specific unit over time
- Adjustment tracking -- Any manual adjustments or corrections are logged
- PMS posting status -- Whether charges were successfully posted to the PMS
Access billing history from the Tenant Billing tab on the property detail page, or via API:
Compliance Notes¶
RUBS Regulations Vary by State
RUBS legality, allowable methods, and fee restrictions vary significantly across states and municipalities. The following is general guidance, not legal advice.
Key Regulatory Considerations¶
| Topic | Details |
|---|---|
| State legality | RUBS is permitted in most U.S. states, but some (e.g., parts of California, New York City) have restrictions or require specific disclosures. |
| Lease language | The lease must include a RUBS provision for charges to be enforceable. Tenants must agree to the billing method before move-in. |
| Disclosure | Most states require that the allocation method, common area deduction, and admin fee be disclosed to tenants in writing. |
| Admin fee caps | Some jurisdictions cap the administrative fee that can be charged (e.g., $5/month or 10% of the allocated amount). |
| New tenant notice | Many states require advance notice (30-90 days) before implementing a RUBS program for existing tenants. |
| Profit prohibition | RUBS is intended for cost recovery, not profit. Total tenant charges should not exceed the utility bill plus reasonable admin costs. |
Best Practice
Always have your RUBS program reviewed by a local attorney familiar with landlord-tenant law in your jurisdiction. MeterBase provides the calculation engine, but compliance responsibility rests with the property operator.
States with Notable Restrictions¶
- California -- RUBS is permitted but requires specific lease language and disclosure. Some cities (e.g., Los Angeles, San Francisco) have additional requirements.
- New York -- NYC has strict rules around utility billing for rent-stabilized units. RUBS may not be permissible for all property types.
- Texas -- Generally permissive but requires 30 days' notice before starting a RUBS program.
- Oregon -- Requires written notice and specific disclosure of the allocation formula.
RUBS Configuration Reference¶
Full configuration options for the RUBS calculator:
| Parameter | Type | Options | Default |
|---|---|---|---|
allocation_method |
string | sqft, occupants, bed_bath, equal |
sqft |
common_area_deduction_type |
string | percentage, fixed, none |
percentage |
common_area_deduction_value |
number | 0-100 (%) or dollar amount | 10 |
admin_fee_type |
string | flat, percentage, none |
none |
admin_fee_value |
number | Dollar amount or percentage | 0 |
vacancy_handling |
string | owner_absorbs, redistribute |
owner_absorbs |
include_tax_in_allocation |
boolean | true, false |
true |
round_to_cents |
boolean | true, false |
true |