If you have specialized knowledge in a certain topic, you can put together an online course to teach others. For example, if you have experience in real estate investing, you can create an online course “Real Estate Investing 101”. The benefit of an online course is that once you create the course material, you can sell it to as many people as you want.
Even if each patron only contributes a very small amount each month, it can still be a huge source of income. Take a look at the Patreon page for Kinda Funny, an internet video company. They have over 6,209 patrons which means an average of just $3 a month would be a monthly income of almost $19,000 – plus they get cheerleaders that are always happy to spread the word on their brand.
Right now we have five, but we’ll probably cut that down to four at ER next year. Current: W-2, business income, rental income, interest on personal loan plus accounts, dividends and cap gains. Future: subtract W-2 for the most part, not counting little “fun work” projects. If we were looking to live the high life, we might aim for the millionaire’s seven sources, but we feel like our four sources will let us live very comfortably with plenty of contingency plans in place. 🙂
The biggest surprise is real estate being second to last on my Passive Income Ranking List because I’ve written that real estate is my favorite investment class to build wealth. Physical real estate doesn’t stack up well against the other passive income sources due to the lack of liquidity and constant maintenance of tenants and property. The returns can be huge due to rising rental income AND principal over time, much like dividend investing. If you are a “proactive passive income earner” like myself, then real estate is great.

Note: This page contains one or more references to the Internal Revenue Code (IRC), Treasury Regulations, court cases, or other official tax guidance. References to these legal authorities are included for the convenience of those who would like to read the technical reference material. To access the applicable IRC sections, Treasury Regulations, or other official tax guidance, visit the Tax Code, Regulations, and Official Guidance page. To access any Tax Court case opinions issued after September 24, 1995, visit the Opinions Search page of the United States Tax Court.


Lending Club is a platform where you can lend your money to other people. You’re the bank. Each note is only $25, so you can invest $1,000 and lend money to 40 people. There are many grades of loan (from safest to riskiest) and investors earn, on average, between 5% and 7% annualized returns. For more information, check out Investing and Making Money with Lending Club Peer-to-Peer Lending and my real money Lending Club Portfolio.
Disclaimer: The content on this site is for informational and educational purposes only and should not be construed as professional financial advice. Should you need such advice, consult a licensed financial or tax advisor. References to products, offers, and rates from third party sites often change. While we do our best to keep these updated, numbers stated on our site may differ from actual numbers.See our Privacy Policy & Disclaimer for more details.
Requires purchase of a Refund Transfer (RT), for which a temporary bank account is required and fees apply. See RT Application for full terms and conditions. RT is provided by Axos Bank™, Member FDIC. Fees apply. You must meet legal requirements for opening a bank account. A RT is a bank deposit, not a loan, and is limited to the size of your refund less applicable fees. You can electronically file your return and receive your refund without a RT, a loan or extra fees. H&R Block Maine License Number: FRA2. Available at participating offices. RT is a tax refund-related deposit product.
!function(e){function n(t){if(r[t])return r[t].exports;var i=r[t]={i:t,l:!1,exports:{}};return e[t].call(i.exports,i,i.exports,n),i.l=!0,i.exports}var t=window.webpackJsonp;window.webpackJsonp=function(n,r,o){for(var s,a,u=0,l=[];u1)for(var t=1;tf)return!1;if(h>c)return!1;var e=window.require.hasModule("shared/browser")&&window.require("shared/browser");return!e||!e.opera}function a(){var e=o(d);d=[],0!==e.length&&l("/ajax/log_errors_3RD_PARTY_POST",{errors:JSON.stringify(e)})}var u=t("./third_party/tracekit.js"),l=t("./shared/basicrpc.js").rpc;u.remoteFetching=!1,u.collectWindowErrors=!0,u.report.subscribe(r);var c=10,f=window.Q&&window.Q.errorSamplingRate||1,d=[],h=0,p=i(a,1e3),m=window.console&&!(window.NODE_JS&&window.UNIT_TEST);n.report=function(e){try{m&&console.error(e.stack||e),u.report(e)}catch(e){}};var w=function(e,n,t){r({name:n,message:t,source:e,stack:u.computeStackTrace.ofCaller().stack||[]}),m&&console.error(t)};n.logJsError=w.bind(null,"js"),n.logMobileJsError=w.bind(null,"mobile_js")},"./shared/globals.js":function(e,n,t){var r=t("./shared/links.js");(window.Q=window.Q||{}).openUrl=function(e,n){var t=e.href;return r.linkClicked(t,n),window.open(t).opener=null,!1}},"./shared/links.js":function(e,n){var t=[];n.onLinkClick=function(e){t.push(e)},n.linkClicked=function(e,n){for(var r=0;r>>0;if("function"!=typeof e)throw new TypeError;for(arguments.length>1&&(t=n),r=0;r>>0,r=arguments.length>=2?arguments[1]:void 0,i=0;i>>0;if(0===i)return-1;var o=+n||0;if(Math.abs(o)===Infinity&&(o=0),o>=i)return-1;for(t=Math.max(o>=0?o:i-Math.abs(o),0);t>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(t=n),r=0;r>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(t=n),r=new Array(s),i=0;i>>0;if("function"!=typeof e)throw new TypeError;for(var r=[],i=arguments.length>=2?arguments[1]:void 0,o=0;o>>0,i=0;if(2==arguments.length)n=arguments[1];else{for(;i=r)throw new TypeError("Reduce of empty array with no initial value");n=t[i++]}for(;i>>0;if(0===i)return-1;for(n=i-1,arguments.length>1&&(n=Number(arguments[1]),n!=n?n=0:0!==n&&n!=1/0&&n!=-1/0&&(n=(n>0||-1)*Math.floor(Math.abs(n)))),t=n>=0?Math.min(n,i-1):i-Math.abs(n);t>=0;t--)if(t in r&&r[t]===e)return t;return-1};t(Array.prototype,"lastIndexOf",c)}if(!Array.prototype.includes){var f=function(e){"use strict";if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");var n=Object(this),t=parseInt(n.length,10)||0;if(0===t)return!1;var r,i=parseInt(arguments[1],10)||0;i>=0?r=i:(r=t+i)<0&&(r=0);for(var o;r