Monthly Archives: September 2014

Stock price reflexivity

Investors learn the parable of Mr. Market early in their education. The lesson that Benjamin Graham tried to teach is that investors shouldn’t value a company based on what the – possibly irrational – market is telling them, but on their own merit. Taking the teachings of Benjamin Graham to heart many value investors more or less ignore market prices. While this is roughly right in a lot of cases it misses the reflexivity between intrinsic value and price. A business with a higher price is often worth more than an otherwise identical business with a lower price.

Stock as currency (in deals)

One reason for this phenomenon is that overvalued companies can use their stock as a cheap currency. This allows a company to do acquisitions that really add to the intrinsic value/share. Let’s say a hypothetical company is worth $10 million, but it is trading at $20 million with one million shares outstanding. It could double its share count and acquire a second business worth $20 million. The result would be an increase in intrinsic value/share from $10/share to $15/share while the overvaluation shrinks from 100% to just 33%.

And a fair question to ask in this case: is the stock really trading above intrinsic value if the company is able to do deals like this? And if it’s trading above intrinsic value, by how much? I would argue that the true intrinsic value – taking into account reflexivity – is higher than $10/share. But how much it is worth exactly depends on how long the music keeps playing. The company could in fact be worth a lot more than $20/share if it is able to do a bunch of favorable acquisitions. I would never be long a stock based on this idea, but it is worth thinking about when you are shorting!

Share based compensation

Closely related to the example above is the use of stock as a currency to pay management and employees. A higher stock price is better for investors because share based compensation is usually based on the monetary value of the underlying. If you invest in nano-caps (like I do) you might be significantly diluted because of the option package that is granted to insiders. It might not be an insane bonus in absolute terms, but when a companies market cap is minuscule a share based payment could be a quick way to see your stake shrink.

When a company is overvalued and you consider shorting a stock the share based compensation is also an issue to think about. Many web 2.0 stocks have a sky-high valuation and pay employees using their (according to some) overpriced stock. If they are able to continue that practice it makes the business better than it otherwise would be.

‘Low-ball’ offers

If you own a stock that you think is extremely undervalued there is a very real risk that you are unable to benefit fully from that insight. A stock that is worth $50/share but is trading at $10/share is a great target for a management buyout or an acquisition from some other party. If you are, as the acquiring party, able to offer a significant premium above the latest trading price there is a very high probability that you will be able to close the deal. If shareholders wouldn’t be happy to sell a $10-stock at $20 it wouldn’t be trading at $10.

This is one of the many reasons that I’m happy to share my investment idea’s on this blog. Once I have bought a stock I don’t think a dropping share price is just a great opportunity to double down. Doubling down might still be a great idea, but it is a double-edged sword since you also run an increased risk of a take-over at an unfavorable price.

Share repurchases

A higher share price does not always translate to a higher intrinsic value: the reverse is also a common occurrence. Some companies buy back stock irrespective of the current market price. When the market price is below intrinsic value this is great for remaining shareholders, but when the stock is overvalued this is not good news. In that case value is transferred from remaining stockholders to selling stockholders. A company with a smarter share repurchase policy is also more valuable when its stock is undervalued: it cannot create value if it doesn’t have the opportunity to repurchase undervalued shares.

Closing thoughts

While the reflexivity between price and value is an interesting phenomenon I don’t think you can do a whole lot with this knowledge. You still want to buy undervalued companies and short overvalued companies. But it should have a place in your process when you think about the risks and rewards of various investments. Both short and long investments offer less upside than you would have thought when taking reflexivity into account. How much? I don’t know.

Ring Mirror - Arnaud Lapierre

Short Google Drive tutorial based on the FFP spreadsheet

FFP released their semi-annual results last Friday which prompted me to update my Google Drive spreadsheet that tracks the NAV of the company in real-time. The spreadsheet is publicly accessible using this link and currently looks as follows:

FFP NAV spreadsheet

