Private investment, inequality, and democracy

One of the things I have loved about thinking about new products is the alignment between creating value with the product and doing good for society. People buy what you’re selling because it’s making their lives better. The more you sell, the better you’re doing for society.

But in a very unequal society, there is substantial money to be made in serving the interests of the wealthiest segment of society. Here it’s possible for the virtuous link between investment in new products and social good to be broken.

Since new products shape our society so powerfully, and implicitly promote certain sets of values, can we really treat private investments into new products as a purely private matter? Or is the cycle of product innovation basically exogenous and we have to treat it as-is?

Product management is a dark art

At least according to Ty White.

My primary career objective is to conceive and commercialize new products.

So, post startup, I’m looking to work in product management. I love the cross functional role and the fact that you’re responsible for delivering (I like having the ball).

I’ve been speaking with as many product managers as possible. Through my conversations with people in that role I now believe the title is a pretty accurate statement.

It’s an art, not a science

The way that Angelist became a huge success and is reshaping the startup funding space is very different from, for example, how Tesla got its start. Angelist started out as an email-only product that served a community and kept adding features. It’s very easy to see how Angelist followed a “lean” model of product development. It’s very hard to see how Tesla followed any development model other than simply imagining, and then building, the future. Both are successes. So what’s the lesson?

To borrow a phrase from Warren Buffett, it seems that every product management team has their own “batting stance”.

It’s dark (as in obscure)

Product managers don’t have as much of a community – either online or offline – as other product development and corporate functions. From the outside, it’s harder to see exactly what a PM does. (And it definitely means different things in different companies).

Engineers have Github, designers have Behance and Dribbble – what do PMs have to show off new product concepts? If you know the answer, please post it as a response to this Quora question.

I’ll note: Quirky is pretty cool for physical products. But it’s less about showcasing your skill than it is about actually developing a product with a community input. And at the risk of entering a meta-cycle, Quirky’s main goal is to upend the product development cycle at large consumer brands like Proctor & Gamble.

Help me (and others)

Even arts can have well-understood processes and paradigms. In software development, some programmers might use Java and take an object-oriented approach while others might use Clojure and use a functional approach, or use Go and write procedural code. Between those three, and others, there’s no “right” or “wrong” but there are paradigms that other developers understand. Although I don’t know design nearly as well, I’m sure there are similar paradigms that define different approaches.

Amazon, for instance, has a fairly standard PM approach outlined here. This seems to be a great process. Is it an instance of a particular PM paradigm? If so, what are the other paradigms that PMs understand?

Shutting Down Building Hero

Or, the difference between Solar and Energy Efficiency Business Models

As sustainability buffs, it’s been hard not to notice the success of new solar business models in the US. Numerous large companies, like SolarCity, SunRun, SunEdison, Sungevity, Clean Power Finance – and others – have been formed to deliver solar energy in innovative ways. Third party financing is a central component, and has been huge to solar’s success in the US. In 2012, over 75% of California’s new solar systems were leased as opposed to owned outright [1].

We thought of this business model as Solar-as-a-Service; not only is there third-party financing, but maintenance and equipment replacement are also transferred from the homeowner to the solar distributor. It’s a powerful model because it “transforms a complex investment into a money-saving service” [1]. Boom. That’s an easy decision to make.

Our premise for Building Hero was that Energy Efficiency as a Service (EE-aaS) could be an even bigger opportunity. It was an easy idea to articulate: “SolarCity for Energy Efficiency”. As energy efficiency nerds and idea guys, we loved the concept and viewed it as a “no brainer” – no money down and energy savings from Day 1? How could customers possibly say no? All of our energy efficiency nerd friends agreed that it was an awesome idea and we were off to the races.

Predictably, with an approach like that, most of our target customers did in fact say no. Although we had some minor success with the model, we never attained product-market fit with our approach. Unfortunately, the reasons that Solar-aaS succeeds didn’t hold true as we dug deeper into the EE-aaS model.

We learned a ton of lessons along the way that are particular to the difficult to solve problem of EE-aaS that we wanted to share as future entrepreneurs approach this tough problem.

Want to chat? We’d be happy to. Feel free to email us geoffplewis [at] gmail or thomas [dot] vladeck [at] gmail

Inside v. Outside

The most important operational difference between Solar and EE that we encountered is what we dub “the inside v. outside problem”. Solar devices are “standalone” – not only are they on the outside of the building, but they are entirely new systems that are added to the building. They are not replacing anything. They are also invisible from the inside (where decision makers spend their day).

