ROI when using your primary residence as rental too

Calculating rough ROI on rentals is easy:

(Yearly rent - yearly expenses) / Downpayment, usually 20% = ROI %

For example, let’s say one buys $500,000 single family home and rent it out for $3000 per month. Since it is investment property, they will need to make at least 20% down payment. On $400,000 loan, their monthly payment would be about $2750 at 3.25% interest rate, with $10,000 in property taxes per year and $2000 yearly insurance.

($36,000 – $33,000) / $100,000 = 0.03 or 3% return.

Of course, this ignores vacancies and any maintenance expenses. On other hand, it also ignores equity that is building in the home and any appreciation. This is very rough formula. Ideally, you want at least 10% ROI based on this formula. Otherwise, better to invest in market.

What if you live there and rent out extra rooms. Let’s say this home has 4 bedrooms. You charge $750 per room. And since this is your primary residence, you can make only 5% down payment. And let’s assume your current monthly rent is $1200 for one bedroom apartment.

Also now you can claim homestead and your taxes will be lower but on other hand you will pay PMI of about 0.5-1% of loan amount. Assuming 0.75% PMI and $8000 in property taxes now.

The new modified formula would be:

(Yearly rent from extra rooms + yearly rent of current residence - expenses) / down payment

($27,000 + $14,400 – 38,400) / 25,000 = 0.12 or 12%. That is pretty decent ROI. Again it doesn’t include vacancies and other expenses but also doesn’t count any equity or appreciation of the home value.

Leetcode 92: Reverse Linked List II

Here is my leetcode solution in JavaScript:

 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 * = (next===undefined ? null : next)
 * }
 * @param {ListNode} head
 * @param {number} left
 * @param {number} right
 * @return {ListNode}
var reverseBetween = function(head, left, right) {
    let currPos = 1;
    let currNode = head;
    let startNode = head;
    let endNode = null;
    while(currPos < left) {
        startNode = currNode;
        currNode =;
    let newList = null;
    let tail = currNode;
    while (currPos <= right) {
        const next =; = newList;
        newList = currNode;
        currNode = next;
    } = newList; = currNode;
    if (left > 1) {
        return head;    
    return newList;

Link to problem.

Stats: Year over Year Sales from 2019 to September 2021

The first graph shows number of actual sales in Allen, Carrollton, Frisco, Little Elm, McKinney, Plano, Prosper, Richardson, and The Colony. These are the areas that I focus on. It seems number of sales is not really affected by pandemic, so why a big price jump.

Second graph shows total inventory available. So in 2019, inventory was almost triple the number of closed sales. Good news for buyers is that inventory seems to be increasing slowly now.

Price Trends in Frisco ISD

One of popular request I get is for 4+ bedroom house in Frisco ISD. Here you can see price is trending up and can expect to buy or sell your home for about $700K:

Second question is about how much inventory is there. And how long is taking for home to go under contract.