In the past months NAV/share has been going up while the discount has been getting a bit smaller, so that’s obviously good news for me, but that is not what I want to talk about. What I want to focus on is on how you can create a spreadsheet like this with real time prices, and specifically how to incorporate price data when the standard =GoogleFinance() function is unavailable. This is a recurring issue when you use Google Drive because foreign exchanges are often not supported. The FFP spreadsheet ran into this problem for the first time because FFP now owns Peugeot warrants and it has made an investment in a Mauritius listed stock.

The easy way

Step one in adding a quote that is not supported by Google Drive is finding a webpage that does have a quote. or are often a good source for foreign stocks. With the =ImportHTML() function it easy to grab data from a webpage. It is limited since it can only get stuff that is presented in a table or a list on the webpage, but luckily Bloomberg does have some relevant stuff in a table. To grab for example the latest price for Fujimak (A Japanese company I own) you can use the following command:

=ImportHTML("", "table", 1)

The first argument specifies on what web page the data can be found, the second argument specifies if you want to grab it from a list or a table and the last argument specifies the number of the table or list (there are often a couple of different tables on one page). Because Bloomberg doesn’t have a quote for the Peugeot warrants nor for the CIEL group on its website we have to take a slightly more complicated path.

The hard way: CIEL Group

If you want to be able to access everything you can use the =ImportXML() function. It takes two arguments: an URL and a XPath query. The XPath language can be used to select nodes in a HTML document (plenty of tutorials available online), but we don’t need a lot of fancy stuff to find a quote. You could use "\\div" as a XPath and you would basically get the whole HTML page dumped in your spreadsheet. This isn’t a very neat solution because there is a high risk that something will change in the page and that the cell that contains the latest price is suddenly moved: breaking the spreadsheet. The better solution is to specifically search for the HTML element that contains the price.

The latest price of the CIEL group can be found here on the site of the Mauritius stock exchange. Right-click in Google Chrome on the price and select “inspect element” and you will see a bunch of HTML code with one highlighted line, a div with the id “general_price_details”:

Finding the div id

We can now select this specific element with the following XPath query:

=ImportXML(B19, "//div[@id='general_price_details']")

Getting the warrant price

The price for the Peugeot warrants can be found on the site of the Euronext stock exchange. Here things are made even a bit more complex because the website is designed in such a way that the price is loaded asynchronously with the main page.  We can once again use the Google Chrome development tools to figure out where the data is coming from.

Right-click on any page element and select “inspect element”. Select the “Network” tab and refresh the page by pressing F5. You will see a list of all kinds of files that are loaded by your browser when the page is rendered. Most of the files are small images, scripts and style sheets, but there is also a small HTML page that contains the price data. We need to copy the URL of this page to Google Drive for our =ImportXML() function:

Finding the page with the Peugeot warrants  price

We can now import the price in Google Drive using this command (B3 refers to the URL):

=ImportXML(B3, "//div[@class='quote with-label']")

There remains one tricky issue that needs to be resolved. Google tries to automatically convert the price data to a number, but the Euronext website uses a comma as a decimal mark while Google drive expects a point. When the price is for example €1,641 Google drive translates this to €1641 (and it is easily fixed by a division by one thousand). If the price is €1,64 Drive doesn’t recognize a number, and we need to remove the €-sign and convert the comma to a point our self. This can be done with the following command:


Hopefully this was educational!


Author is long FFP

Exited UTStarcom

I bought UTStarcom (UTSI) a bit more than one and a half year ago. My main reason for buying the stock was the cash rich balance sheet combined with a history of share repurchases. I’m not very pleased with how I valued the cash balance of the company in my initial analysis. Focusing more on NCAV would have been a better idea since it accounts for all liabilities on the balance sheet. Buying a stock at 1.1x NCAV doesn’t sound as attractive as buying a stock with more than $4.5/share in cash for less than $3/share.

Since then the amount of cash/share has steadily dropped thanks to a combination of investments in ‘exciting’ new ventures (so far all with negative earnings), capex, negative operating cash flow and some share repurchases. Those investments might work out in the end, but I have no idea on how to value them and how to track them. I also don’t really want to take a leap of faith with the current management team. Given that the stock has been going up for no apparent reason the past month I thought that this was a decent time to exit.


No position in UTSI anymore