Considering adding something new is a different type of decision than considering replacing something you have with something different. Not only is the customer considering what they are getting, but they also must consider (and often dwell on) what they are losing. Making a core change to the aesthetic or functioning of the space is a more difficult decision to make, and that was a difficult barrier for us to overcome.

For many of our customers, the idea of having work done inside their space, no matter the benefits, immediately put a stop to the whole process.

Relative Advantage of Financing

Many energy efficiency investments produce better returns with less required financial engineering to make sense. So it follows that they should be better investments and even more financeable – right?

The mistake here is that – at least with LED lighting – financing has a lesser relative advantage over purchasing cf. solar. Solar investments have two features that make financing very valuable:

  • High capital cost relative to the assets of the decision maker

  • Complicated or inaccessible incentives that are required for the investment to make sense – tax credits chief among them

For LED lighting, the capital costs relative to the assets of the decision-maker are smaller. In addition, in the case of LED lighting, the investment can be done in stages, lowering the capital burden at any given time (something our would-be customers often proposed doing – and many have done).  Second, incentives are often not required for the investment to make sense, and they are usually made available as lump-sum cash rebates as opposed to tax credits.

The result is that the delta between investments in LED lighting (and we think this is a problem general to the energy efficiency space) that make sense without financing, and those that make sense only with financing, is much smaller than it is in solar.

Note that we are not mentioning the problems with energy efficiency investments from the perspective of the financier, namely the “negative cash flow” problem (returns come from money not spent) and the suitability of the physical investment as collateral. These have been discussed at length elsewhere, and frankly were not a factor in the success of our business.

Residential v. Commercial

Energy efficiency investments, by definition, only address part of the overall load in the building. Solar, on the other hand, is often net metered, meaning that the value of the investment is only loosely coupled with the existing energy consumption in the building. And even if the system is not net-metered, it can offset the entire building load as opposed to just the system being replaced. In residences, since people are typically out of the house during the day, many systems simply don’t get enough use to warrant an investment in more efficient equipment.

Energy efficiency investments in residences still often make sense! But take lighting, for example: lights in homes are often only on for a few hours a day. Lights in a retail store may be on for 12 hours or more every day. In a warehouse, it may be all day, every day.

The result is that energy efficiency investments make relatively more sense in commercial spaces than residences.

Residences and commercial buildings are very different from a business perspective: occupancy patterns, decision making, internal capabilities, buying patterns, etc., are all very different between the two.

Decision-making and Ingrained Buying Patterns

Solar is not only a “standalone” system that is an addition to the building, not a replacement of a system – it’s also a completely new product for most decision makers. For existing products, like lighting (or HVAC systems, or windows, etc.), a new business must disrupt existing vendor relationships.

In lighting, the barrier is especially strong. Until now, with LEDs, lighting has been a relatively “fast-moving” good. Especially in retail spaces, which use halogen lamps, lighting purchases are frequent. This has led to strong relationships between our targeted customers and their existing distributors.

Many of our customers “had a guy” that did their lighting. For this segment, the option of considering a new relationship for that portion of their space was dismissed off-the-bat. Many of these distributors offer LED lighting, but:

  • None of them offer financing (so far as we know!)

  • LED lighting options are not “what they know”, and it is much easier to keep selling the same products that have been sold for the last thirty years; and finally,

  • Distributors rely on frequent ongoing business from their relationships. Once a distributor sells their contact LED lights, they will most likely not hear from that contact for a number of years. So there is an incentive not to sell LED lighting.

From our perspective, the problem was simply that the customers wouldn’t consider our alternative. From a policy or market-structure perspective, there is the further problem that decision makers are not seeing all the available options that may convince them to switch to LEDs. In some cases not even knowing about all the LED options, and in nearly all cases not considering financing options for an investment in LEDs.


We both strongly believe that there are better business models out there for energy efficiency than those that exist today. We caution, though, to look beyond financing. Building energy efficiency is a huge resource and we encourage other entrepreneurs to continue attacking this market with new technologies and business models.

Both of us are happy to speak further with anyone that would like to hear more about our experiences. Our emails are geoffplewis [at] gmail [dot] com and thomas [dot] vladeck [at] gmail [dot] com.



Introducing v10r

A less impractical many-event conditional prediction market

What is a prediction market?

A prediction market is a market where there is a binary payoff based on whether or not an event occurs or not. Take, for example, an election: you might place a bet that a democrat wins the next presidential election. If you win, you get a dollar. If you lose, you get nothing. What would you pay today to buy that payoff?

A prediction market is a clearinghouse for these types of securities. The most famous was Intrade, which is now defunct. Someone who thought the probability of Obama winning the election was 70% could buy that a security that would pay a dollar if Obama won from another person who thought the probability was only 50%. The buyer might pay the seller $0.60 for a $1.00 payoff if Obama won.

