In reality, there may not be much of a difference. in reality a non-profit or for-profit enterprise will need to generate revenue and will have expenses.
Some social enterprises (like the "B corps") then say they will give back all the "profits" as a social enterprise.
All good stuff.
In the real world it's about the structure of the business (from the IRS standpoint if you are in the USA). Fun fact, the NFL is considered a non-profit organization in the USA.
Take a look at a Ted Talk (any really) and you will see people passionate about tons of different social causes. One that is always inspiring for me is Simon Sinek (start with Why) about being able to frame the real reason for doing what you are doing....
- Michael Vizdos
Non-profit is incorporated as a 501c(3) and must be approved by the government for the tax advantages to take effect. A social business or perhaps a Benefit Corporation is a new corporate structure available in certain states that allow the for profit corporation to put the "Social Mission" of the company ahead of the "Shareholder Profits".
Non-profit doesn't aim to make any money, they usually are started for a cause and live on donations. Because of that, they may be regulated under charity and have different requirements in some countries. Think NGOs and some charities in your area.
Social enterprise on the other hand, can also be started for a cause, run like a "normal" business, using business models and strategies to get to financial or operational sustainability. Typically, their primary goal is to make a difference in their cause, thus creating a positive impact to the society. They aim to make profit so as to achieve sustainability, but the goal of social impact is higher ranked than profit.
In my humble opinion, all enterprises should be social because all of us should aim to create positive impact to the society.