What is a conditional prediction market?

Ok, so hopefully this is relatively clear in the case of one event either happening or not (i.e., a democrat winning the next presidential election). What about, though, if you could specify conditions that activated the bet? i.e., something like “a democrat will win the next election if the unemployment rate is less than 8%”.

As you might guess, this is significantly more complicated. You might have noticed, though, that the equations above did not depend on the length of q (the vector of events in question). In this case, if you had a market with four events:

  • A: Democrat wins AND unemployment rate less than 8%
  • B: Democrat wins AND NOT unemployment rate less than 8%
  • C: Democrat loses AND unemployment rate less than 8%
  • D: Democrat loses AND NOT unemployment rate less than 8%

You could transact the bet above by having the trader simultaneously buy A and sell C. You can work out the math, but it works out that the amount the trader is “paying” for A and is “receiving” for C are the same, so there is no money transacted. If the unemployment rate is greater than 8%, the trader will lose on A and win on C (regardless of what happens in the election), so in effect the trade won’t have happened: the trader won’t have paid anything, and won’t have received anything.

But if the unemployment rate is less than 8%, the trader must either win or lose. If the trader wins on A, she’ll lose on C, and vice versa. So the bet only becomes “live” if the condition is satisfied.

One thing you probably noticed: even though we have two binary events, now the market is having to keep track of four atomic events. This is a central challenge of conditional prediction markets: with N independent binary events, the number of atomic events you have to track is 2^N – it rises exponentially.

This creates two problems: the first is that with so many events, the probability that there will be a counterparty for any one of the many things you want to trade is very low; second, as you add more and more events, there becomes huge computational overhead to tracking the atomic events.

The first problem is solved by having a market maker ready to price any trade and accept the trade at that price – no other counterparty required. The second is more tricky, and I’ll get to that in a bit.

Market scoring rules

An automated prediction market is a step up in sophistication. In most prediction markets – Intrade was an example – the buyer and seller are people and the clearinghouse is taking no part of the trade. It’s just listing the available trades. In an automated prediction market, the clearinghouse is the counterparty to all trades.

To do this, the clearinghouse has to keep track of what the prices are for each security. To do this, it will use a market scoring rule that keeps track of all the securities for sale, and updates them as orders get served. As securities get bought, the price goes up, and as they get sold, the price goes down.

The most common form of market scoring rule (common in the sense of appearing in academic journals – there aren’t that many of these prediction markets “in the wild”) is the logarithmic market scoring rule created by Robin Hanson. The rule is:

C = beta * ln(sum (exp(q_i / beta)))

Sorry that’s hard to read. C is the total amount of money that the clearinghouse has taken from market participants, q is the vector of all bets placed on each event. As you change the vector q, by buying or selling an event, you change C. The amount by which you change C is the price the clearinghouse charges the trader. Beta is a constant which defines the liquidity of the market. The higher the beta, the more liquid the market.

If you want to find the current price of a given event q_j, you just take the derivative of this cost function with respect to the event in the vector q. That is given by:

P(q_j) = exp(q_j/beta) / sum(exp(q_i/beta))

Note that we’re summing over all q_i in q.

I’m sure you’re asking, what if everyone only buys the event that ends up happening? Won’t the market lose money? The answer, of course, is yes. This market will pretty much always lose money as more people buy the more probable event. But as more people buy a given event, the price goes up – lessening the amount the market-maker loses on that trade. If the first person buys the winning event for $0.50, the market-maker loses $0.50 on a $1.00 payout. But when the second person buys the same event for $0.60, the market-maker will only lose $0.40, and so on. If the price escalates more slowly (i.e., the market is more liquid), the market-maker will lose more; if the price escalates more quickly (i.e., if the second buyer had to pay, say $0.95 for a $1.00 payoff), the market-maker will lose less.

The total amount the market-maker can lose is this:

beta * ln(length(q))

Or, in plain english: the liquidity parameter times the log of the number of atomic events.

So that’s interesting: the loss is bounded. What if you charged a fee for each trade, so that, given a sufficient volume, you could guarantee that you made covered your total loss. Theoretically, you can. We’ll explore that in more detail.

The ambition

The overall ambition of this project is to create an automated conditional market with a large number of binary events. Imagine trades of the form “the average price of gas on November 1 will be above $4.50 nationally if WTI oil is above $XX a barrel and weather is unseasonably warm in October”. Or, whatever you like. And having a price for that security and a counterparty ready to trade.

Also, we want a lot of binary events. And we want the market to not lose money but also to not charge such a huge bid/ask spread so as to discourage trading. And we want the market to actually function, computationally.

This won’t be easy. First, let’s talk about liquidity senstive automated market makers.

Liquidity Sensitive Automated Market Makers

Much of this is taken from here.

So remember that the more liquid the market is, the more the market-maker can potentially lose. What if you adjusted the liquidity as the market progressed so the more trades that take place, the more liquid the market is. Turns out, that’s possible. To do that, we introduce a new concept: alpha.

So instead of having beta – the liquidity paramater above – be a constant, we define beta to be

beta = alpha * sum(q)

Or, alpha times the total number of trades placed. So as more trades get placed, the market becomes more liquid. It has some tradeoffs, though.

The first tradeoff is that prices will now no longer sum to 1. In the other equations I’ve showed you, it’s obvious that the price of all the events summed together made 1, which make sense probabilistically. Now, the prices sum to slightly over 1 – so the market is “overcharging” for securities in general. The total amount prices may go above one is given by:

alpha * (2^N) * log(2^N)

The other tradeoff is that initially, the liquidity in the market is zero (because nothing has been bought or sold). So the market maker has to “seed” the market by purchasing its own securities so that there will be some liquidity when the market starts. It turns out that, in this liquidity-sensitive market, the dollar amount the market “spends” initially on its own securities (to seed the market with liquidity) is also the total amount the market may lose.

So the real tradeoff is between the initial liquidity and the maximum loss of the market.

The scaling problems of Automated prediction markets

So we have a number of constraints that we need to consider in our design:

  • The length of q – the vector of bets placed on each “atomic” event rises exponentially in N (the number of binary events we want to cover). This makes computation intractable for large N.
  • The maximum loss of the market-maker rises linearly with the amount of initial liquidity in the market.
  • For any given alpha parameter, the “irrationality” (the amount above 1 they may rise) of the prices rises exponentially in N.

Covering designs and a strategy for many-event prediction markets

Ok – so it’s clear that above N=10, we’re starting to get in hot-water. Ten events is interesting, but it’s just not that interesting. With N=10, the number of “atomic” events is 2**10 = 1024. But at 100 events, say, we’re talking about about 1.2676506e30 atomic events. A one with … thirty zeroes after it. Not. tractable.

What if we cheated? We really only need those 100 binary events in one market if people are going to be combining them into conditional bets. One way to skirt this exponential issue is to weaken the guarantee that any arbitrary combination of events is permitted.

Instead, you might instead guarantee that of 100 events, that you could always write a contract for any, say, three events in a conditional bet. Beyond three, it may be possible in some cases, but there’s no guarantee. So instead of having one giant, intractable market – you run a number of tractable markets that together contain every combination of events that you’re guaranteeing.

To do this, we need to step into the world of covering designs. A covering design is a combinatorial concept that basically asks this question: Given a set of v elements, how many k-sized subsets of v do we need to guarantee that every possible t-length subset of v is present in one of the k-sized subsets?

Put more succinctly by the La Jolla Covering Design Repository (LJCR): “A (v,k,t)-covering design is a collection of k-element subsets, called blocks, of {1,2,…,v}, such that any t-element subset is contained in at least one block.”

Covering designs are tricky beasts, and there is a lot of interesting math on them. For example, we know that there is a (99, 10, 3) covering design with 1768 blocks (available at the LJCR), but we don’t know of a (99, 10, 4) covering design with less than 36,980 blocks. That escalated quickly.

Increasing block size has the opposite effect.There is a (99, 12, 3) covering design with only 874 blocks.

So the general tradeoffs are:

  • The higher the size of arbitrary combinations we allow, the more markets we have to run (this rises very quickly, although I’m not sure what the scaling is – exponential, factorial, etc.)
  • The higher the number of binary events we run in each market, the fewer markets we have to run, but the more intractable they are.

There is a “sweet spot” of possibilities, but it’s small. For example, it seems that (99, 10, 3) is a computationally tractable market: 1768 markets, each with 1024 atomic elements (or 10 binary elements), and guaranteeing any trader that any combination of three binary events can be priced and traded. And some combinations of up to 10 will also be tradeable.

how v10r works

v10r needs a few parameters to get started. The first thing we need is a (v, k, t) covering design. This will give us the number of markets we’re running, the size of each market, and the size of the guarantee we can make about arbitrary combinations.

Next, we need to know what the initial liquidity we’d like the market to have, and how quickly it will rise as more trades are made in the market.

Finally, we need to know the fee we’re charging for each trade.

The flow

  1. Order comes in as a logical statement with binary events as logical variables. Assume that the order size is O units.
  2. v10r finds the markets that are “in play” with the given binary events and filters out the rest – assume that there are M markets “in play”. The markets that are “in play” are those that contain all of the binary events present in the order.
  3. For each market, the logical statement is parsed into buy/sell orders for “atomic” events (the ordering of these events inside the q vector will be different in each market)
  4. For each market, v10r computes the price change for O/M units
  5. The price changes across the M markets is summed and this price is presented to the trader along with the fee
  6. If the price is accepted, the quantity changes are added to each of the M market’s q vectors

There is a major known issue here:

  • The mathematics of the market as presented depend on the trades being completed in a linear sequence. But what if two people are quoted on trades concerning overlapping markets and they both accept?

Upon further inspection, this isn’t a terribly huge issue if:

  • The market is pretty liquid (the other person’s trade would not have moved the prices that much anyway)
  • The prices are pretty efficient (meaning that there is no systematic bias towards increasing or decreasing the price)

The two of these imply that price discrepancies due to concurrent trading will be small and will as much be in your favor as against it. We can further mitigate this issue by ensuring that prices are never more than some amount out of date.

v10r simulations and code

I have simulations of the market available for public consumption at and a semi-working implementation at

The simulations code should be relatively easy to follow if you understand the equations above.

Caveats: the implementation is really bad code. It’s almost certainly unreadable to anyone other than me. The “client” code relies on un-named gems, namely “GSL” and “Algorithms” and “Redis”. Other things probably don’t work. It relies on having a running Redis server that works as the middle layer between the client and server.

The server code runs on clojure because I needed something that was easily multithreadable and had very good matrix libraries. Yay clojure!

The server is just constantly looking at the current order book and computing pre-baked values for the client to grab and use. To make the calculations tractable, I split the price function calculations between the client and server. The client parses the order, finds the right markets, and computes the “rest” of the price difference.

Wow! you made it all the way down here! Interested in chatting further? Email me.


What follows is the central lesson I learned from two years of working on a startup and making a ton of mistakes. A few caveats: I’ve never had a successful startup, and this resonates with my experiences and view of the world.

It’s commonly said and written, at least in the Bay Area: “build something people want” (BSPW). Yet, for my startup (Building Hero), this was the central, original reason we did not succeed. We built things, but they were not things that enough people wanted badly enough.

Why can it be hard to BSPW? It’s really two problems that reinforce each other:

1. Building a product (BS) produces tangible results whereas validating a problem (the PW part) does not

2. It’s less clear how to validate a problem then it is to build a product

So the BS part is both more tangible and more fun. You can show it to your friends and feel good about the progress you’ve made. Not only that, if you’re an entrepreneur, it’s probably because you’re excited about technology and because you have fun building things. It’s also easier for you, probably, because you’re excited about it and it’s closer to what you normally do (i.e., writing code or designing mockups). And once you have a working product, it’s very easy to get excited about its capabilities. If you’re smart, you can probably convince yourself that it’s awesome.

The PW part is much less tangible. The result of validating a problem is a clear idea of what opportunity exists, an empathic connection with your potential market, and the beginnings of an understanding of how you might solve the problem. It’s a lot harder to show people; it’s harder to get excited about; by itself it’s unfulfilling both personally and socially.

Finally, because BS is so tangible, there is significantly less cognitive overhead in figuring out how to build the product then in validating the problem. It doesn’t take too long to put together a roadmap for how you’ll build something. PW is much less tangible; it’s not clear how to begin or even what you want to end up with.

So, when faced with the choice of finishing up a webapp, which you can show your friends and pitch to investors, or individually emailing 100 people in your target market (much tougher to show your friends), it’s easy to see why many would choose the former and not the latter.

Building Something Arbitrary

If you don’t PW before you BS, it’s likely that what you’re building is arbitrary. Through a commercial lens, it doesn’t have a reason for existence. It’s just one of the infinite things that could exist. Not one of the subset of things that needs to, or should, exist.

Sometimes entrepreneurs may get lucky and build something and find out that people want it too. Or some entrepreneurs may have such a strong creative vision that they can “see the future” and build into it. I guess I’m just not that way, so I need a more defined approach.

The other issue is that starting with BS before PW is that it doesn’t equip you to evaluate how well you are doing. Really validating a problem should leave with you with an understanding of the assumptions that must be met before a product will succeed to the level you desire. Without this work below the tip of the iceberg, you’ll lack critical navigational ability: knowing what assumptions are being proven right and wrong.

In our case, we got fooled by “vanity metrics” – the number of projects we were doing and the amount of revenue we were bringing in. We didn’t have defined assumptions at the outset that we could prove right or wrong. So we made decisions based on the wrong things.

Find out what people want, then build it