tag:blogger.com,1999:blog-6290905501080547772024-03-22T10:08:47.128-07:00All Things AnalyticsJitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.comBlogger54125tag:blogger.com,1999:blog-629090550108054777.post-86021363253435520862013-09-04T11:28:00.000-07:002013-09-04T11:28:21.698-07:00The Future of Big Data is Cognitive Big Data Apps<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
</div>
<br /><div class="p1">
</div>
<div class="p1" style="text-align: left;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2T_xCnR1Egw-fGqywnJDwbpHVWet2iRME_99sj-7Jhld24_Y0C2l0tp0u8IoZgG9qyidAR5cHtAS2kzpEQmY7BVinac2C-F2CEQVgPIPYBkiGfNQRAxfNyqdrZ3rdxrHeo0smwbDqcV8/s1600/17-2.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2T_xCnR1Egw-fGqywnJDwbpHVWet2iRME_99sj-7Jhld24_Y0C2l0tp0u8IoZgG9qyidAR5cHtAS2kzpEQmY7BVinac2C-F2CEQVgPIPYBkiGfNQRAxfNyqdrZ3rdxrHeo0smwbDqcV8/s320/17-2.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<div style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Volume, Velocity, Variety and Veracity of your data, the 4V challenge, has become untamable. Wait, yet another big data blog? No, not really. In this blog, I would like to propose a cognitive app approach that can transform your big-data problems into big opportunities at a fraction of the cost.</span></div>
</div>
<div class="p1" style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Everyone is talking about big data problems but not many are helping us in understanding big data opportunities. Let's define a big data opportunity in the context of customers because growing customer base, customer satisfaction and customer loyalty is everyone’s business:</span></div>
<br />
<div style="text-align: left;">
</div>
<ul>
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you have a large, diverse and growing customer base</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">your customers are more mobile and social than ever before</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you have engaged with your customers where ever they are: web, mobile, social, local</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you believe that "more data beats better algorithms" and that big data is all data</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you wish to collect all data - call center records, web logs, social media, customer transactions and more so that</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you can understand your customers better and how they speak of and rank you in their social networks</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you can group (segment) your customers to understand their likes and dislikes</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you can offer (recommend) them the right products at the right time and at the right price</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you can preempt customer backlash and prevent them for leaving (churn) to competitors and taking their social network with them (negative network effects)</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">all this effort will allow you to forecast sales accurately, run targeted marketing campaigns and cut cost to improve revenues and profitability</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">you wish to do all of this without hiring an army of data analysts, consultants and data scientists</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">and without buying half-dozen or more tools, getting access to several public / social data sets and integrating it all in your architecture</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">and above all, you wish to do it fast and drive changes in real time</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">And most importantly, you wish to rinse and repeat this approach for the foreseeable future</span></li>
</ul>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">There are hardly any enterprise solutions in the market that can address the challenges listed above. You have no other choice but to build a custom solution by hiring several consultants and striking separate licenses agreements with public and social data vendors to get a combined lens on public and private data. This approach will be cost prohibitive for most enterprise customers and as "90% of the IT projects go" will be mired with delays, cost overruns and truck load of heartache. </span><br />
<div class="p2" style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p2" style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The advances in technologies like in-memory databases and graph structures as well as democratization of data science concepts can help in addressing the challenges listed above in a meaningful and cost-effective way. Intelligent big data apps are the need of the hour. These apps need to be designed and built from scratch keeping the challenges and technologies such as cognitive computing[1] in mind. These apps will leave the technology paradigms of 1990s like "data needs to be gathered and modeled (caged) before an app is built" in the dumpster and will achieve the flexibility required from all modern apps to adapt as the underlying data structures and data sources change. These apps can be deployed right off the shelf with minimum customization and consulting because the app logic will not be anchored to the underlying data-schema and will evolve with changing data and behavior.</span></div>
<div class="p2" style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p2" style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The enterprise customers will soon be asking for a suite of such cognitive big data apps for all domain functions so that they can put the big data opportunities to work to run their businesses better than their competitors. Without dynamic cognitive approach in apps, addressing the 4V challenge will be a nightmare and big data will fail to deliver its promise.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Stay tuned for future blogs on this topic including discussions on a pioneering technology approach.</span></div>
<div class="p2" style="text-align: left;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p2" style="text-align: left;">
</div>
<div class="p1">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">[1] Cognitive computing is the ability to analyze oceans of data in context with related information and expertise. Cognitive systems learn from how they’re used and adjust their rules and results dynamically. Google search engine and knowledge graph technology is predicated upon this approach. </span></div>
<div class="p1">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="p1">
<i><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"> This blog has benefited from the infinite wisdom and hard work of my former colleagues Ryan Leask and Harish Butani and that of my current colleagues Sethu M., Jens Doerpmund and Vijay Vijayasankar.</span></i><br />
<i><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></i>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif; font-size: xx-small;">Image courtesy of MemeGenerator</span></div>
</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com49tag:blogger.com,1999:blog-629090550108054777.post-41350551051398796322013-08-25T20:54:00.003-07:002013-09-04T05:43:32.570-07:00Data Science: Definition and Opportunities<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzCKiGQIPaRLo5A8FdeYNKcYaYqMqa_vVhcWGugyRDM_mm8CCuHkQM28i_iepZc_9DNMBjWkAERluKncamHrMLgk8tVmsA4iuniyJLrrqqqdm4jhLpMAgZem9dXPQvng08TS4OR7lU7Qo/s1600/18.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzCKiGQIPaRLo5A8FdeYNKcYaYqMqa_vVhcWGugyRDM_mm8CCuHkQM28i_iepZc_9DNMBjWkAERluKncamHrMLgk8tVmsA4iuniyJLrrqqqdm4jhLpMAgZem9dXPQvng08TS4OR7lU7Qo/s320/18.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Image courtesy of BBC</td></tr>
</tbody></table>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;">My thoughts on what data science is, what skills data scientists have, what are the current issues in the Business Intelligence pipeline, how can machine learning automate a part of the BI chain, why and how data science should be democratized and made available to every one including decision makers (business users), how business analyst should build complex data models and how data scientists should be freed up from the mundane tasks of rinse and repeat ETL before building models that provide input for decision making, how companies can build a business practice around data science. </span></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;">Key Premise: big data is all data and the big data apps offer the ability to combine all data (public + private) and expand the horizon to discover more meaningful insights.</span></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<span style="font-family: Georgia, Times New Roman, serif;">Data Science is:</span><br />
<ul class="ul1">
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">An art of mining large quantities of data </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">An art of combining disparate data sources and blending public data with corporate data</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Forming hypothesis to solve hard problems</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Building models to solve current problems and provide forecast</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Anticipate future events (based on historical data) and provide correcting actions (finance, banking, travel, operational runtime)</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Automating the processes to reduce time to solve future problems</span></li>
</ul>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;">A Data Scientists has following minimum set of core skills:</span></div>
<ul class="ul1">
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Problem-Solver</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Creative and can form an hypothesis</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Is able to program with large quantities of data</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Can think of bringing data from appropriate data source and can bring and blend data </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Stats/math/analytics background to build models and write algorithms </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Can quickly develop domain knowledge to understand key factors which influence the performance of a busies problem</span></li>
</ul>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;">Roles Data Scientists play:</span></div>
<ul class="ul1">
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Problem description </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Hypothesis formation</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Data assembly, ETL and data integration role</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Model development (pattern recognition or any other model to provide answers) and training</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Data visualization </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">AB Testing </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Propose solutions and/or new business idea</span></li>
</ul>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;">The balance between human vs. machines:</span></div>
<ul class="ul1">
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Current: humans play a significant role in the process – ETL, joins, models, visualization, machine-learning and repeating and recycling this process as the problem changes</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Tomorrow: A big portion of the food-chain can be automated via machine learning so machines can take over and scientists can free up to build more algorithms/models </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">The process can be automated so repeating/recycling can be cheaper and less time consuming</span></li>
</ul>
<div class="p1">
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;">The Data Science pipeline currently look like:</span></div>
<ul class="ul1">
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">From Data to Insights – this entire process requires mundane skills (IT), specialized skills (data-scientist) and elements of human psychology to present the right information at right time </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">The data needs to be discovered, assembled, semantically enriched and anchored to a business logic – this task can be be automated through machine learning (a set of harmonized tools with AI) to free up scarce resources</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Specialized skills today get addressed by open source technologies such as R and expensive solutions like Matlab and SPSS.</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Very few software solution carefully introduce human interface to make their application consumable without requiring customer training</span></li>
</ul>
<span style="font-family: Georgia, 'Times New Roman', serif;">This pipeline needs complete rethinking:</span><br />
<ul class="ul1" style="text-align: left;">
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Automate mundane tasks that IT gets tagged with </span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Discover data automatically </span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Detach business logic from data models</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Make blending public data with corporate data a second nature</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Free up scientists so that they can build analytics micro-apps for a domain or a sub-domain</span></li>
<li><span style="font-family: Georgia, 'Times New Roman', serif;">Data Science need not be a niche (specialized category), it should appeal to the masses (democratization of data and brining insights to everyone without needing specialized skills)</span></li>
<ul class="ul2">
</ul>
</ul>
<span style="font-family: Georgia, Times New Roman, serif;">Opportunities in Data Science: </span></div>
<ul class="ul1">
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Understand the value chain (IT + Business Analyst + Data Scientists + Business Users)</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Provide something for everyone - a single integrated platform (ETL + Data Integration + Predictive modeling + in-memory computing + storage) for data-scientist so that they can build standard analytical apps and move away from proprietary models and standardize (helps IT)</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Analytical apps on this platform (think of them as Rapid Deployment Solutions) for business users</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Help business analysts write basic models (churn, segmentation, correlation etc.) without needing advanced skills</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Work with consulting companies so that they can consult and build apps for companies that do not have data scientist on their pay-roll (Mu-Sigma and Opera Solutions)</span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Partner with public data provider (to help clients), consulting companies (Rapid Solutions solution), R/Python/ML communities (mind-share and thought-leadership), </span></li>
<li class="li1"><span style="font-family: Georgia, Times New Roman, serif;">Donate your predictive models to open-source communities</span></li>
</ul>
<div class="p1">
<br /></div>
<ul class="ul1"><ul class="ul2">
</ul>
</ul>
</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com8tag:blogger.com,1999:blog-629090550108054777.post-5778314179301258222013-08-13T07:01:00.002-07:002013-08-13T07:02:38.619-07:00Sum of Parts Valuation Analysis for Apple from Needham<div dir="ltr" style="text-align: left;" trbidi="on">
<b>Sum of parts is greater than the whole </b>- when one gets an indication that company as a whole is not priced fairly, break the company down into parts and apply sum-of-parts valuation. <br />
<br />
The sum-of-parts valuation approach Needham used below to value Apple is my favorite one. This approach breaks down the organization into parts and applies separate valuation model using different growth assumptions, challenges and steady-state values to arrive to an appropriate LTV. In this approach, the fastest growing businesses can fetch aggressive growth rates while slower or steady business get more moderate assumptions.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://photos.appleinsider.com/needham-130812-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="249" src="http://photos.appleinsider.com/needham-130812-2.jpg" width="640" /></a></div>
<br /></div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com3tag:blogger.com,1999:blog-629090550108054777.post-46992867448332107922013-04-19T13:56:00.001-07:002013-04-19T13:58:04.771-07:00Democratization of Business Analytics Dashboards<div dir="ltr" style="text-align: left;" trbidi="on">
I am super impressed with the following visual dashboard from IPL T20 tournament - <a href="http://www.iplt20.com/">IPL 2013 in Numbers</a>. For those of you not so familiar with cricket or IPL, IPL is the biggest, the most extravagant and the most lucrative cricket tournament in the world. I like the way IPL is bringing sports analytics to the common masses.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ZTpCns59qVqxEjYpbgZJZukm9Y-fYAELv6WndpsbEBXEFlJ1Sx9ejiwt4BU1ha_8YlH-kyeU0FYBqYaivdZ7-4jIVlUId_M7UWPpHGApXiXk4K7ERlDsQtQ-zlVl39mFniXksZWVSA4/s1600/IPL-2013-dashboard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ZTpCns59qVqxEjYpbgZJZukm9Y-fYAELv6WndpsbEBXEFlJ1Sx9ejiwt4BU1ha_8YlH-kyeU0FYBqYaivdZ7-4jIVlUId_M7UWPpHGApXiXk4K7ERlDsQtQ-zlVl39mFniXksZWVSA4/s640/IPL-2013-dashboard.png" width="640" /></a></div>
<br />
What is impressive is that each metric (runs, wickets, or tweets) is live so these numbers get updated automatically, pretty cool for IPL and cricket fans. Also, each metric is clickable so one can drill down to his or her heart's content. This is a common roll-up analysis but the visualization and the real time updates make this dashboard pretty appealing. IPL team, thanks for not putting any dials on this dashboard (LOL).<br />
<br />
I have been influencing and now building analytics products that power these sports and various other dashboards/reports for many years. The most fascinating thing is that these dashboards (or lets call it analytics in general) are reaching the masses like never before. Everyone has heard of terms like democratization of data and humanization of analytics. This is it! The data revolution is underway. <br />
<br />
Now, there are many new frontiers to go after and the existing ones need to be reinvented. Yes, the analytics market is ready for massive disruption. This is what keeps me excited about Business Analytics space.<br />
<br />
Happy Analyzing and Happy Friday!</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com10tag:blogger.com,1999:blog-629090550108054777.post-17480589697068858322013-04-05T13:57:00.000-07:002013-04-06T09:35:21.046-07:00Tableau IPO: Let The Gold Rush Begin For Enterprise Software IPOs!<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="p1">
</div>
<div class="p1">
<span style="font-family: inherit;">The year 2013 is going to be the year of enterprise software IPOs. That is not a prediction but well discussed point in Silicon Valley. Everybody believes that there is a pent-up demand from return hungry investors for the enterprise software IPOs. Consumer software IPOs have failed to live up to their promise in the last couple of years but the enterprise software IPOs have continued to deliver <span style="background-color: white;">(examples: WDAY, NOW, SPLK)</span>, case-in-point. </span></div>
<div class="p1">
<span style="font-family: inherit;"><br /></span></div>
<div class="p1">
<span style="font-family: inherit;">In the last couple of days, two of my favorite companies, <a href="http://www.marketo.com/"><span class="s1">Marketo</span></a> and <a href="http://www.tableausoftware.com/"><span class="s1">Tableau</span></a> have announced plans to go public. Here are the links to <a href="http://www.sec.gov/Archives/edgar/data/1490660/000104746913003841/a2214086zs-1.htm"><span class="s1">Marketo's S1</span></a> and <a href="http://www.sec.gov/Archives/edgar/data/1303652/000119312513138700/d469057ds1.htm"><span class="s1">Tableau's S1</span></a>. I have had the good fortune to study, evaluate and follow both companies since 2010. Both the companies have done very well in their respective segments, SaaS marketing automation and on-premise self-serve BI. They have both exceeded expectations on all fronts (employees, customers, analyst markets, competitors) after a long hard slog. </span></div>
<div class="p1">
<span style="font-family: inherit;"><br /></span></div>
<div class="p1">
<span style="font-family: inherit;">To all my friends, colleagues, investors and readers of this blog, enterprise software is a hard slog, you are in it for a long-haul. Tableau is a 10-year old company and Marketo is 7 years old (Source: SEC Filings).</span></div>
<div class="p1">
<b><span style="font-family: inherit;"><br /></span></b></div>
<div class="p1">
<b><span style="font-family: inherit;">Valuation</span></b></div>
<div class="p1">
<span style="font-family: inherit;">Since Tableau ("DATA") has announced its plan to go IPO this year, I decided to put the striped-down version of my due-diligence, performed in early 2011, <span class="s2"><a href="http://goo.gl/TrrBl">on my slide-share account</a></span>. Back then, I used relative valuation using QlikView ("QLIK") as a close proxy to put a number on Tableau. I used PE (earnings multiple) and PS (revenue multiple) of QLIK and assessed a market value of $380million based on Tableau's 2010 revenues of $40 million (<a href="http://www.tableausoftware.com/about/press-releases/2011/tableau-doubles-revenue-2010"><span class="s1">from their press release in 2011</span></a>, this number has been revised down to $34million in S1, huh, strange!)</span></div>
<div class="p1">
<span style="font-family: inherit;"><br /></span></div>
<div class="p1">
<span style="font-family: inherit;">Now, if one were to use QLIK's current revenue multiple of 5.5 (Source: Yahoo Finance), Tableau could be valued between $700million (based on trailing revenue of $128million) and 1.4billion (based on $256million in expected revenue for 2013 assuming that they grow their revenue YET AGAIN by 100% in 2013.)</span></div>
<div class="p2">
<span style="font-family: inherit;"><br /></span></div>
<div class="p3">
<span style="font-family: inherit;">I personally don't think that the street should use QLIK as a proxy instead apply Splunk's ("SPLK") lens to value Tableau. So using SPLK's multiple of ~19.7 (Source: Yahoo Finance), Tableau will be valued at $2.5billion based on their 2012 revenues. ServiceNow ("NOW") also has a PS multiple of ~19. </span></div>
<div class="p4">
<span style="font-family: inherit;"><br /></span></div>
<div class="p3">
<span style="font-family: inherit;">I have strong reasons to believe that street will be valuing Tableau in this range based on a great growth story till this point and amazing opportunities ahead as we are just starting to drill the BigData mountain. I will not be surprised to see the valuation range from $2.5billion to $5billion. Amazing!</span></div>
<div class="p2">
<span style="font-family: inherit;"><br /></span></div>
<div class="p1">
<b><span style="font-family: inherit;">Tableau's S1</span></b></div>
<div class="p1">
<span style="font-family: inherit;">I studied <a href="http://www.sec.gov/Archives/edgar/data/1303652/000119312513138700/d469057ds1.htm"><span class="s1">Tableau's S1</span></a> filing briefly looking for information on valuation and offering on number of shares. Not much is disclosed there just yet. It will likely be disclosed in the subsequent filings as they hit the roadshow to assess the demand from the institutional investors. Just like Workday, Tableau will also have dual class shares (Class A and Class B) with different voting rights. The Class A will be offered to investors by converting the Class B shares. </span></div>
<div class="p1">
<span style="font-family: inherit;"><br /></span></div>
<div class="p1">
<span style="font-family: inherit;">The last internal valuation of employee options priced the stock at ~$15. To raise $150million, Tableau will at least be putting 10 million shares of Class A on the block. Now of course, this will change as the demand starts to build up following their road-show. One thing is certain that the stock will be definitely priced above $15. Now, how many points above $15, we will find out in the next few months. </span></div>
<div class="p1">
<span style="font-family: inherit;"><br /></span></div>
<div class="p1">
<span style="font-family: inherit;">Let the mad rush begin!!!</span></div>
<br /></div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com3tag:blogger.com,1999:blog-629090550108054777.post-30097742464790599582012-11-09T13:03:00.003-08:002012-11-09T14:29:17.617-08:00Financial Markets and President Elect: Do Financial Markets Favor A Republican Over A Democrat?<div dir="ltr" style="text-align: left;" trbidi="on">
US financial markets favor a republican president over a democratic president. Has this sentiment stood the test of time? Do financial markets care whether the president elect is a democrat or a republican? How have financial markets behaved in the past after the announcement of next US president? And finally, can one spot a pattern in the performance of financial markets based on the president's party affiliation? More specifically, did financial markets fare better under a republican president or under a democratic president?<br />
<br />
To answer all these questions, I turned to history and generated the historical performance of S&P 500 since 1952. I also had to turn to Wikipedia to get a<a href="http://goo.gl/pjyEj"> list of presidents and their party affiliation</a>. Between 1952 and 2012, US has elected 16 presidents with republican presidents outnumbering their democratic counterparts by 2 in occupying the white house (see table below):<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPUcLfXEoPJLnMVACnsWwTMGsTUofTvTm-dieTy_ERvrKfd2IDHk9Hm5ijm_rGBgzGbfafIoXq92S3DJynIYenq13ql_b_F1GK4QdvUHJVFOUa-wmCPdVAQbXMjmlU02C_VLFcbk3S14I/s1600/presidential+elections+&+stock+market+returns.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPUcLfXEoPJLnMVACnsWwTMGsTUofTvTm-dieTy_ERvrKfd2IDHk9Hm5ijm_rGBgzGbfafIoXq92S3DJynIYenq13ql_b_F1GK4QdvUHJVFOUa-wmCPdVAQbXMjmlU02C_VLFcbk3S14I/s640/presidential+elections+&+stock+market+returns.png" width="640" /></a><br />
To understand whether financial markets favored a republican president over a democratic president, I generated 1-day, 1-week, 4-week, 12-week, 52-week and the presidency term ("term") returns since the election date (see table above.) Looking at the one day return, there was no clear indication whether markets favored one party or the other. Financial markets welcomed Ronald Reagan, a republican, by sending the S&P 500 up 1.77% which is the highest one-day return among all the 16 presidential events. Markets also cheered the reelection of Bill Clinton with a one-day return of 1.46% after the announcement of president elect.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4VnW_xAFdvhLtLg4EDEAQGj3KPaW9oPH3a6Bsdg7_oLqewbNvfPOfNrAs11EP6577CKkLLw7eVzTP4xifNsbfd5MI2_bwF0yglRWVB6yP2V3voqFWHE2D-TNxlksFc8rHrTcUDrefCLE/s1600/SP500+Performance+2008.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4VnW_xAFdvhLtLg4EDEAQGj3KPaW9oPH3a6Bsdg7_oLqewbNvfPOfNrAs11EP6577CKkLLw7eVzTP4xifNsbfd5MI2_bwF0yglRWVB6yP2V3voqFWHE2D-TNxlksFc8rHrTcUDrefCLE/s320/SP500+Performance+2008.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="text-align: left;">Source: AllThingsAnalytics</span></td></tr>
</tbody></table>
With one-day returns of -5.27% and -2.37% in 2008 and 2012 respectively, President Obama is not much favored by financial markets. Now, one can argue that October 2008 was a terrible period for anyone to be elected as the president because of the ongoing crash in financial markets that led to the great recession (see side chart.) Nonetheless, markets also didn't like Obama's reelection (S&P 500 was down 2.37% following the election day) which leads to a status quo in Washington. Combine that with all the ongoing macro concerns including the Euro debt crisis and already unraveling fiscal cliff, investors have become very jittery in the past couple of days.<br />
<br />
Now, to overcome the short-term bias in financial market's reaction, let's review other period's returns (see table above.) There are plenty of interesting observations one can make. For example, under both of Clinton's (Democrat) presidencies, financial markets boomed with returns of 56% and 111% over the next 200 weeks since the election day. Eisenhower's (Republican) presidency came second with returns of 95% and 19%. Reagan era followed by Bush Sr's term also produced hefty gains for investors with returns of 28%, 56% and 49% under their terms. Again, there is no clear indication whether financial markets favored one party over the other during a president's term in the office but financial markets definitely fared well under a republican president prior to 2000.<br />
<br />
Bush Jr. (Republican) inherited dot-com crash, oversaw the biggest expansion in US public debt (see chart below) and observed the epic housing crisis of 2007-2008. Financial markets yielded returns of -22% and 13% during Bush's two terms presidency, pretty poor for a republican president who unleashed all the expansionary polices on US economy. Under Bush's 8 year presidency, US public debt doubled from $5.6 trillion to $10 trillion. Obama added almost the same level of debt in just 4 years and took US public debt from $10 trillion to $14.2 trillion by the end of 2011.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8BSahrc4iu5TZSdhzx1sOn46aEjaz2BOrHnAflVohpVOhWbsX5aC3HuAtKJh6ZOxCqS4k8TLO6Fgu_FRDGrWg4ZS02KQv1peoq2hnkAEMgVz4so1iqmmdPwfb55szRUeVsWC8S6fpofA/s1600/US+debt+and+debt+to+gdp.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8BSahrc4iu5TZSdhzx1sOn46aEjaz2BOrHnAflVohpVOhWbsX5aC3HuAtKJh6ZOxCqS4k8TLO6Fgu_FRDGrWg4ZS02KQv1peoq2hnkAEMgVz4so1iqmmdPwfb55szRUeVsWC8S6fpofA/s640/US+debt+and+debt+to+gdp.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: left;">Source: AllThingsAnalytics</td></tr>
</tbody></table>
<br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM7V7LOh9mHHQfyx_aazMuS0KU7Qc59uIz-RWDOmrL4HHzWEjFxqtz5jvDI5p4xhJVb6wYuUJS12WPHU16TzDhSI7-loTqNCULrX4sjDZuYbC9o3pcc4aPmOklq4vJvXXfAcX8HNcoBCI/s1600/US_Public_Debt_Ceiling_1981-2010.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="145" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM7V7LOh9mHHQfyx_aazMuS0KU7Qc59uIz-RWDOmrL4HHzWEjFxqtz5jvDI5p4xhJVb6wYuUJS12WPHU16TzDhSI7-loTqNCULrX4sjDZuYbC9o3pcc4aPmOklq4vJvXXfAcX8HNcoBCI/s200/US_Public_Debt_Ceiling_1981-2010.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: left;">From Wikipedia, click to expand</td></tr>
</tbody></table>
<br />
<br />
<br />
<br />
Are we living in times which have no historical precedence? It took 20 years for US public debt to rise from $1 trillion level to $5.5 trillion level (see side chart). It then just took 11 short years for US public debt to rise to $14 trillion level. From year 1980 to 2000, S&P 500 appreciated by 1276% (from 105 at the start of 1980 to 1455 at the start of 2000). Astonishing rise!!! Also astonishing is the fact that since 2000 till date, S&P 500 has been down -5%. Has the mammoth economic expansion of 1980s and 1990s run its course and now debt is the only route left to sustain US economy. Let's leave this discussion for another blog.<br />
<br />
<br />
Financial markets care less which party's candidate is elected for the white house and focus more on the economic policies that president will enact. All the rhetoric and party ideology does take a toll on financial markets though as evident in financial markets' immediate reaction similar to the one we are observing right now. Hopefully, the congress and the president will put the rhetoric aside and break the impasse on the already unraveling fiscal cliff.<br />
<br />
<i><span style="color: #a64d79;">This blog has benefited from discussions with <a href="http://www.linkedin.com/in/jedoe" target="_blank">Jens Doerpmund</a>, <a href="http://www.linkedin.com/in/ryanleask" target="_blank">Ryan Leask</a> and <a href="http://www.linkedin.com/in/rajaniaswani" target="_blank">Rajani Aswani</a> on this topic.</span></i><br />
<br />
<i style="color: #a64d79; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: small; line-height: 18px;">Disclaimer: All numbers are approximate and the underlying analysis is preliminary. This blog is not intended for offering any investment advice.</i><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com1tag:blogger.com,1999:blog-629090550108054777.post-46003454965698575992012-10-28T01:44:00.000-07:002012-10-28T23:06:09.775-07:00Apple, SAP & Hewlett-Packard: Not Just Numbers, Company's Vision, Strategy and Goals Also Matter For Investors (Part II)<div dir="ltr" style="text-align: left;" trbidi="on">
<i><span style="color: #c27ba0;"><span style="font-family: inherit;"><a href="http://allthingsbusinessanalytics.blogspot.com/2012/10/apple-sap-hewlett-packard-not-just.html">Part I</a> of </span><span style="font-family: inherit;">this two-part blog offered empirical evidence suggesting that few consistently outperforming technology companies (such as AAPL and GOOG) get valuation treatments that defy conventional wisdom. <a href="http://allthingsbusinessanalytics.blogspot.com/2012/10/apple-sap-hewlett-packard-not-just.html">Part I</a> </span>ended by introducing an investment approach that was based on three simple rules and suggested that management's effectiveness in articulating its corporate vision and goals and its trustworthiness also plays a critical role in winning investors' sentiment. </span></i><i><span style="color: #c27ba0;">Let's put each company through this test in part II of this blog and discuss the outcome.</span></i><br />
<br />
<div class="MsoNormal">
<b>First up, AAPL:</b> For AAPL, I can safely conclude that the
first two rules are securely in the bag.
Investors understand the company and its hugely popular products. It has successfully sailed with the wind for
the past decade and I might even argue that it brought fresh wind in the sails
of tablets and smart phone segments. But
when it comes to applying the third and final rule, i.e. investing in AAPL for the mid-to-long term, and
thus paying a reasonable multiple, investors are certainly hesitating to act. From investors’ point of view, the investment
decision boils down to following two points:</div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="text-indent: -0.25in;">AAPL gets fresh lease of life every year when it
upgrades its iLine (iPads, iPhones, iPods and Macs) of products;</span></li>
<li><span style="text-indent: -0.25in;">But other than this routine, AAPL management is highly secretive about its vision for the future of AAPL.</span></li>
</ul>
For AAPL investors, it is challenging to see beyond a one
year horizon. The investors are asking
larger questions to AAPL including: a) what
does AAPL want to be in 5 years and where will it be? b) Will AAPL dominate some market segments as
it does today, if so, what is that longer-term strategy? Until, AAPL addresses these questions and
clearly articulates its strategy and the goals tied to its strategy, it will be
hard to see why investors would apply SP500 like or higher multiples on
AAPL.<br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>Next up, ORCL: </b>For
ORCL, I would start by arguing that ORCL is suffering from a credibility
problem with the investors. Investors
get ORCL’s enterprise software and hardware business which is attractive and growing
at a secular rate. ORCL has accepted
that inorganic growth model (via acquisition) is the way to move its business
forward and stay current on the technology innovation front. Besides all this, its earlier position on cloud
technologies <a href="http://goo.gl/T2BmP">(calling it a fad)</a> and then
turning into a true cloud believer (with the acquisition of RightNow, Taleo and
its own investments) has sent <a href="http://goo.gl/Tvkqx">mixed messages to
investors.</a> <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
ORCL has done a poor job of laying out its long-term vision
for investors and investors are unhappy because they are unable to see a clear
path forward. Does ORCL want to be like
its big brethren IBM and package hardware, software, services and cloud infrastructure
together for its customers? What does
ORCL want to be? What are some of its
growth plays? ORCL has attempted to articulate
its vision to investors and analysts but the reduced trustworthiness and the past
delays in strategic investments have kept investors skeptical at best. ORCL needs to win the credibility back from
its investors and shy away from sending mixed messages to investors and its own
customers.<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>Next up, HPQ:</b> I don’t know where to begin with this
company. Let’s start at the very top,
the board. HPQ’s board has had major credibility issues for many years now because of the scandals and
terrible decisions that have resulted in billions of dollars of losses
for investors. <a href="http://goo.gl/wYkS1">The epic stumbles</a> such as the launch of Palm
based tablets/smart phones (and then the immediate pull out), public display of
flip-flopping decisions on spin-off for Personal Computer unit and then having three
CEOs at the helm of HPQ in less than three years has not pleased investors. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In addition, HPQ’s core businesses continue to <a href="http://goo.gl/sPN8s">suffer resulting in heavy losses</a> because it has been
slow to respond to the shift in technology spending to cloud and mobile
technologies. HPQ’s market cap has
dropped by more than 80% since peaking at approximately $120B in 2010. Investors have little to no confidence in HPQ
and are pricing in rapid erosion of its customer base and sales (which is reflected
in a low price/sales ratio of 0.23.)<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>Next up, GOOG:</b> GOOG has wide range of interests resulting in
a large array of investments including the investment in <a href="http://en.wikipedia.org/wiki/Google_driverless_car">driver-less cars</a>. Not all the projects GOOG has undertaken in
recent years have been positive NPV projects and as a result GOOG’s stock has
same P/E multiples as that of SP500.
GOOG wants to be a technology company and all the investments GOOG makes
have this common origin. This is a fact
but why investors are not comfortable with it? Is GOOG not effective at convincing investors that this approach is
right and will bear fruits?<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Is GOOG going to be a media company, or a mobile company, or
a hardware company, or an Internet bandwidth company, or a search company or an
enterprise software company or all of the above (i.e. a tech conglomerate)? Apparently, GOOG’s vision and roadmap are
not very clear to investors which is why GOOG had lackluster performance for
the first six months of 2012 prior to Q2’s earnings announcement. I believe that investors have adopted a wait
and watch approach on GOOG which is a mature company now but surrounds itself
with a high number of uncertainties.<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>Next up, IBM:</b> IBM is securely in the bag using the rules I
laid out in Part-I. By 2015, <a href="http://www.ibm.com/annualreport/2011/ghv/index.html">IBM will generate $20 in non-GAAP EPS</a> - this is IBM’s corporate goal for 2015. I believe that investors should love the
simplicity of IBM’s singular goal. IBM has done a nicejob in articulating its <a href="http://www.ibm.com/annualreport/2011/ghv/index.html">corporate goal for 2015 including the key growth plays that will drive IBM forward to its goal.</a> The key growth plays from IBM are emerging
markets, Analytics, Cloud and Smart Planet initiatives. IBM has also articulated that it will pursue
higher-margin opportunities (i.e. software) and use share repurchase programs
to boost EPS. IBM’s EPS in 2011 was
$13.4 which would have to rise by 50% in 4 years if IBM were to accomplish its
goal of producing $20 EPS by 2015. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Both AAPL and IBM are iconic and trusted brands. IBM has provided a clear vision and a path
forward but AAPL has not, therefore I am not surprised to see that both IBM and
AAPL received similar Trailing and Forward P/E multiples despite the fact that
AAPL’s earnings growth is nothing less than spectacular.<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>This brings me to the
last company I will discuss here,</b> <b>SAP</b>: Just
like IBM, SAP is also securely in the bag.
SAP is a global brand and plans to reach 1 billion people in an attempt to become a household name. I have found SAP to be a goals driven company
and it is taking all the necessary steps (both organic and inorganic growth
opportunities) to track towards these goals.
This is similar to IBM’s approach but more clearly spelled out. Here are the goals that SAP has laid out for 2015 <a href="http://goo.gl/UIDU6">on its corporate website</a>:<o:p></o:p></div>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="margin-left: auto; margin-right: auto;"><a href="http://goo.gl/UIDU6"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2vN-1plbdZr5D0Sg88lVFI3VVwOfQApfOlbh5BYDGyD6FWT8syuK8llGYz23G1CmZ1R0eMnx2qOG-F66DG6SzJj06BSuBWmq-KL7ph0CxPGysSMVggJFkv83OzkMwuqFMJTr5A07nQa0/s1600/SAP's+Corporate+Goals.png" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: left;"><b><a href="http://goo.gl/UIDU6">Source: SAP' Corporate Website</a></b></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="MsoNormal">
Additionally, just like IBM, SAP has also clearly <a href="http://goo.gl/UIDU6">articulated its growth strategy and the five market
categories</a> it plans to expand into.
These categories are: applications, analytics, mobile, database &
technology, and the cloud. SAP’s
management has not sent mixed messages to the market (unlike ORCL) since
sharing its vision and goals for the future and is gearing up to ride both the mobile
(with Sybase and Syclo acquisitions) and the cloud trends (with SuccessFactor
and Ariba acquisitions). <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
SAP is not the only <a href="http://goo.gl/q9OOm">company
growing its revenues at a double digit rate for more than 10 quarters</a>, but
it is logging that performance on a consistent basis and tracking towards its 2015
corporate goals. Investors are cheering
this steady performance and have bid up the stock by more than 35% YTD in 2012,
higher than every other stock in the group except AAPL (see the graphics below):<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG3dkX1WKGJVD7jsLJFDYx08_2zQnCMf7KmOvCyAsAi-srrs2n0eBvKGu6tAxv6ZEdiDfkXqSKGgO5SrpxGXc2PyNgEs_aK7W8mtWBitgZf5crd5CHfzfo2xk_ykQaeFI2L6jZOh8SpQ8/s1600/SAP+aganist+the+rest.png" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG3dkX1WKGJVD7jsLJFDYx08_2zQnCMf7KmOvCyAsAi-srrs2n0eBvKGu6tAxv6ZEdiDfkXqSKGgO5SrpxGXc2PyNgEs_aK7W8mtWBitgZf5crd5CHfzfo2xk_ykQaeFI2L6jZOh8SpQ8/s640/SAP+aganist+the+rest.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: left;"><b>Source: Google Finance</b></td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Majority of the public companies, if not all, develop a
vision, lay out a clear strategy and announce goals to realize that
vision. But some do a better job than others in articulating and sharing this on a
regular basis with their investors. Companies that clearly articulate their vision and strategy
to all their constituents including customers, employees, partners and investors earn
respect almost instantaneously. And when
these companies publicly track progress against their vision, they benefit
tremendously by winning the trust and credibility from each and every constituent
(including investors) allowing them to attract top talent, new customers, new partners and new markets to help them grow their business. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<i><span style="color: #a64d79;">This blog has benefited from the discussions with my friends and colleagues <a href="http://www.linkedin.com/in/jedoe" target="_blank">Jens Doerpmund</a>, <a href="http://www.linkedin.com/in/ryanleask" target="_blank">Ryan Leask</a> and <a href="http://www.linkedin.com/in/rajaniaswani" target="_blank">Rajani Aswani</a> on this topic.</span></i><br />
<span style="color: #a64d79;"><br /></span><span style="color: #a64d79;"><i>Disclaimer: All numbers are approximate </i><i>and the underlying analysis is preliminary</i><i>. This blog is not intended for offering any investment advice. SAP is my employer but all the views and opinions expressed here are solely mine.</i></span><br />
<div class="MsoNormal">
<o:p></o:p></div>
</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com3tag:blogger.com,1999:blog-629090550108054777.post-4813551120472133452012-10-28T01:34:00.000-07:002012-10-28T22:27:00.322-07:00Apple, SAP & Hewlett-Packard: Not Just Numbers, Company's Vision, Strategy and Goals Also Matter For Investors (Part I)<div dir="ltr" style="text-align: left;" trbidi="on">
<i style="color: #c27ba0; font-family: inherit;">In
this two-part blog, I will share my view points on why investors price certain stocks
at higher or lower multiples against market defying conventional wisdom
which suggests that higher (lower) growth stocks should fetch higher (lower) multiples than that of the market. </i><br />
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="color: #c27ba0;"><i><br /></i></span></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><span style="color: #c27ba0;"><i>In part I of this two-part blog, I offer empirical evidence suggesting that few consistently outperforming technology companies get valuation treatments that defy conventional wisdom. Faster growing companies get lower multiples while slow and steadily growing companies get higher multiples. </i></span></span></div>
<div style="text-align: left;">
<span style="color: #c27ba0; font-family: inherit;"><i><br /></i></span></div>
<div style="text-align: left;">
<span style="color: #c27ba0; font-family: inherit;"><i>In <a href="http://allthingsbusinessanalytics.blogspot.com/2012/10/apple-sap-hewlett-packard-not-just_28.html">part II</a> of this blog, I will conclude by suggesting that a clearly articulated long term strategy along with measurable corporate goals play an equally important role together with the company’s financial track record and market beating performance in winning investors' heart (and getting higher multiples.) </i></span></div>
<div style="text-align: left;">
<span style="color: #c27ba0; font-family: inherit;"><i><br /></i></span></div>
<div style="text-align: left;">
<span style="color: #c27ba0; font-family: inherit;"><i>To help me illustrate my view points, I assembled a small group of traditional tech companies including Apple (Ticker: AAPL), Oracle (Ticker: ORCL), Hewlett-Packard (Ticker: HPQ), Microsoft (Ticker: MSFT), IBM (Ticker: IBM), SAP (Ticker: SAP), and Google (Ticker: GOOG). I selected S&P 500 (SP500) as the market. </i></span></div>
<div style="text-align: left;">
<span style="color: #a64d79; font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8q5A9CXXJkEzqtAkDPpUfvk3pbv2QHT-33GMwxv0FhyphenhyphengLYMfWHjsUyvXZ25_wqFJyhdVkjMdDjStaoBZOGC77AOkclD9R1ZScobCV-DgFCKROZvS0M2eMb4J80SENcLBuD1w7otVFB5U/s1600/SP-Multiples.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8q5A9CXXJkEzqtAkDPpUfvk3pbv2QHT-33GMwxv0FhyphenhyphengLYMfWHjsUyvXZ25_wqFJyhdVkjMdDjStaoBZOGC77AOkclD9R1ZScobCV-DgFCKROZvS0M2eMb4J80SENcLBuD1w7otVFB5U/s400/SP-Multiples.png" width="400" /></a></div>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5QjNIfpY-m64kBl62516YdND3jlrQUvS5z163UWdzZbCsieUKdfPvARGom_wIpTy4jxE9ZzEztQHZuLyZcKdq9M6rvher22tYfBYDmiU03-_9__tQp_ZeaNg_R77SqoxrbMl-5T5uSUk/s1600/AAPL-SP-Earngings-Growth.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5QjNIfpY-m64kBl62516YdND3jlrQUvS5z163UWdzZbCsieUKdfPvARGom_wIpTy4jxE9ZzEztQHZuLyZcKdq9M6rvher22tYfBYDmiU03-_9__tQp_ZeaNg_R77SqoxrbMl-5T5uSUk/s320/AAPL-SP-Earngings-Growth.png" width="320" /></a>As of Oct 19, SP500’s Trailing P/E and estimates for
Forward P/E were 17 and 13.8 respectively (see the side table.) AAPL’s 52-weeks return of 50.5% has markedly outpaced
the same period return of 9.95% for SP500. In addition, AAPL’s earnings growth has substantively
outpaced that of SP 500 for five straight years (see the side chart). So I
started to wonder why AAPL’s Trailing and Forward PE multiples of 14.3 and 11.4
trail that of S&P 500 (see the table below). Is there a crisis looming for AAPL that could
be bigger in magnitude and impact than those faced by the financial markets including the <a href="http://blogs.wsj.com/eurocrisis/2012/10/26/europe-gears-up-for-bond-sales-amid-market-calm/">never-ending
debt crisis in Europe</a>, a <a href="http://www.guardian.co.uk/business/2012/oct/08/world-bank-warns-on-china-slowdown">worsening
slowdown in China</a> and an already <a href="http://www.washingtonpost.com/blogs/thinktanked/wp/2012/10/26/fiscal-cliff-already-taking-jobs-why-colin-powell-endorsed-obama-am-briefing/">unraveling
fiscal cliff in the US</a>. So, why are investors not pricing AAPL using the multiples of SP500 at the minimum?<br />
<br />
<b>Consider SAP:</b> In a peer group comprising of four enterprise software tech companies - SAP, IBM, ORCL and MSFT, SAP has the highest Trailing P/E and the highest Price/Sales ratio (see the table below). SAP’s Forward P/E of 19.7 is 9 points higher than that of ORCL, 11 points higher than that of MSFT and 8 points higher than that of IBM. In
addition, SAP’s Forward and Trailing P/E multiples are also higher than that of
SP500! So, why
investors are willing to price SAP stock at higher multiples than the others in
its peer group including the SP500. Interestingly, SAP’s multiples are also higher
than that of AAPL. </div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6FTP5j2xfJHi340KdXwMZo_9Ncd-DKsuIvahwSSJPDtUVJ7MVF2ae3Qcpvp3u8Hb4vN9yBSemMEhVj4Yd2_5K3YYOMMCTrOXSwu8NCYccz9FryCyl-r4CbsNH2yKHy2JYj3P2cAU4OJg/s1600/KeyStats.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6FTP5j2xfJHi340KdXwMZo_9Ncd-DKsuIvahwSSJPDtUVJ7MVF2ae3Qcpvp3u8Hb4vN9yBSemMEhVj4Yd2_5K3YYOMMCTrOXSwu8NCYccz9FryCyl-r4CbsNH2yKHy2JYj3P2cAU4OJg/s640/KeyStats.png" width="640" /></a></div>
<br /></div>
<div class="MsoNormal">
<b>Finally, let’s drop HPQ into the mix:</b> HPQ’s TTM revenue was $61.9 per share (see the table above). Its stock is trading at a meager P/S multiple of .2x and has a Forward P/E multiple of just 4. This is not hard to explain as there is no love left between HPQ and its investors who have suffered heavy losses in HPQ which has dropped almost 50% just this year alone. In addition, at such lower multiples, investors are definitely pricing in a catastrophic scenario.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-left: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj21oAVILDfu_PABzxdmdDy7lptotzZVBJqUtrduIM2TPzeIuRo6QG0UTFpcpFhav3M8JCzmxLqzBHEJ7542jPWW1ZYpYLxb-AHRfqjmVXIPKu0nZR7Xk43HJiamXIM2maeTVnujdYgFI/s1600/All+Company+Growth+Rates.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj21oAVILDfu_PABzxdmdDy7lptotzZVBJqUtrduIM2TPzeIuRo6QG0UTFpcpFhav3M8JCzmxLqzBHEJ7542jPWW1ZYpYLxb-AHRfqjmVXIPKu0nZR7Xk43HJiamXIM2maeTVnujdYgFI/s400/All+Company+Growth+Rates.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: left;"><b>Source: Morning Star and Yahoo Finance</b></td></tr>
</tbody></table>
<div class="MsoNormal">
For all these companies, I assembled last 5 years income statements and I reviewed their revenue growth rates (see the side table). Nothing jumped out that could have suggested why AAPL should have lower multiples than the SP500, GOOG or SAP. Clearly, there is something else at play which traditional valuation approach is not explaining.</div>
<div>
<br /></div>
<br />
<div class="MsoNormal">
Investors’ actions in HPQ, AAPL, SAP and its peers can be
justified by applying following three simple rules of investment:<span style="font-size: 7pt; text-indent: -0.5in;"> </span></div>
<div class="MsoNormal">
</div>
<ol style="text-align: left;">
<li><span style="text-indent: -0.5in;">invest in companies you know, understand and
believe;</span></li>
<li><span style="font-size: 7pt; text-indent: -0.5in;"> </span><span style="text-indent: -0.5in;">invest in companies which are going to persist,
pursue positive NPV projects and successfully sail with the wind (market
trends); &</span></li>
<li><span style="text-indent: -0.5in;">invest in companies for mid-long term.</span></li>
</ol>
Investors closely scrutinize, more than one would desire, the
company management’s effectiveness in articulating its future and corporate goals
and the trustworthiness. This is where
the “believe” part in the first rule comes in. In part II of this blog, I will apply this set of principles to few companies in this group and discuss the outcome.<br />
<div class="MsoNormal">
<o:p></o:p></div>
<br />
<i><span style="color: #a64d79;">This blog has benefited from the discussions with my friends and colleagues <a href="http://www.linkedin.com/in/jedoe" target="_blank">Jens Doerpmund</a>, <a href="http://www.linkedin.com/in/ryanleask" target="_blank">Ryan Leask</a> and <a href="http://www.linkedin.com/in/rajaniaswani" target="_blank">Rajani Aswani</a> on this topic.</span></i><br />
<span style="color: #a64d79;"><br /></span>
<span style="color: #a64d79;"><i>Disclaimer: All numbers are approximate </i><i>and the underlying analysis is preliminary</i><i>. This blog is not intended for offering any investment advice. SAP is my employer but all the views and opinions expressed here are solely mine.</i></span></div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com93tag:blogger.com,1999:blog-629090550108054777.post-6114068284702480182012-10-11T21:28:00.001-07:002012-10-11T22:23:28.690-07:00Preparing for Workday (WDAY)’s IPO: Betting on the Future <div dir="ltr" style="text-align: left;" trbidi="on">
<i>My esteemed colleague Ryan Leask (<a href="http://goo.gl/KDUSc">LinkedIn Profile</a>) and I have co-authored this three-part blog offering our insights on Workday's IPO.</i><br />
<br />
<div class="MsoNormal">
<b><i><span style="font-family: inherit;">This is part 3 in our blog on Workday’s IPO. </span></i><i><span style="font-family: inherit;"><a href="http://goo.gl/PiMQl">Part 1</a> looked at Workday vs. Salesforce. </span></i><i><a href="http://allthingsbusinessanalytics.blogspot.com/2012/10/preparing-for-workday-wdays-ipo-workday_11.html">Part 2</a> looked at Workday vs. SFSF, TLEO, NOW and CRM</i></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<o:p> </o:p>To try and summarize all of the analysis from the first and
second blog posts:</div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li><span style="text-indent: -0.25in;">Workday’s revenue numbers and growth are
fantastic.</span></li>
<li><span style="text-indent: -0.25in;">But their costs are extremely high.</span><span style="text-indent: -0.25in;"> </span><span style="text-indent: -0.25in;">While we understand the focus on </span><b style="text-indent: -0.25in;">“growth now, profits later”</b><span style="text-indent: -0.25in;">, the costs
are still pretty extreme. </span></li>
<li><span style="text-indent: -0.25in;">In comparison to a few other companies, we did
find that SuccessFactors operations had a somewhat similar cost structure to
Workday, so they aren’t alone in their high costs. </span></li>
<li><span style="text-indent: -0.25in;">In general, Workday’s costs and profit margins
are heading in the right direction as they grow, so if we give them the benefit
of the doubt that they continue in this direction in the future, they should be
able to get more in line with other SaaS companies.</span></li>
<li><span style="text-indent: -0.25in;">We would not expect profitability in the next several
years (Workday states as such in the S-1)</span></li>
</ul>
So the purpose of this blog is not to reiterate Workday’s
numbers, but is instead to offer our own conclusions from staring at this data
for a while and working in this industry.<br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Prior to going into the S-1 details, we thought Workday would
be a slam dunk, and our only concern was the overall macro environment they are
IPO’ing into. However, looking at their
surprisingly high costs, we think it is going to take quite some time before
Workday becomes profitable, and we think these costs indicate Workday might be
betting the house on moving itself outside of the HCM domain. Workday did
mention this as a risk in their S-1, in that they don’t have proven success
outside of the HCM domain yet, and only 10% of their customers (i.e. around 30
customers) have adopted their financial module. Looking at these numbers, we think this point
may have been understated in the S-1.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In this sense, Workday’s IPO feels a lot more like a late-stage
VC round than an IPO to us. It seems they
are almost looking for money to try and find product-market fit for their new Finance
product line. If they had chosen to sit
back and ride their HCM business harder instead of investing into the finance
area, the figures we’re seeing would be
a lot more attractive.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
But, it looks to us like they are really betting big to make
longer term investments (which we are a big fan of). A prime example of this is their dual-class
structure of its common share. We love
this tactical move which allows Workday to build a great company and not get
dragged into a bitter take-over fight (cough, Oracle-PeopleSoft, cough).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Going into its IPO, Salesforce had multiples of 11.6 and 6.3
on TTM and FTM revenues respectively. It
went on to return more than 900% over the next 8 years! Workday has TTM and FTM multiples of 31 and
14 going into IPO, so it is hard to believe that it will yield a return similar
to Salesforce, and we’re anticipating returns more like those SuccessFactors
and Taleo produced (at least over the next several years). In hindsight, Salesforce’s IPO was a steal. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
What this IPO comes down to for us, is that you have to
decide for yourself whether Workday is going to nail the Finance market like
they did HCM… or not. If yes, it’s a
great buy. If not, they are going to
continue plowing through the cash the HCM business generates for a lot longer. It certainly feels like Workday is carrying
more risk than we would have first thought, but it is a great company with
great historical growth and even better prospects for the future growth. Perhaps the timing of this IPO is more a
reflection of the uncertainty at the macro level, as this might possibly be
their last chance for a while if the fiscal cliff kicks in?<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i>Disclaimer: All
numbers are approximate. We are not
offering any investment advice and all the analysis we have performed to
support our blogs is preliminary.<o:p></o:p></i></div>
</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com0tag:blogger.com,1999:blog-629090550108054777.post-7960349896847622182012-10-11T21:13:00.000-07:002012-10-11T21:31:59.099-07:00Preparing for Workday (WDAY)’s IPO: Workday vs. SuccessFactors, Taleo, ServiceNow and Salesforce.com<div dir="ltr" style="text-align: left;" trbidi="on">
<i>My esteemed colleague Ryan Leask (<a href="http://goo.gl/KDUSc">LinkedIn Profile</a>) and I have co-authored this three-part blog offering our insights on Workday's IPO.</i><br />
<i><br /></i>
<div class="MsoNormal">
<b><i><span style="font-family: inherit;">This is part 2 in our blog on Workday’s IPO. </span></i><i><span style="font-family: inherit;"><a href="http://goo.gl/PiMQl">Part 1</a> looked at Workday vs. Salesforce. </span></i><i><span style="font-family: inherit;">And <a href="http://goo.gl/fXxH3">the third and final part</a> provides an overall summary.</span></i></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To quickly recap the first blog in our three-part series, we
discovered WDAY’s cost structure was significantly higher than we anticipated
when we looked at their S-1. In a quest
to understand this, we looked at Workday (Ticker: WDAY) against SalesForce.com
(Ticker: CRM), and discovered some major differences in their business
models. As a result, in this blog, we
wanted to take some other sample companies to compare to WDAY, in the hopes of
finding a company that might show some more similarities.</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
As a point of note, we will continue to leave the CRM
figures in the information presented here for comparison purposes. Our sample of new companies are SuccessFactors
(Ticker: SFSF) and Taleo (Ticker: TLEO), both HCM SaaS companies (perhaps our
best candidates for comparison), as well as ServiceNow (Ticker: NOW) (although
they are in a different space, they are an cloud based enterprise software
company which also IPO’d in 2012, so we thought it could just be an interesting
comparison point). And as a disclaimer,
note that these comparisons are not precise. For example, WDAY is going to IPO about 9
months after the last full year of data is available, so their IPO price as an
example, may be more based on this year’s results rather than last year's. With
that said, we are just looking for generalities and trends, so an imprecise
comparison is still ok. So let’s jump
right in.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
We assembled the following table by pulling the data from
each company’s S-1 to provide a perspective on WDAY’s valuation: <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGtkRGrfkqbRKvRF4RsUApp9np1U0lywWHwFRZcKbvrqUQAcJrhjxeDn5wyqgG-KMkJnJjlFi3aHc3bX3g2OGUKIbvBRjkxWcqk-BvuNeQH1Kft0WOsSHMvS84Kv66-o4Gkh1sNr4GAGk/s1600/pt-2-wday-vs-all-valuation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGtkRGrfkqbRKvRF4RsUApp9np1U0lywWHwFRZcKbvrqUQAcJrhjxeDn5wyqgG-KMkJnJjlFi3aHc3bX3g2OGUKIbvBRjkxWcqk-BvuNeQH1Kft0WOsSHMvS84Kv66-o4Gkh1sNr4GAGk/s640/pt-2-wday-vs-all-valuation.png" width="640" /></a></div>
<div class="MsoNormal">
WDAY is attempting to raise more capital than anyone else
did, and they are asking a 31x multiple on TTM revenues. This is by far the highest in this set, but
when compared on FTM, it’s 14x multiple is a bit closer to what we would expect
to see (albeit still rather high). So it
does not appear WDAY is a bargain buy like CRM was (at 6x FTM multiple).</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Here also is the same figure from the first blog, extended for
our new comparison companies, showing some key metrics of the last fiscal year
of information before the IPO:<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm-q3KVrUnQ9WM-IU7QhrO2L8vBGyVfmvVTMtmOOd_o6tvMXua4c6HIIeUf-BgU1X5vzq0WDkp8u314SnbL5fK9HwWC0om-P2-GDPyEjMFc3f0yvdGXUddxj9VadpfE0eUUOMq-dRhxLM/s1600/pt-2-wday-vs-all.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm-q3KVrUnQ9WM-IU7QhrO2L8vBGyVfmvVTMtmOOd_o6tvMXua4c6HIIeUf-BgU1X5vzq0WDkp8u314SnbL5fK9HwWC0om-P2-GDPyEjMFc3f0yvdGXUddxj9VadpfE0eUUOMq-dRhxLM/s640/pt-2-wday-vs-all.png" width="640" /></a></div>
<div class="MsoNormal">
Some quick eyeballing of the numbers tells us that WDAY:</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
</div>
<ul style="text-align: left;">
<li><span style="text-indent: -0.25in;">has lot more employees than any other company
before going IPO;</span></li>
<li><span style="text-indent: -0.25in;">does way more consulting services business than
the comparisons;</span></li>
<li><span style="text-indent: -0.25in;">has a lot less customers than the comparisons,
except for Taleo who very similar numbers;</span></li>
<li><span style="text-indent: -0.25in;">generates MUCH more revenue per customer than
their peer group. Even if we exclude the
services revenue from WDAY, they are around $272k per customer, which is
remarkably higher than any of the comparison group; and</span></li>
<li><span style="text-indent: -0.25in;">spends massively more on R&D cost (as a
percent of its revenue) than the others.</span></li>
</ul>
So let’s look at a few of these metrics in more detail
(note: “Year 3” in this charts represents the last full year of earnings before
their IPO, “Year 2” represents the year before that, etc).<br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>First up is revenue
growth</b>. After all, investors love
growth companies and the “multiples” game hinges on future growth. The charts below show growth rates of our
companies, with revenues in $m on the primary Y-axis, and YoY growth rates on
the secondary Y-axis.<o:p></o:p></div>
<div class="MsoNormal">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_1" o:spid="_x0000_i1029" type="#_x0000_t75" style='width:468pt;
height:157.5pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\i827456\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8kokDc-XOqdNxiRIKocFb1Mvv26HoCRg92lF0W0imeat5e1lH3RwgjSxDXVbe5Y0Io5dSH74_nI0hKixTP6IhcvB50PGt8mNd0l1-EgFX-AlB41ybA-9U7ljf0dJP2gpiaQe4U63vvII/s1600/pt2-wday-vs-growth.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8kokDc-XOqdNxiRIKocFb1Mvv26HoCRg92lF0W0imeat5e1lH3RwgjSxDXVbe5Y0Io5dSH74_nI0hKixTP6IhcvB50PGt8mNd0l1-EgFX-AlB41ybA-9U7ljf0dJP2gpiaQe4U63vvII/s640/pt2-wday-vs-growth.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVKuVeWDmuqxaahUs0W1JHRWuTkKcajtW-w7foWznln9wjKpxCaK6HRjphQD2pIBgtAuL2UGByq86XoVwtYSoQBc67DKNX0umJtIezplA8C59-SPEhHHCEP-wP4dMkJLyuJOWAR1oIYPg/s1600/pt2-wday-vs-growth-table.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVKuVeWDmuqxaahUs0W1JHRWuTkKcajtW-w7foWznln9wjKpxCaK6HRjphQD2pIBgtAuL2UGByq86XoVwtYSoQBc67DKNX0umJtIezplA8C59-SPEhHHCEP-wP4dMkJLyuJOWAR1oIYPg/s400/pt2-wday-vs-growth-table.png" width="400" /></a></div>
<div class="MsoNormal">
<o:p> </o:p>Nothing significant jumps out here, as all the companies in
our universe had strong growth before going IPO except TLEO (who also had the
second lowest revenue of the group too, so this is not an issue with growth
rates on large numbers). WDAY enjoys some
of the strongest growth rates, which is all the more impressive given they also
have the largest revenue numbers of the comparison group too. Net net, WDAY is looking very strong in terms
of revenue growth.</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Second up is the cost
of revenues </b>(the cost to earn a dollar of revenue): Investors over the years have come to accept
that the cloud business is a different beast where it takes years to become
profitable, but it’s still important to keep the cost of sales in-check.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCA8B3BfBsd7tmXdeQd9VQ1IvND3D4XzwF7aLWz88TOi0UkQ_Wesz8ynlXwobaqse0NAdsd3npFVhSt251KvsTz_b3EmsisjbWcEOawRdUJu_I05ZlsDV4fOmo6eLJ06wHoE6hr4Q1z4k/s1600/pt2-wday-vs-COR.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="464" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCA8B3BfBsd7tmXdeQd9VQ1IvND3D4XzwF7aLWz88TOi0UkQ_Wesz8ynlXwobaqse0NAdsd3npFVhSt251KvsTz_b3EmsisjbWcEOawRdUJu_I05ZlsDV4fOmo6eLJ06wHoE6hr4Q1z4k/s640/pt2-wday-vs-COR.png" width="640" /></a></div>
<div>
Most companies generally show signs of getting economies of
scale as the company grows. The notable
points in this chart are how much more efficient CRM is compared to the rest,
as well the fact that WDAY has yet to reach an efficient model. So while there is some issues with how high WDAY’s
cost of revenues are, we can try and give them the benefit of the doubt that
this will come down over the next few years as it is at least trending in the
right direction.</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>Next up is the
operating expense and margins</b>:
Investors would like to see a stable cost-structure expanding in sync
with growth in revenues. Anything out of
whack will raise concerns.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWjoqYChD87ewQaEg-oAHgTX2PExLPUMxk5Ir4vz7MvuJGyo0oFm0SAENHztFOuZsVFrau_fYQwaeMgB6y9ZJmDpI8A-7fDFx_u-l4McQYq3DcBtVh2VSPxIvqPVBkUHpxM_tvQh_7q1I/s1600/pt2-wday-vs-OE.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="464" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWjoqYChD87ewQaEg-oAHgTX2PExLPUMxk5Ir4vz7MvuJGyo0oFm0SAENHztFOuZsVFrau_fYQwaeMgB6y9ZJmDpI8A-7fDFx_u-l4McQYq3DcBtVh2VSPxIvqPVBkUHpxM_tvQh_7q1I/s640/pt2-wday-vs-OE.png" width="640" /></a></div>
<div>
As expected, the SaaS companies here, and perhaps more
generally any startup focusing on growth, have operating expenses greater than
revenues. Interestingly, both SFSF and
WDAY seem to have extremely high cost structures. We were glad to find some company for WDAY on
this, as we were really beginning to wonder where these guys are spending so
much money. In fact, at least WDAY has
consistently been getting the ratio headed in the right direction, unlike SFSF
whose Year 3 figures actually started increasing again relative to Year 2. Again, WDAY is not at the point of having
reached economies of scale, so we have to give them the benefit of the doubt
that they will get there as things are heading in the right direction.</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
<b>All right, last up are
net profit margins: </b>We are expecting
to see losses from startups in their growth phase as they put every dollar earned
back into the company, focusing on building a great company for a long haul. But we want to look for the size of the losses
and overall directionality too.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp4QKab-seB6bbY-kLsqYe0bchhjQHWUu6EXXw7Nx_m1UBx6gMWru9MdSNKhDca1Y1Tu_EYDFuRHYOtrRPw-dwcN9KrY6Cu4ycgWt70GW6ciXG2TjZmXbsd740GJAKjX0YrEvHjqFmArg/s1600/pt2-wday-vs-NPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="417" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp4QKab-seB6bbY-kLsqYe0bchhjQHWUu6EXXw7Nx_m1UBx6gMWru9MdSNKhDca1Y1Tu_EYDFuRHYOtrRPw-dwcN9KrY6Cu4ycgWt70GW6ciXG2TjZmXbsd740GJAKjX0YrEvHjqFmArg/s640/pt2-wday-vs-NPM.png" width="640" /></a></div>
<div>
Another very similar pattern to operating expenses. WDAY is suffering the heaviest losses of the
group, but they are shrinking relative to the size of revenues (but increasing
in absolute terms). We would have liked
to have seen losses also shrinking in absolute terms too though. WDAY should eventually have profits heading
in the right direction once their recurring subscription revenues are a little
larger, along with the economies of scale benefits as they start getting more
customers. Again, WDAY has found a
friend in SFSF, showing that the scale of their losses is not unprecedented.</div>
<div>
<br /></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
These comparisons don’t really paint the best picture for WDAY. Not only are they asking the highest
multiples off of revenue, but their cost structure is one of the highest of the
comparison companies, and a very large chunk of their revenue is coming from
services not license revenue (which has much lower margins). However, in terms of directionality,
everything does look promising for WDAY in the future. We will try and
summarize our overall conclusions in our third and final blog post of the
series.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i>Disclaimer: All
numbers are approximate. We are not offering
any investment advice and all the analysis we have performed to support our
blogs is preliminary.<o:p></o:p></i></div>
</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com4tag:blogger.com,1999:blog-629090550108054777.post-24718981806794998832012-10-11T20:06:00.000-07:002012-10-11T21:31:11.706-07:00Preparing for Workday (WDAY)’s IPO: Workday vs. Salesforce.com<div dir="ltr" style="text-align: left;" trbidi="on">
<i><span style="font-family: inherit;">My esteemed colleague Ryan Leask (<a href="http://goo.gl/KDUSc">LinkedIn Profile</a>) and I have co-authored this three-part blog offering our insights on Workday's IPO. </span></i><br />
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="font-family: inherit;"><br /></span></i></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<b><i><span style="font-family: inherit;">This is part 1 in our blog on Workday’s IPO. </span></i><i><span style="font-family: inherit;"><a href="http://goo.gl/pVeld">Part 2</a> looks at how Workday compares to SFSF, TLEO, NOW and CRM. </span></i><i><span style="font-family: inherit;">And <a href="http://goo.gl/fXxH3">the third and final part</a> provides an overall summary.</span></i></b></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;">Workday (Ticker: WDAY), a cloud based provider of HCM and
other enterprise software, is going to IPO tomorrow. As in typical Silicon Valley fashion, not
that many people are discussing it because it’s not a consumer software
company. But for us in the enterprise
software world, this is absolutely one to watch!<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">We’ve known Workday has been on a tear for a while, so as we
looked through their S-1, their growth didn’t come as a big surprise to
us. That’s not to belittle their
accomplishments. It was an amazing feat by all accounts, and they achieved it
all right through the heart of the Great Recession. Spectacular performance! However, the thing that caught us a little
off-guard was their expenses. We wanted to take a deeper look at their numbers,
and compare it to other cloud enterprise companies to see how their figures
stacked up.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Of course, our analysis began with comparing Workday to
Salesforce.com (Ticker: CRM). If you invested
in CRM on opening day and held it all the way till date, you would be sitting
pretty on a 900% ROI over ~9 years. Not
too shabby. So how does Workday compare?<o:p></o:p></span><br />
<span style="font-family: inherit;"><br /></span>
The figure below highlights a few key metrics. The WDAY figures are for their year ending Jan 31, 2012 from their S-1. The CRM column represents the data in Salesforce.com’s S-1 document, however, since CRM was only ~5 years old when it IPO’d in 2004, and WDAY is already 7 years old, we added an extra set of figures for CRM at their 7 year mark too (CRM@7), and use this as the comparison point for this blog.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHWYAj7iq2U6S7KvKtC-g8T_5uf-ldbjL_bMW5HnYk_B6_DjKXSjCTQTcPRQOR5Q0rpV-c1f_FrKVtyBpfr4vckkNACOvTBYpg2plZqb4J_fmXmUCncMcQkbVUI75LYRY65IOhF7Uo01E/s1600/part1-wday+vs.+salesforce.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHWYAj7iq2U6S7KvKtC-g8T_5uf-ldbjL_bMW5HnYk_B6_DjKXSjCTQTcPRQOR5Q0rpV-c1f_FrKVtyBpfr4vckkNACOvTBYpg2plZqb4J_fmXmUCncMcQkbVUI75LYRY65IOhF7Uo01E/s1600/part1-wday+vs.+salesforce.png" /></a></div>
<span style="font-family: inherit;">You can see by all accounts, WDAY is significantly trailing
CRM@7 years. WDAY’s revenues are 43% of
CRM@7’s revenues (134m vs. 310m), yet Workday’s costs are 73% of CRM@7’s (213m vs.
290m). That’s a big discrepancy. Where are these costs coming from?</span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Well, Workday had 1096 employees to CRM@7’s 1304 (i.e.
Workday had 84% of CRM@7’s number of employees to produce 43% of their revenue,
yet still incur 73% of their costs). That
means WDAY saw $122k rev per employee vs. CRM@7’s $238k rev per employee, so nearly
a 2x favor to CRM@7.</span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">So it’s clear, WDAY is operating with a different model to
CRM. This led us to take two follow-up
steps:</span><br />
<ol style="text-align: left;">
<li><span style="font-family: inherit; text-indent: -0.25in;">Compare WDAY to some other companies, to see if
we could find any other similarities. This will be the second part of our blog.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">Analyze “why” WDAY’s figures are so different to
CRM’s. Yes, there is the HCM vs. CRM difference, but prior to going through the
S-1, we would not have expected to see big differences between the companies. </span></li>
</ol>
<span style="font-family: inherit; text-indent: -0.25in;">
</span><span style="font-family: inherit; text-indent: -0.25in;">The rest of this blog post will address our theory on the
second question of “why” the two company’s figures are so different. So here we offer our some of our thoughts on
this:</span></div>
<div class="MsoNormal">
<ol style="text-align: left;">
<li><b style="font-family: inherit; text-indent: -0.25in;"><span style="font-weight: normal;"> </span></b><b style="font-family: inherit; text-indent: -0.25in;">WDAY is Selling to Large Enterprises</b></li>
<ul><a href="http://www.blogger.com/blogger.g?blogID=629090550108054777" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>
<li><span style="font-family: inherit; text-indent: -0.25in;">Workday has only 326 customers after 7
years. CRM@7 by contrast had over 20,000
customers around the same time. So yes CRM@7
had 2.3x WDAY’s revenue, but they also had 63x the customers.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">WDAY’s Rev/Customers amounted to $412k. CRM@7’s Rev/Customers was $15k. Clearly, WDAY is selling much more to larger
companies than CRM did.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">WDAY does a lot more services business as well,
but even if you exclude it (34% of rev), it would still give you a figure of
$272k/customer… so way higher license rev per customer than CRM.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">WDAY over the years had made news of big account
wins (Flextronics & Chiquita come to mind), so we knew they were successful
in LE’s. However, we assumed they were also getting a lot more traction in the
SME space too, which appears not to be the case.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">As per WDAY’s S-1, the figure of 326 customers
does exclude SME’s which were bought in from a reseller. But given we didn’t
see any explanation of the figures in any more detail, we would assume that the
number of SME’s & the revenue they bring in is not material.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">Selling basically exclusively to large companies
also explains why WDAY’s services figures are so high, at 34% of revs. This is higher than we would have
expected/liked to have seen from a SaaS company.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">WDAY mentions customization as a risk: Workday’s
customers often want customization (but they don’t support adding custom fields
or functions), and big companies always want customization (in our experience).
However, one point that doesn’t add up
about this: what are all the services for if Workday doesn’t allow
customization? It would be very
interesting to know what the average implementation project time is for Workday
customers – we’re guessing it might be a lot higher than other SaaS products.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">Another consequence of selling to the big guys
is that you will definitely end up with longer sales cycles. Yes, Sales & Marketing costs are still 52%
of Rev’s, but this is in line with other SaaS companies. Given that they kept this in-line despite the
longer sales cycles, this makes the S&M figure seem more impressive.</span></li>
</ul>
<li><b style="font-family: inherit; text-indent: -0.25in;">Investing For the Future</b></li>
<ul>
<li><span style="font-family: inherit; text-indent: -0.25in;">Workday did state in their S-1 that they are
trying to expand out from HCM now into Finance. This is definitely going to
require a serious commitment in R&D. Clearly its early stages for them, with only
10% of their customer base (roughly 30 customers) having adopted their finance
component so far.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">The R&D costs for WDAY were $62m vs. $23m
for CRM at their 7 year mark. That means CRM produced 2.3x WDAY’s Rev, while
spending only about 0.37x of the R&D cost.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">However, we aren’t convinced that just one module
(Finance) would be sufficient to account for this R&D. Our best guess is that there is something else
in the works too, and Workday is trying to get to a full ERM/ERP suite sooner
rather than later. We could be wrong of
course, and maybe it’s the extra effort of trying to support analytics,
mobility, etc that CRM didn’t have to deal with when it was seven years old… but still, R&D is an
extremely high number. We are going to
anticipate a positive surprise in the near future because of the higher R&D
expenses.</span></li>
<li><span style="font-family: inherit; text-indent: -0.25in;">A secondary aspect that we suspect might account
for the extra costs is Workday’s focus on international expansion. Both HCM & Finance are going to require a
lot more regional changes than say the CRM (i.e. different country laws, etc)
module. Workday already supports 21
languages vs. we counted that the CRM only supports </span><a href="https://login.salesforce.com/help/doc/en/faq_getstart_what_languages_does.htm" style="font-family: inherit; text-indent: -0.25in;">16</a><span style="font-family: inherit; text-indent: -0.25in;">
languages today, so they are clearly taking international markets seriously.</span></li>
</ul>
</ol>
</div>
<div class="MsoNormal">
<span style="font-family: inherit;">We won’t draw any more conclusions in this blog. Instead we will put WDAY against other similar
SaaS companies, and then summarize our overall perspective in the third and
final blog post. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span></div>
<div class="MsoNormal">
<i><span style="font-family: inherit;">Disclaimer: All
numbers are approximate. We are not
offering any investment advice and all the analysis we have performed to
support our blogs is preliminary.</span><o:p></o:p></i></div>
</div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com62tag:blogger.com,1999:blog-629090550108054777.post-53846942284321895582012-10-10T01:09:00.002-07:002012-10-10T01:13:07.255-07:00Besides Facebook's Botched IPO, IPO Market Returns 20% in 2012<div dir="ltr" style="text-align: left;" trbidi="on">
Facebook (Ticker: FB) is down ~47% since its IPO in May. Now, it is not the most botched IPO ever unfortunately as the infamous record belongs to BATS Exchange (Ticker: BATS) which operates an alternate stock exchange to NYSE and NASDAQ. (Read the Business Insider story here: <a href="http://goo.gl/NtmGa">8 Unforgettable IPO Disasters</a>)<br />
<br />
Also, FB is not the worst performing IPO either. Groupon (Ticker: GRPN) and Zynga (Ticker: ZNGA, proudly led by Mark Pincus), are down 77% and 74% respectively since their IPO. In comparison, FB has done ok, it could be worst but a rapid strategy shift by FB including the emphasis on mobile and a decision to allow e-commerce transactions (Facebook Gifts) on Facebook have provided some kind of a floor under its stock. Here is a chart comparing the three (not-so) darlings of the Web 2.0.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhomG3qlMp2la4Kot9ZQwUN_i9I2iMesQ13CwbV6nGSPJWFUehiuCSqGNtt4zz76ug-6yXcBGtplCNUoDW2UUroQ6hDAspBK4JwXyPOVQ5q84KGMV8PWQhmRt02t3kS4K67Q-Bv5UnrzQM/s1600/f-z-g.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhomG3qlMp2la4Kot9ZQwUN_i9I2iMesQ13CwbV6nGSPJWFUehiuCSqGNtt4zz76ug-6yXcBGtplCNUoDW2UUroQ6hDAspBK4JwXyPOVQ5q84KGMV8PWQhmRt02t3kS4K67Q-Bv5UnrzQM/s640/f-z-g.PNG" width="640" /></a></div>
<br />
<br />
Anyhow, below is a table of the best IPOs for this year. Guidewire (Ticker: GWRE) and Demandware (Ticker: DWRE) are the two cloud technology companies in the list that have done very well returning 137% and 108% till date.<br />
<span style="font-family: inherit; font-size: x-small;"><br /></span>
<br />
<div class="blockHead2" style="background-color: #8c8c8c; color: #e2eaa6; font-weight: bold; line-height: 1.8; margin: 0px; padding: 0px 0px 0px 4px;">
<span id="ctl00_bodyContentPlaceHolder_BestTitleLabel" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">IPO Top Performers (YTD)</span></span></div>
<div class="grid1" style="background-color: white; line-height: 16px; margin: 0px; padding: 0px;">
<div id="ctl00_bodyContentPlaceHolder_TopPanel" style="margin: 0px; padding: 0px;">
<div class="AspNet-GridView" id="ctl00_bodyContentPlaceHolder_topPerformersGV" style="margin: 0px; padding: 0px;">
<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-spacing: 0px; margin: 0px; padding: 0px; width: 754px;" summary=""><thead style="margin: 0px; padding: 0px;">
<tr style="margin: 0px; padding: 0px;"><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Company</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><br /></th><th class="CenteredGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Offer<br style="margin: 0px; padding: 0px;" />Date</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Under</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Industry</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Deal<br style="margin: 0px; padding: 0px;" />Size (mm)</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Offer<br style="margin: 0px; padding: 0px;" />Price</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">First Day<br style="margin: 0px; padding: 0px;" />Close</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Closing<br style="margin: 0px; padding: 0px;" />Price</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">First Day<br style="margin: 0px; padding: 0px;" />Return</span></th><th class="RightGridCell FullPercentGridCellWidth" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Total <br />Return</span></th></tr>
</thead><tbody style="margin: 0px; padding: 0px;">
<tr style="margin: 0px; padding: 0px;"><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><a href="http://www.renaissancecapital.com/Supernus-Pharmaceuticals/ipo-SUPN.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Supernus Pharmac</span></a></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><br /></td><td class="CenteredGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">4/30/12</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">Citi</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">Health Care</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">$50</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span id="SUPNtickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$5.00</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">$5.37</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span class="ticker" id="SUPN" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$12.77</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">7.4 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right; width: 4em;"><span id="SUPNtickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">155.4 %</span></span></td></tr>
<tr class="AspNet-GridView-Alternate" style="margin: 0px; padding: 0px;"><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><a href="http://www.renaissancecapital.com/Nationstar-Mortgage-Holdings/ipo-NSM.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Nationstar Mortg</span></a></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><br /></td><td class="CenteredGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">3/7/12</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">Merrill</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">Financial</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">$233</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span id="NSMtickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$14.00</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">$14.20</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span class="ticker" id="NSM" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$33.29</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">1.4 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right; width: 4em;"><span id="NSMtickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">137.8 %</span></span></td></tr>
<tr style="margin: 0px; padding: 0px;"><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><a href="http://www.renaissancecapital.com/Guidewire-Software/ipo-GWRE.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Guidewire Softwa</span></a></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"></td><td class="CenteredGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">1/24/12</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">JPM</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">Technology</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">$115</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span id="GWREtickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$13.00</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">$17.12</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span class="ticker" id="GWRE" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$30.84</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">31.7 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right; width: 4em;"><span id="GWREtickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">137.2 %</span></span></td></tr>
<tr class="AspNet-GridView-Alternate" style="margin: 0px; padding: 0px;"><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><a href="http://www.renaissancecapital.com/Annies/ipo-BNNY.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Annies</span></a></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"></td><td class="CenteredGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">3/27/12</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">CS</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">Consumer</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">$95</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span id="BNNYtickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$19.00</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">$35.92</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span class="ticker" id="BNNY" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$44.87</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">89.1 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right; width: 4em;"><span id="BNNYtickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">136.2 %</span></span></td></tr>
<tr style="margin: 0px; padding: 0px;"><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><a href="http://www.renaissancecapital.com/Demandware/ipo-DWRE.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Demandware</span></a></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><br /></td><td class="CenteredGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">3/14/12</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">GS</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">Technology</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px;"><span style="font-family: inherit; font-size: x-small;">$88</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span id="DWREtickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$16.00</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">$23.59</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span class="ticker" id="DWRE" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$33.31</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right;"><span style="font-family: inherit; font-size: x-small;">47.4 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: right; width: 4em;"><span id="DWREtickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">108.2 %</span></span></td></tr>
</tbody></table>
</div>
</div>
</div>
<br />
<br />
Palo Alto Network (Ticker: PANW) is up 16% since IPO with returns of 48% over its IPO price of $42. Splunk (Ticker: SPLK) is down about 10% since IPO but still giving returns of 90% over its IPO price of $17. Both these companies didn't make the cut in the table above.<br />
<br />
Here is a list of the worst performing IPOs till date. If one were to change the time period from YTD to 12-months, Zynga shows up in the list, no surprise there. Social gaming is a fast changing environment and ZNGA faces crisis in confidence with so many departures.<br />
<span style="font-family: inherit; font-size: x-small;"><br /></span>
<br />
<div class="blockHead2" style="background-color: #8c8c8c; color: #e2eaa6; font-weight: bold; line-height: 1.8; margin: 0px; padding: 0px 0px 0px 4px;">
<span id="ctl00_bodyContentPlaceHolder_WorstTitleLabel" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">IPO Worst Performers (YTD)</span></span></div>
<div class="grid1" style="background-color: white; line-height: 16px; margin: 0px; padding: 0px;">
<div id="ctl00_bodyContentPlaceHolder_BottomPanel" style="margin: 0px; padding: 0px;">
<div class="AspNet-GridView" id="ctl00_bodyContentPlaceHolder_bottomPerformersGV" style="margin: 0px; padding: 0px;">
<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-spacing: 0px; margin: 0px; padding: 0px; text-align: center; width: 754px;" summary=""><thead style="margin: 0px; padding: 0px;">
<tr style="margin: 0px; padding: 0px;"><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Company</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;"><br /></span></th><th class="CenteredGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Offer<br style="margin: 0px; padding: 0px;" />Date</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Under</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Industry</span></th><th scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Deal<br style="margin: 0px; padding: 0px;" />Size (mm)</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Offer<br style="margin: 0px; padding: 0px;" />Price</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">First Day<br style="margin: 0px; padding: 0px;" />Close</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Closing<br style="margin: 0px; padding: 0px;" />Price</span></th><th class="RightGridCell" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">First Day<br style="margin: 0px; padding: 0px;" />Return</span></th><th class="RightGridCell FullPercentGridCellWidth" scope="col" style="background-color: #e0e0e0; font-size: 11px; height: 1.8em; margin: 0px; padding: 0px 5px 3px; text-align: center; vertical-align: bottom;"><span style="font-family: inherit; font-size: x-small;">Total<br />Return</span></th></tr>
</thead><tbody style="margin: 0px; padding: 0px;">
<tr style="margin: 0px; padding: 0px;"><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><a href="http://www.renaissancecapital.com/Envivio/ipo-ENVI.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Envivio</span></a></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;"><br /></span></td><td class="CenteredGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">4/24/12</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">GS</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">Technology</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$70</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span id="ENVItickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$9.00</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$8.49</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span class="ticker" id="ENVI" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$2.15</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">-5.7 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center; width: 4em;"><span id="ENVItickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">-76.1 %</span></span></td></tr>
<tr class="AspNet-GridView-Alternate" style="margin: 0px; padding: 0px;"><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><a href="http://www.renaissancecapital.com/Audience/ipo-ADNC.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Audience</span></a></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;"><br /></span></td><td class="CenteredGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">5/9/12</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">JPM</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">Technology</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$90</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span id="ADNCtickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$17.00</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$19.10</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span class="ticker" id="ADNC" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$5.65</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">12.4 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center; width: 4em;"><span id="ADNCtickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">-66.8 %</span></span></td></tr>
<tr style="margin: 0px; padding: 0px;"><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><a href="http://www.renaissancecapital.com/CafePress/ipo-PRSS.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">CafePress</span></a></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;"><br /></span></td><td class="CenteredGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">3/28/12</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">JPM</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">Technology</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$86</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span id="PRSStickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$19.00</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$19.03</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span class="ticker" id="PRSS" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$8.07</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">0.2 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center; width: 4em;"><span id="PRSStickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">-57.5 %</span></span></td></tr>
<tr class="AspNet-GridView-Alternate" style="margin: 0px; padding: 0px;"><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;"><a href="http://www.renaissancecapital.com/Ceres/ipo-CERE.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;">Cere</a>s</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;"><br /></span></td><td class="CenteredGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">2/21/12</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">GS</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">Materials</span></td><td style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$65</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span id="CEREtickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$13.00</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$14.80</span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span class="ticker" id="CERE" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$5.77</span></span></td><td class="RightGridCell" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">13.8 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="background-color: #efefef; line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center; width: 4em;"><span id="CEREtickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">-55.6 %</span></span></td></tr>
<tr style="margin: 0px; padding: 0px;"><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><a href="http://www.renaissancecapital.com/Renewable-Energy-Group/ipo-REGI.html" style="color: #3b6b9d; margin: 0px; padding: 0px; text-decoration: none;"><span style="font-family: inherit; font-size: x-small;">Renewable</span></a></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;"><br /></span></td><td class="CenteredGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">1/18/12</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">UBS</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">Energy</span></td><td style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$72</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span id="REGItickerPr" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$10.00</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">$10.10</span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span class="ticker" id="REGI" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">$5.16</span></span></td><td class="RightGridCell" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center;"><span style="font-family: inherit; font-size: x-small;">1.0 %</span></td><td class="RightGridCell FullPercentGridCellWidth" style="line-height: 1.6; margin: 0px; padding: 0px 5px; text-align: center; width: 4em;"><span id="REGItickerRet" style="margin: 0px; padding: 0px;"><span style="font-family: inherit; font-size: x-small;">-48.4 %</span></span></td></tr>
</tbody></table>
</div>
</div>
</div>
<br />
<br />
Take a closer look, FB is barely staying away from this infamous list. On a similar note, LinkedIn (Ticker: LNKD) is up approximately 80% till date. What a contrasting tale of the two social network companies!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ9P_nGGUI9l688rl7d5gZwasuxKFpPwgfkO89YcWGSKVB6scb3CVzO4OiM0imqJ4JB5YD8Q89yKCU0SdK7Yre-nGykmeLb2ZBot_Mfyb8rkugXRoZ55IGu2Oyr_vNoIQ48xn5nokDGKs/s1600/GetChart.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ9P_nGGUI9l688rl7d5gZwasuxKFpPwgfkO89YcWGSKVB6scb3CVzO4OiM0imqJ4JB5YD8Q89yKCU0SdK7Yre-nGykmeLb2ZBot_Mfyb8rkugXRoZ55IGu2Oyr_vNoIQ48xn5nokDGKs/s1600/GetChart.png" /></a></div>
<br />
<br />
<br />
<br />
So far in 2012, IPOs have resulted in 20% returns which is better than the <span style="color: red;">-11% </span>returns IPO market yielded in 2011. Since there are about 2.5 months more to go before the curtains drop on 2012, the 2012 IPO return might beat the 25% returns the year 2010 produced. <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkAdIFtbQtcYL6cvOiBHUdt1BGuQLyU-1cdQgeejR99BDoKx-NsF24qo2bfG9-mCSw3Pv-VcVAK3Vy473zjPR7oNNWr1asRJ9rsiIsJmiwEz1IHE1ut99RWgZIo9qcVXBaon1VatK9ncY/s1600/GetChart+(1).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkAdIFtbQtcYL6cvOiBHUdt1BGuQLyU-1cdQgeejR99BDoKx-NsF24qo2bfG9-mCSw3Pv-VcVAK3Vy473zjPR7oNNWr1asRJ9rsiIsJmiwEz1IHE1ut99RWgZIo9qcVXBaon1VatK9ncY/s1600/GetChart+(1).png" /></a></div>
<br />
<br />
<br />
One very encouraging signs for the IPO investors this year has been the 13% average first day pop in IPOs that is line with what IPO market observed before the great recession (~13%). And to all the naysayers out there who claim that tech-stocks are in a bubble, take a look at the average opening day pop in 1999 (72%) and 2000 (56%) and compare it to 2012, you will hold your peace for few more years at least!<br />
<br />
<br />
<br />
<br />
<br />
<br />
Workday (Ticker: WDAY) is on the deck for this week. Do you due-diligence before investing.<br />
<br />
Happy IPO Investing!<br />
Jitender<br />
<span style="color: #cccccc; font-family: inherit; font-size: xx-small;"><br /></span>
<span style="color: #cccccc; font-family: inherit; font-size: xx-small;">Source: <span style="line-height: 13px; margin: 0px; padding: 0px;">Renaissance Capital, Greenwich, CT (www.renaissancecapital.com)</span><span style="background-color: #efefef; line-height: 13px;">.</span></span></div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com2tag:blogger.com,1999:blog-629090550108054777.post-29270815346081318762012-05-23T14:38:00.000-07:002012-05-23T14:43:45.461-07:00If You are a R Developer, Then You Must Try SAP HANA for Free.<br />
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-size: small;">
<span style="font-family: Calibri, sans-serif;"><u>This is a guest blog from </u></span><span style="font-family: Calibri, sans-serif;"><u>Alvaro Tejada Galindo</u>, my colleague and fellow R and SAP HANA enthusiast. I am thankful to Alvaro for coming and posting on "AllThingsBusinessAnalytics".</span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-size: small;">
<span style="font-family: Calibri, sans-serif;"><br /></span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-size: small;">
<span style="font-family: Calibri, sans-serif;">Are you an R developers? Have ever heard of SAP HANA? Would you like to test</span><span style="font-family: Calibri, sans-serif;"> </span><span style="font-family: Calibri, sans-serif;">SAP HANA for free?</span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
SAP HANA is an In-Memory Database Technology allowing developers to analyze big data in real-time.</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
Processes that took hours now take seconds due to SAP HANA's power to keep everything on RAM memory.</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
As announced in SAP Sapphire Now event in Orlando, Florida, SAP HANA is free for developers. You just need to download and install both the SAP HANA Client and the SAP HANA Studio, and create an SAP HANA Server on the Amazon Web Services as described in the following document:</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
Get your own SAP HANA DB server on Amazon Web Services - <a href="http://scn.sap.com/docs/DOC-28294" style="color: #1155cc;" target="_blank">http://scn.sap.com/docs/DOC-<wbr></wbr>28294</a></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
Why should this interest you? Easy...SAP HANA is an agent of change bringing speed to its limits and it can also be integrated with R as described in the following blog:</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
When SAP HANA met R - First kiss - <a href="http://scn.sap.com/community/developer-center/hana/blog/2012/05/21/when-sap-hana-met-r--first-kiss" style="color: #1155cc;" target="_blank">http://scn.sap.com/community/<wbr></wbr>developer-center/hana/blog/<wbr></wbr>2012/05/21/when-sap-hana-met-<wbr></wbr>r--first-kiss</a></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
Want to know more about SAP HANA? Read everything you need here: <a href="http://developers.sap.com/" style="color: #1155cc;" target="_blank">http://developers.sap.com</a></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
You're convinced but don't want to pay for the Amazon Web Services? No problem. Just leave a comment including your name, company and email. We will reach you and send you an Amazon Gift Card so you can get started. Of course, your feedback would be greatly appreciated. Of course, we only a limited set of gift cards, so be quick or be out.</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
<b>Author Alvaro Tejada Galindo</b>, mostly known as "Blag" is a Development Expert working for the Technology Innovation and Developer Experience team in SAP Labs. He can be contacted at <span style="color: #555555; font-family: arial, sans-serif; font-size: 13px; text-align: left; white-space: nowrap;">a.tejada.galindo@sap.com.</span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
<br />
Alvaro's background in his own words: I used to be an ABAP Consultant for 11 years. I worked in implementations on Peru and Canada. I’m also a die hard developer using R, Python, Ruby, PHP, Flex and many more languages. Now, I work for SAP Labs and my main roles are evangelize SAP technologies by writing blogs, articles, helping people on the forums, attending SAP events, besides many other “Developer engagement” activities.</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: Calibri, sans-serif; font-size: small;">
I maintain a blog called “Blag’s bag of rants” at <a href="http://blagrants.blogspot.com/" style="color: #1155cc;" target="_blank">blagrants.blogspot.com</a></div>Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com0tag:blogger.com,1999:blog-629090550108054777.post-80117884995370777862012-05-02T16:44:00.000-07:002012-05-03T11:22:36.284-07:00Why Delta's Foray into the Crude Refining Business is a BAD Move?When my mentor/guide and company president Sanjay Poonen threw this open challenge on Twitter:<br />
<br />
<div class="stream-item-header" style="background-color: #f6f6f6; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, sans-serif; font: inherit; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">
<a class="account-group js-account-group js-action-profile js-user-profile-link" data-user-id="10781952" href="https://twitter.com/#!/spoonen" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #999999; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"><strong class="fullname js-action-profile-name show-popup-with-id" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-style: inherit; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Sanjay Poonen</strong> <span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"></span> <span class="username js-action-profile-name" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; direction: ltr; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; unicode-bidi: embed; vertical-align: baseline;"><s style="color: #cccccc; text-decoration: none;">@</s><b style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">spoonen</b></span></a></div>
<div class="js-tweet-text" style="background-color: #f6f6f6; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, sans-serif; font: inherit; line-height: 18px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;">
For all u MBAs, what do u think of Delta buying an oil refinery for $150M (formerly $1B) for top-grade jet fuel. Would Michael Porter frown?</div>
<br />
how could I have passed on this challenge PLUS I have been lately descending deep into the technology roots (most of my blogs are technical with lots of code snippets for all intentional purposes - <a href="http://allthingsr.blogspot.com/">AllThingsR</a>.) So I decided to spend some time sleuthing and analyzing hard facts before replying to @spoonen, and (may be) counter @gkm1 (George Mathew's) arguments. This way I get back into analyzing business topics for some time. (After all, A in MBA stands for analysis right? Masters in Business Analytics?)<br />
<br />
<a href="http://online.wsj.com/article/SB10001424052702304050304577376354288927594.html">The original news on WSJ covering Delta decision to buy a refinery from ConocoPhillips is here.</a><br />
<br />
I spent quite sometime researching so I can educate myself on this deal. I started with a prior belief that this is a BAD deal. After all, the crude refining business is a boom and bust business, has razor thin margins and is notoriously competitive. Here is a quote from Bloomberg supporting my argument: "Refiners in the northeastern U.S. are struggling to turn a profit because of the narrow margin between the cost of imported crude and fuel prices." (Source: <a href="http://goo.gl/jb6m9">Bloomberg</a>) <br />
<br />
Moreover, not a single new refinery has sprung up in the US for at least 35 years (<a href="http://goo.gl/BP2U5">Source</a>) because no one wants to invest in this business. In addition, ConocoPhillips, had idled this refinery for few months now and Sunoco, another refiner in that area, is in the process of shutting down two more refineries in that region. (Source: <a href="http://goo.gl/jb6m9">Bloomberg</a>) "Sunoco...said its refining businesses has been losing $1 million dollars a day for<b><u> three years running.</u></b>" (<a href="http://goo.gl/x2bNp">Source</a>)<br />
<br />
So why is Delta buying this refinery? Vertical integration, fuel hedging, cost-savings, <u>political</u>, EPS improvements etc? Actually all of the above. <br />
<br />
Delta's planes burned 3.9B gallons of jet fuel last year. At an avg. 2011 price of $2.86 per gallon, Delta spent $11.8B, which is 40% of its operating expenses. (Source: <a href="http://www.nytimes.com/2012/05/01/business/delta-air-lines-to-buy-refinery.html">NYTimes</a>) If the cost of jet fuel was 40% of your company's operating expense, you will also be thinking about taking such dramatic decisions but may not execute on it if it is outside your realm, but Delta did.<br />
<br />
Delta will pay $150M in cash (it has $3B in cash on its balance sheet, so there is no liquidity issue) and will invest another $100M in retooling this refinery. Also you should note that PA government is chipping in with additional $30M (Thank you tax payers!). Retooling is required for reason self-evident in this table (Mainly to crank-up the jet-fuel production):<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_V58LglpElntWD7VR0DUGPOEh50inVrNSlxofjkmKp_a9iUvjTbnF2Fp6gZPqnKMJXc31JlrPNFhi8MkmhpA-FUaZi5O5zgGIh55QzkdcUuRS4kWuHYLgH2X_uMks7DSxWvqmt4eYvZo/s1600/Delta+Buying+CP+Refinery.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_V58LglpElntWD7VR0DUGPOEh50inVrNSlxofjkmKp_a9iUvjTbnF2Fp6gZPqnKMJXc31JlrPNFhi8MkmhpA-FUaZi5O5zgGIh55QzkdcUuRS4kWuHYLgH2X_uMks7DSxWvqmt4eYvZo/s640/Delta+Buying+CP+Refinery.png" width="640" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Now, looking at this table why would anyone believe that Delta can earn $300M every year from this. Also remember, Delta is not bringing down its fuel cost from ~$12B by a whole lot, it is merely trying to save few cents on the dollar. A little bit of shift in the numbers above and Delta will be in red trouble. <br />
<br />
Delta said that this is a good deal for the investors, really? Valero had margins of less than 3% in its last quarter and it is a pure play refinery company. Can Delta beat Valero on margins? I have my serious doubts. This could be a gain but just for the Delta's management as it attempts to boost EPS in the near-term.<br />
<br />
Also, can you believe that Delta can really retool the refinery and produce more jet-fuel than it is possible? The bio-chemistry doesn't support it. From one barrel of crude, only 19.5 gallons of gasoline and 4.1 gallons of jet-fuel can be produced. How is Delta going to produce more jet-fuel per barrel of crude?<br />
<br />
Also, FYI, this refinery can only process light sweet crude (with low sulfur) not that heavy Saudi oil that has high sulfur and is gaining more prominence due to global oil issues. (Source: <a href="http://www.conocophillips.com/EN/about/worldwide_ops/rm/us/Pages/Refining.aspx">ConocoPhillips</a>)<br />
<br />
Net net, this is a bad move, Delta will burn itself and get out in a year or two. And when they sell, it will be a fire, sale since many other refineries in that area are already struggling to make a profit as I mentioned above. Delta's thinking that future of refineries is brighter is quite puzzling for me.<br />
<br />
Happy Analyzing!<br />
<br />Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com1tag:blogger.com,1999:blog-629090550108054777.post-85714225853435041902012-05-02T11:39:00.001-07:002012-05-02T13:40:25.014-07:00Big Data, R and SAP HANA: Analyze 200 Million Data Points and Later Visualize in HTML5 Using D3 - Part III<b style="background-color: white; color: #666666; line-height: 18px;"><span style="font-family: inherit; font-size: large;">Mash-up Airlines Performance Data with Historical Weather Data to Pinpoint Weather Related Delays</span></b><br />
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white;"><span style="color: #666666; font-size: x-small; line-height: 18px;"><span style="font-family: inherit;"><br /></span></span></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit;"><span style="background-color: white;"><span style="color: #666666; line-height: 18px;">For this exercise, I combined following four separate blogs that I did on BigData, R and SAP HANA. </span></span><span style="color: #666666; line-height: 18px;">Historical airlines and weather data were used for the underlying analysis. The aggregated output of this analysis was outputted in JSON which was </span><span style="background-color: white;"><span style="color: #666666;"><span style="line-height: 18px;">visualized in HTML5, D3 and Google Maps. The previous blogs on this series are:</span></span></span></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<ol>
<li><a href="http://goo.gl/6rxwr"><span style="font-family: inherit;">Big Data, R and HANA: Analyze 200 Million Data Points and Later Visualize in HTML5 Using D3 - Part II</span></a></li>
<li><a href="http://goo.gl/6rxwr"><span style="font-family: inherit;">Big Data, R and HANA: Analyze 200 Million Data Points and Later Visualize Using Google Maps</span></a></li>
<li><a href="http://goo.gl/6UkVi"><span style="font-family: inherit;">Getting Historical Weather Data in R and SAP HANA </span></a></li>
<li><a href="http://goo.gl/KvQrF" style="background-color: white; font-family: inherit; line-height: 18px;">Tracking SFO Airport's Performance Using R, HANA and D3</a></li>
</ol>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="color: #666666; font-family: inherit;"><span style="line-height: 18px;">In this blog, I wanted to mash-up disparate data sources in R and HANA by combining airlines data with weather data to understand the reasons behind the airport/airlines delay. Why weather - because weather is one of the commonly cited </span></span><span style="color: #666666; line-height: 18px;">reasons</span><span style="color: #666666; font-family: inherit;"><span style="line-height: 18px;"> in the airlines industry for flight delays. Fortunately, the airlines data breaks up the delay by weather, security, late aircraft etc., so weather related delays can be isolated and then the actual weather data can be mashed-up to validate the airlines' claims. However, I will not be doing this here, I will just be displaying the mashed-up data.</span></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px;"><br /></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px;">I have intentionally focused on the three bay-area airports and have used last 4 years of historical data to visualize the airport's performance using a HTML5 calendar built from scratch using D3.js. One can use all 20 years of data and for all the airports to extend this example. I had downloaded historical weather data for the same 2005-2008 period for SFO and SJC airports as shown in my previous blog (For some strange reasons, there is no weather data for OAK, huh?). Here is how the final result will look like in HTML5:</span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px;"><br /></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px;"><br /></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5eRpFWamyB-FCvvO8IgzKCuFMFxn2oKlW_G0fizn6s093KNzTtV62YS_o9Ov5SQshPWAyRkShyldcAxrNjnjyuEvRqCcV2gZbh7XK6600Qwte5sLvZdQl17gh5kPmS64GZFUPlGcYHuk/s1600/BAA-ATA.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5eRpFWamyB-FCvvO8IgzKCuFMFxn2oKlW_G0fizn6s093KNzTtV62YS_o9Ov5SQshPWAyRkShyldcAxrNjnjyuEvRqCcV2gZbh7XK6600Qwte5sLvZdQl17gh5kPmS64GZFUPlGcYHuk/s640/BAA-ATA.png" width="640" /></a></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px;"><br /></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<a href="http://goo.gl/SsiQz" style="color: #666666; font-family: inherit; line-height: 18px;">Click here to interact with the live example</a>.<span style="color: #666666; font-family: inherit;"><span style="line-height: 18px;"> Hover over any cell in the live example and a </span></span><span style="color: #666666;"><span style="line-height: 18px;">tool tip</span></span><span style="color: #666666;"><span style="font-family: inherit;"><span style="line-height: 18px;"> with comprehensive </span></span><span style="line-height: 18px;">analytics</span><span style="font-family: inherit;"><span style="line-height: 18px;"> will show the break down of the performance delay for the selected cell including weather data and correct icons* - result of a mash-up. Choose a different airport from the drop-down to change the performance calendar. </span></span></span>
</div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; font-size: xx-small; line-height: 18px;">* W</span><span style="background-color: white; color: #666666; font-size: xx-small; line-height: 18px;">eather icons are properties of Weather Underground.</span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white;"><span style="color: #666666; font-family: inherit;"><span style="line-height: 18px;"><br /></span></span></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white;"><span style="color: #666666; font-family: inherit;"><span style="line-height: 18px;">As anticipated, SFO airport had more red on the calendar than SJC and OAK. SJC </span></span><span style="color: #666666;"><span style="line-height: 18px;">definitely is the best performing airport in the bay-area. Contrary to my expectation, weather didn't cause as much havoc on SFO as one would expect, strange?</span></span></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px;"><br /></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px;">Creating a mash-up in R for these two data-sets was super easy and a CSV output was produced to work with HTML5/D3. Here is the R code and if it not clear from all my previous blogs: I just love d<a href="http://datatable.r-forge.r-project.org/">ata.table package</a>.</span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white;"><span style="color: #666666; font-family: inherit; font-size: x-small;"><span style="line-height: 18px;"><br /></span></span></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white;"><span style="color: #666666; font-family: inherit; font-size: x-small;"><span style="line-height: 18px;"><br /></span></span></span></div>
<div class="separator" style="background-color: white; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;"></span></span></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">########################################################################################### </span></span></div>
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">
</span></span><br />
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;"># Percent delayed flights from three bay area airports, a break up of the flights delay by various reasons, mash-up with weather data</span></span></div>
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">
</span></span><br />
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">########################################################################################### </span></span></div>
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">
</span></span><br />
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">baa.hp.daily.flights <- baa.hp[,list( <span style="background-color: white; font-family: inherit;">TotalFlights=length(DepDelay), CancelledFlights=sum(Cancelled, na.rm=TRUE)), </span></span></span></div>
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">
</span></span><br />
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;"> by=list(Year, Month, DayofMonth, Origin)]</span></span></div>
<span style="background-color: white; line-height: 18px;"><span style="color: #666666; font-family: inherit; font-size: x-small;">
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
setkey(baa.hp.daily.flights,Year, Month, DayofMonth, Origin)</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
baa.hp.daily.flights.delayed <- baa.hp[DepDelay>15,</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
list(<span style="background-color: white; font-family: inherit;">DelayedFlights=length(DepDelay), </span></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
WeatherDelayed=length(WeatherDelay[WeatherDelay>0]),</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
AvgDelayMins=round(sum(DepDelay, na.rm=TRUE)/length(DepDelay), digits=2),</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
CarrierCaused=round(sum(CarrierDelay, na.rm=TRUE)/sum(DepDelay, na.rm=TRUE), digits=2),</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
WeatherCaused=round(sum(WeatherDelay, na.rm=TRUE)/sum(DepDelay, na.rm=TRUE), digits=2),</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
NASCaused=round(sum(NASDelay, na.rm=TRUE)/sum(DepDelay, na.rm=TRUE), digits=2),</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
SecurityCaused=round(sum(SecurityDelay, na.rm=TRUE)/sum(DepDelay, na.rm=TRUE), digits=2),</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
LateAircraftCaused=round(sum(LateAircraftDelay, na.rm=TRUE)/sum(DepDelay, na.rm=TRUE), digits=2)<span style="background-color: white; font-family: inherit;">), </span><span style="background-color: white; font-family: inherit;">by=list(Year, Month, DayofMonth, Origin)]</span></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
setkey(baa.hp.daily.flights.delayed, Year, Month, DayofMonth, Origin)</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
# Merge two data-tables</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
baa.hp.daily.flights.summary <- baa.hp.daily.flights.delayed[baa.hp.daily.flights,list(Airport=Origin,</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
TotalFlights, CancelledFlights, DelayedFlights, WeatherDelayed, </div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
PercentDelayedFlights=round(DelayedFlights/(TotalFlights-CancelledFlights), digits=2),</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
AvgDelayMins, CarrierCaused, WeatherCaused, NASCaused, SecurityCaused, LateAircraftCaused)]</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; font-family: inherit;">setkey(baa.hp.daily.flights.summary, Year, Month, DayofMonth, Airport)</span></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
# Merge with weather data</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
baa.hp.daily.flights.summary.weather <-baa.weather[baa.hp.daily.flights.summary]</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
baa.hp.daily.flights.summary.weather$Date <- as.Date(paste(baa.hp.daily.flights.summary.weather$Year, </div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
baa.hp.daily.flights.summary.weather$Month, </div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
baa.hp.daily.flights.summary.weather$DayofMonth, </div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
sep="-"),"%Y-%m-%d")</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
# remove few columns</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
baa.hp.daily.flights.summary.weather <- baa.hp.daily.flights.summary.weather[, </div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
which(!(colnames(baa.hp.daily.flights.summary.weather) %in% c("Year", "Month", "DayofMonth", "Origin"))), with=FALSE]</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; font-family: inherit;">#Write the output in both JSON and CSV file formats</span></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: white; font-family: inherit;">objs <- baa.hp.daily.flights.summary.weather[, getRowWiseJson(.SD), by=list(Airport)]</span></div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
# You have now (Airportcode, JSONString), Once again, you need to attach them together.</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
row.json <- apply(objs, 1, function(x) paste('{\"AirportCode\":"', x[1], '","Data\":', x[2], '}', sep=""))</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
json.st <- paste('[', paste(row.json, collapse=', '), ']')</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
writeLines(json.st, "baa-2005-2008.summary.json") </div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
write.csv(baa.hp.daily.flights.summary.weather, "baa-2005-2008.summary.csv", row.names=FALSE)</div>
<div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
</span></span><br />
<div class="separator" style="background-color: white; clear: both; color: #666666; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="background-color: white; font-family: inherit; font-size: x-small;">Happy Coding!</span></div>
<div class="separator" style="background-color: white; clear: both; color: #666666; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<div class="MsoNormal">
<br /></div>Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com1tag:blogger.com,1999:blog-629090550108054777.post-12753491664627546652012-04-09T21:47:00.004-07:002012-05-02T13:40:38.603-07:00Big Data, R and SAP HANA: Analyze 200 Million Data Points and Later Visualize in HTML5 Using D3 - Part II<div class="separator" style="clear: both; text-align: left;">
<b>Technologies<u>:</u></b> SAP HANA, R, HTML5, D3, JQuery and JSON</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
In my last blog, <a href="http://goo.gl/5ClmN" target="_blank">Big Data, R and SAP HANA: Analyze 200 Million Data Points and Later Visualize Using Google Maps</a>, I analyzed historical airlines performance data set using R and SAP HANA and put the aggregated analysis on Google Maps. Undoubtedly, Map is a pretty exciting canvas to view and analyze big data sets. One could draw shapes (circles, polygons) on the map under a marker pin, providing pin-point information and display aggregated information in the info-window when a marker is clicked. So I enjoyed doing all of that, but I was craving for some old fashion bubble charts and other types of charts to provide comparative information on big data sets. Ultimately, all big data sets get aggregated into smaller analytical sets for viewing, sharing and reporting. An old fashioned chart is the best way to tell a visual story!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
On bubble charts, one could display 4 dimensional data for comparative analysis. In this blog analysis, I used the same data-set which had 200M data points and went deeper looking at finer slices of information. I leveraged D3, R and SAP HANA for this blog post. Here I am publishing some of this work: </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
In this first graphics, the performance of top airlines is compared for 2008. As expected, Southwest, the largest airlines (when using total number of flights as a proxy), performed well for its size (1.2M flights, 64 destinations but average delay was ~10 mins.) Some of the other airlines like American and Continental were the worst performers along with Skywest. Note, I didn't remove outliers from this analysis. <a href="http://goo.gl/OGd4V" target="_blank">Click here to interact with this example</a>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_oXNvpOhF7egXjhHJe1Cl2U9C_8Js7SqORa-VehcsKMYVNThS4QhSiLO7SzYZhyhvzgSzsfXhjM8527p7zJXebuMliLX1MvmnlssRzmiO-y1P-kq_wv00qgXPQtqZYgsKj3un2LNao70/s1600/Airlines.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_oXNvpOhF7egXjhHJe1Cl2U9C_8Js7SqORa-VehcsKMYVNThS4QhSiLO7SzYZhyhvzgSzsfXhjM8527p7zJXebuMliLX1MvmnlssRzmiO-y1P-kq_wv00qgXPQtqZYgsKj3un2LNao70/s640/Airlines.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
In the second analysis, I replaced airlines dimension with airports dimension but kept all the other dimensions the same. To my disbelief, Newark airport is the worst performing airport when it comes to departure delays. Chicago O'Hare, SFO and JFK follow. Atlanta airport is the largest airport but it has the best performance. What are they doing differently at ATL? <a href="http://goo.gl/jieen" target="_blank">Click here to interact with this example</a>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIeTgHnaXVd2_IJTENLbp_jkTcoDa_bGDJNjv7rnvx6re5GkmuvDQgjlW5TcdGFdqh4cVJgUg5-9ayyKuCZWdKZmhhEqwFV5zB4gJoNeZrIqgZ8wmNaCoCztCBsWl7yA7bcYxfJMfW1uQ/s1600/Airports.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIeTgHnaXVd2_IJTENLbp_jkTcoDa_bGDJNjv7rnvx6re5GkmuvDQgjlW5TcdGFdqh4cVJgUg5-9ayyKuCZWdKZmhhEqwFV5zB4gJoNeZrIqgZ8wmNaCoCztCBsWl7yA7bcYxfJMfW1uQ/s640/Airports.png" width="640" /></a></div>
<br />
It was hell of a fun playing with D3, R and HANA, good intellectual stimulation if nothing else! Happy Analyzing and remember possibilities are endless!<br />
<br />
<span style="font-size: x-small;">As always, my R modules are fairly simple and straightforward:</span><br />
<span style="font-size: x-small;">########################################################################################### </span><br />
<span style="font-size: x-small;">#ETL - Read the AIRPORT Information, get major aiport informatoin extracted and upload this </span><br />
<span style="font-size: x-small;">#transfromed dataset into HANA</span><br />
<span style="font-size: x-small;">###########################################################################################</span><br />
<span style="font-size: x-small;">major.airports <- data.table(read.csv("MajorAirports.csv", header=TRUE, sep=",", stringsAsFactors=FALSE))</span><br />
<span style="font-size: x-small;">setkey(major.airports, iata)</span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;">all.airports <- data.table(read.csv("AllAirports.csv", header=TRUE, sep=",", stringsAsFactors=FALSE)) </span><br />
<span style="font-size: x-small;">setkey(all.airports, iata)</span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;">airports.2008.hp <- data.table(read.csv("2008.csv", header=TRUE, sep=",", stringsAsFactors=FALSE)) </span><br />
<span style="font-size: x-small;">setkey(airports.2008.hp, Origin, UniqueCarrier)</span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;">#Merge two datasets</span><br />
<span style="font-size: x-small;">airports.2008.hp <- major.airports[airports.2008.hp,]</span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;">########################################################################################### </span><br />
<span style="font-size: x-small;"># Get airport statisitics for all airports</span><br />
<span style="font-size: x-small;">###########################################################################################</span><br />
<span style="font-size: x-small;">airports.2008.hp.summary <- airports.2008.hp[major.airports, </span><br />
<span style="font-size: x-small;"> list(AvgDepDelay=round(mean(DepDelay, na.rm=TRUE), digits=2),</span><br />
<span style="font-size: x-small;"> TotalMiles=prettyNum(sum(Distance, na.rm=TRUE), big.mark=","),</span><br />
<span style="font-size: x-small;"> TotalFlights=length(Month),</span><br />
<span style="font-size: x-small;"> TotalDestinations=length(unique(Dest)),</span><br />
<span style="font-size: x-small;"> URL=paste("http://www.fly", Origin, ".com",sep="")), </span><br />
<span style="font-size: x-small;"> by=list(Origin)][order(-TotalFlights)]</span><br />
<span style="font-size: x-small;">setkey(airports.2008.hp.summary, Origin)</span><br />
<span style="font-size: x-small;">#merge two data tables</span><br />
<span style="font-size: x-small;">airports.2008.hp.summary <- major.airports[airports.2008.hp.summary, </span><br />
<span style="font-size: x-small;"> list(Airport=airport, </span><br />
<span style="font-size: x-small;"> AvgDepDelay, TotalMiles, TotalFlights, TotalDestinations, </span><br />
<span style="font-size: x-small;"> Address=paste(airport, city, state, sep=", "), </span><br />
<span style="font-size: x-small;"> Lat=lat, Lng=long, URL)][order(-TotalFlights)]</span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;">airports.2008.hp.summary.json <- getRowWiseJson(airports.2008.hp.summary)</span><br />
<span style="font-size: x-small;">writeLines(airports.2008.hp.summary.json, "airports.2008.hp.summary.json") </span><br />
<span style="font-size: x-small;">write.csv(airports.2008.hp.summary, "airports.2008.hp.summary.csv", row.names=FALSE)</span><br />
<span style="font-size: x-small;"><br /></span>Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com3tag:blogger.com,1999:blog-629090550108054777.post-17872760574129796522012-03-28T02:09:00.001-07:002012-03-28T02:15:55.097-07:00Big Data, R and HANA: Analyze 200 Million Data Points and Later Visualize Using Google Maps<b>Technologies</b>: SAP HANA, R, HTML5, D3, Google Maps, JQuery and JSON<br />
<br />
For this fun exercise, I analyzed more than 200 million data points using SAP HANA and R and then brought in the aggregated results in HTML5 using D3, JSON and Google Maps APIs. The 2008 airlines data is from the data expo and I have been using this entire data set (123 million rows and 29 columns) for quite sometime. <a href="http://goo.gl/5ClmN" target="_blank">See my other blogs</a><br />
<br />
The results look beautiful:<br />
<span id="goog_178071101"></span><span id="goog_178071102"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw4FkroPSEngoJs-HQm6hSNnhZlIcYpJ-iHPKiH5lbasok9vU0vvAKY7dZxmNz6W6tHKVFJ_jbDV-ygEyaZQfg49gMJWOGMqYaiwGT39xpOZzP5hlCYFRa083SiTw5IhgcRcaYOJeqcNM/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="323" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw4FkroPSEngoJs-HQm6hSNnhZlIcYpJ-iHPKiH5lbasok9vU0vvAKY7dZxmNz6W6tHKVFJ_jbDV-ygEyaZQfg49gMJWOGMqYaiwGT39xpOZzP5hlCYFRa083SiTw5IhgcRcaYOJeqcNM/s640/Picture1.png" width="640" /></a></div>
<br />
<br />
Each airport icon is clickable and when clicked displays an info-window describing the key stats for the selected airport:<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jitenderaswani.info.s3-website-us-east-1.amazonaws.com/img/JA-R-HANA-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://jitenderaswani.info.s3-website-us-east-1.amazonaws.com/img/JA-R-HANA-2.png" width="640" /></a></div>
<br />
<br />
I then used D3 to display the aggregated result set in the modal window (light box):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jitenderaswani.info.s3-website-us-east-1.amazonaws.com/img/JA-R-HANA-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://jitenderaswani.info.s3-website-us-east-1.amazonaws.com/img/JA-R-HANA-3.png" width="640" /></a></div>
<br />
<br />
Unfortunately, I can't provide the live example due to the restrictions put in by Google Maps APIs and I am approaching my free API limits.<br />
<br />
<b>Fun fact:</b> The Atlanta airport was<u> the largest airport in 2008 on many dimensions</u>: Total Flights Departed, Total Miles Flew, Total Destinations. It also experienced lower average departure delay in 2008 than Chicago O'Hare. I always thought Chicago O'Hare is the largest US airport.<br />
<br />
As always, I just needed 6 lines of R code including two lines of code to write data in JSON and CSV files:<br />
<br />
<span style="font-size: x-small;">################################################################################</span><br />
<span style="font-size: x-small;">airports.2008.hp.summary <- airports.2008.hp[major.airports, </span><br />
<span style="font-size: x-small;"> list(AvgDepDelay=round(mean(DepDelay, na.rm=TRUE), digits=2),</span><br />
<span style="font-size: x-small;"> TotalMiles=prettyNum(sum(Distance, na.rm=TRUE), big.mark=","),</span><br />
<span style="font-size: x-small;"> TotalFlights=length(Month),</span><br />
<span style="font-size: x-small;"> TotalDestinations=length(unique(Dest)),</span><br />
<span style="font-size: x-small;"> URL=paste("http://www.fly", Origin, ".com",sep="")), </span><br />
<span style="font-size: x-small;"> by=list(Origin)][order(-TotalFlights)]</span><br />
<span style="font-size: x-small;">setkey(airports.2008.hp.summary, Origin)</span><br />
<span style="font-size: x-small;">#merge the two data tables</span><br />
<span style="font-size: x-small;">airports.2008.hp.summary <- major.airports[airports.2008.hp.summary, </span><br />
<span style="font-size: x-small;"> list(Airport=airport, </span><br />
<span style="font-size: x-small;"> AvgDepDelay, TotalMiles, TotalFlights, TotalDestinations, </span><br />
<span style="font-size: x-small;"> Address=paste(airport, city, state, sep=", "), </span><br />
<span style="font-size: x-small;"> Lat=lat, Lng=long, URL)][order(-TotalFlights)]</span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;">airports.2008.hp.summary.json <- getRowWiseJson(airports.2008.hp.summary)</span><br />
<span style="font-size: x-small;">writeLines(airports.2008.hp.summary.json, "airports.2008.hp.summary.json") </span><br />
<span style="font-size: x-small;">write.csv(airports.2008.hp.summary, "airports.2008.hp.summary.csv", row.names=FALSE)</span><br />
<span style="font-size: x-small;">##############################################################################</span><br />
<br />
<b>Happy Coding and remember the possibilities are endless!</b><br />
<br />Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com0tag:blogger.com,1999:blog-629090550108054777.post-1422369674921665642012-03-22T01:17:00.001-07:002012-03-22T01:22:43.731-07:00Tracking SFO Airport's Performance Using R, HANA and D3<span style="font-size: large;">Visualize Big Data Using R, HANA, D3, JSON and HTML5/JavaScript</span><br />
<br />
This is my first introduction to <a href="http://mbostock.github.com/d3/" target="_blank">D3</a> and I am simply blown away. Mike Bostock (@mbostock), you are genius and thanks for creating D3! With HANA, R, D3, HTML5 and iPad, and you got yourself a KILLER combo!<br />
<br />
I have been burning my midnight oil on piecing together my big data story using HANA, R, JSON and HTML5. If you recall, I did a technical session on R and SAP HANA at DKOM, SAP's Development Kickoff Event last week where I showcased the supreme powers of R and HANA when analyzing 124 million records in real time. <a href="http://goo.gl/63vw7" target="_blank">R and SAP HANA: A Highly Potent Combo for Real Time Analytics on Big Data</a><br />
<br />
Since last week, I have been looking for other creative ways to analyze and then visualize this airlines data. I am very fortunate to come across D3. After spending couple of hours with D3, I decided to build the calendar view for the airlines data I have. The calendar view is the first example Mike shows on his D3 page. Amazingly awesome!<br />
<br />
I created this calendar view capturing the percent of delayed flight from SFO airports that departed daily between 2005-2008. For this analysis, I used HANA to get the data out for SFO (out of 250 plus airports) over this 4 years period in seconds and then did all the aggregation in R including creating a JSON and .CSV file in seconds again. Later, I moved to HTML5 and D3 to generate this beautiful calendar view showing SFO's performance. Graphics is presented below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4JuyLXKq60-iFyD4DsVNLWNWUl7Wzpjwy2KmWItjI3h6N08N4wr9wa6MrIRjJq_N2a2G2Lvq1N4ffl7aVCTUvu8eYVlrDsmeETFpoR2D1pDLmL489LBPijdVZUQfG38b-7qUMt5DQTmM/s1600/D3-SFO-Delayed-Flights.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4JuyLXKq60-iFyD4DsVNLWNWUl7Wzpjwy2KmWItjI3h6N08N4wr9wa6MrIRjJq_N2a2G2Lvq1N4ffl7aVCTUvu8eYVlrDsmeETFpoR2D1pDLmL489LBPijdVZUQfG38b-7qUMt5DQTmM/s640/D3-SFO-Delayed-Flights.PNG" width="640" /></a></div>
<br />
As expected, December and January are two notorious months for flights delay. Have fun with <a href="http://goo.gl/OGd4V" target="_blank">the live example hosted in the Amazon cloud.</a>.<br />
<br />
Once again, my R code is very simple:<br />
<br />
<br />
<span style="font-size: x-small;">## Depature Delay for SF Airport</span><br />
<span style="font-size: x-small;">ba.hp.sfo <- ba.hp[Origin=="SFO",]</span><br />
<span style="font-size: x-small;"><br /></span><br />
<span style="font-size: x-small;">ba.hp.sfo.daily.flights <- ba.hp.sfo[,list(DailyFlights=length(DepDelay)), by=list(Year, Month, DayofMonth)][order(Year,Month,DayofMonth)]</span><br />
<span style="font-size: x-small;">ba.hp.sfo.daily.flights.delayed <- ba.hp.sfo[DepDelay>15,list(DelayedDailyFlights=length(DepDelay)), by=list(Year, Month, DayofMonth)][order(Year,Month,DayofMonth)]</span><br />
<span style="font-size: x-small;">setkey(ba.hp.sfo.daily.flights.delayed, Year, Month, DayofMonth)</span><br />
<span style="font-size: x-small;">response <- ba.hp.sfo.daily.flights.delayed[ba.hp.sfo.daily.flights]</span><br />
<span style="font-size: x-small;">response <- response[,list(Date=as.Date(paste(Year, Month, DayofMonth, sep="-"),"%Y-%m-%d"), </span><br />
<span style="font-size: x-small;"> #DailyFlights,DelayedDailyFlights,</span><br />
<span style="font-size: x-small;"> PercentDelayedFlights=round((DelayedDailyFlights/DailyFlights), digits=2))]</span><br />
<span style="font-size: x-small;">objs <- apply(response, 1, toJSON)</span><br />
<span style="font-size: x-small;">res <- paste('{"dailyFlightStats": [', paste(objs, collapse=', '), ']}')</span><br />
<span style="font-size: x-small;">writeLines(res, "dailyFlightStatsForSFO.json") </span><br />
<span style="font-size: x-small;">write.csv(response, "dailyFlightStatsForSFO.csv", row.names=FALSE)</span><br />
<span style="font-size: x-small;"><br /></span><br />
For D3 and HTML code, please <a href="http://mbostock.github.com/d3/ex/calendar.html" target="_blank">take a look at this example from D3 website. </a><br />
<br />
Happy Analyzing and Keep That Mid Night Oil Burning!<br />
<br />
<br />
<br />Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com2tag:blogger.com,1999:blog-629090550108054777.post-85215506040925767612012-03-17T23:17:00.002-07:002012-03-17T23:18:19.760-07:00Geocode and reverse geocode your data using, R, JSON and Google Maps' Geocoding API<br />
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><i><span style="font-size: x-small;">(Reposting the previous blog with additional module on reverse geocoding added here.)</span></i></span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><br /></span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;">First and foremost, I absolutely love the topic of Location Analytics (Geo-Spatial Analysis) and see tremendous business potential in not so distant future. I would go out on a limb to predict that the Location Analytics will soon go viral in the enterprise space because it has the capability to WOW us. Look no further than your iPhone or an Android phone and count how many location aware apps you have. We all have at lease one app - Google Maps. Mobile is one of the strongest catalyst for enterprise adoption of Location aware apps. All right, enough of business talk, let's get dirty with the code.</span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><br /></span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;">Over the last year and half, I have faced numerous challenges with geocoding and reverse geocoding the data that I have used to showcase my passion for location analytics. In 2012, I decided to take thing in my control and turned to R. Here, I am sharing a simple R script that I wrote to geo-code my data whenever I needed it, even BIG Data.</span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><br /></span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;">To geocode and reverse geocode my data, I use Google's Geocoding service which returns the geocoded data in a JSON. I will recommend that you register with Google Maps API and get a key if you have large amount of data and would do repeated geo coding.</span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><br /></span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><b>Geocode:</b></span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i><br /></i></span></div>
<div style="direction: ltr; language: en-US; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;">
</div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i>getGeoCode <- function(gcStr) {</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> library("RJSONIO") #Load Library</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> gcStr <- gsub(' ','%20',gcStr) #Encode URL Parameters</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> #Open Connection</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> connectStr <- paste('http://maps.google.com/maps/api/geocode/json?sensor=false&address=',gcStr, sep="") </i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> con <- url(connectStr)</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> data.json <- fromJSON(paste(readLines(con), collapse=""))</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> close(con)</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> #Flatten the received JSON</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> data.json <- unlist(data.json)</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> if(data.json["status"]=="OK") {</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> lat <- data.json["results.geometry.location.lat"]</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> lng <- data.json["results.geometry.location.lng"]</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> gcodes <- c(lat, lng)</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> names(gcodes) <- c("Lat", "Lng")</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> return (gcodes)</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i> }</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i>}</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i>geoCodes <- getGeoCode("Palo Alto,California")</i></span></div>
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial; font-size: x-small;"><i><br /></i></span></div>
<div style="font-family: Arial;">
<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-collapse: separate;"><span class="Apple-style-span" style="font-family: 'Lucida Console'; font-size: 13px; line-height: 17px; text-align: -webkit-left; white-space: pre-wrap;"></span></span><br />
<pre class="GD40030CLR" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-family: 'Lucida Console'; font-size: 10pt !important; line-height: 1.3; outline-color: initial; outline-style: none; outline-width: initial; white-space: pre-wrap !important;" tabindex="0"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-collapse: separate;"><span class="Apple-style-span" style="font-family: 'Lucida Console'; font-size: 13px; line-height: 17px; text-align: -webkit-left; white-space: pre-wrap;"><span class="GD40030COR ace_keyword" style="color: blue; white-space: pre;">> </span><span class="GD40030CCR ace_keyword" style="color: blue;">geoCodes
</span> Lat Lng
"37.4418834" "-122.1430195" </span></span></pre>
<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-collapse: separate;"><span class="Apple-style-span" style="font-family: 'Lucida Console'; font-size: 13px; line-height: 17px; text-align: -webkit-left; white-space: pre-wrap;">
<pre class="GD40030CLR" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-family: 'Lucida Console'; font-size: 10pt !important; line-height: 1.3; outline-color: initial; outline-style: none; outline-width: initial; white-space: pre-wrap !important;" tabindex="0"></pre>
</span></span></div>
<div style="font-family: Arial;">
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; text-align: left; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><b>Reverse Geocode:</b></span></div>
</div>
<div style="font-family: Arial;">
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;">reverseGeoCode</span><span style="font-family: Arial;"> </span><span style="font-family: Arial;"><- function(</span><span style="font-family: Arial;">latlng</span><span style="font-family: Arial;">) {</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;">latlngStr</span><span style="font-family: Arial;"> </span><span style="font-family: Arial;"><- </span><span style="font-family: Arial;">gsub</span><span style="font-family: Arial;">(' ','%20', paste(</span><span style="font-family: Arial;">latlng</span><span style="font-family: Arial;">, collapse=","))#Collapse and Encode URL Parameters</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><i><span style="font-size: x-small;"> library("RJSONIO") #Load Library</span></i></span></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><i><span style="font-size: x-small;"> #Open Connection</span></i></span></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;"> </span><span style="font-family: Arial;">connectStr</span><span style="font-family: Arial;"> <- paste('http://maps.google.com/maps/</span><span style="font-family: Arial;">api</span><span style="font-family: Arial;">/geocode/</span><span style="font-family: Arial;">json?sensor</span><span style="font-family: Arial;">=</span><span style="font-family: Arial;">false&latlng</span><span style="font-family: Arial;">=',</span><span style="font-family: Arial;">latlngStr</span><span style="font-family: Arial;">, </span><span style="font-family: Arial;">sep</span><span style="font-family: Arial;">="")</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;"> con <- </span><span style="font-family: Arial;">url</span><span style="font-family: Arial;">(</span><span style="font-family: Arial;">connectStr</span><span style="font-family: Arial;">)</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;"> </span><span style="font-family: Arial;">data.json</span><span style="font-family: Arial;"> <- </span><span style="font-family: Arial;">fromJSON</span><span style="font-family: Arial;">(paste(</span><span style="font-family: Arial;">readLines</span><span style="font-family: Arial;">(con), collapse=""))</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><i><span style="font-size: x-small;"> close(con)</span></i></span></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><i><span style="font-size: x-small;"> #Flatten the received JSON</span></i></span></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;"> </span><span style="font-family: Arial;">data.json</span><span style="font-family: Arial;"> <- </span><span style="font-family: Arial;">unlist</span><span style="font-family: Arial;">(</span><span style="font-family: Arial;">data.json</span><span style="font-family: Arial;">)</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;"> if(</span><span style="font-family: Arial;">data.json</span><span style="font-family: Arial;">["status"]=="OK")</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;"> address <- </span><span style="font-family: Arial;">data.json</span><span style="font-family: Arial;">["</span><span style="font-family: Arial;">results.formatted_address</span><span style="font-family: Arial;">"]</span></span></i></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><i><span style="font-size: x-small;"> return (address)</span></i></span></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Arial;"><i><span style="font-size: x-small;">}</span></i></span></div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
</div>
<div style="direction: ltr; font-family: 'Times New Roman'; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; unicode-bidi: embed; word-break: normal;">
<i><span style="font-size: x-small;"><span style="font-family: Arial;">address <- </span><span style="font-family: Arial;">reverseGeoCode</span><span style="font-family: Arial;">(c(37.4418834, -122.1430195))</span></span></i></div>
</div>
<div>
<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-collapse: separate;"><span class="Apple-style-span" style="text-align: -webkit-left;"></span></span><br />
<pre class="GD40030CLR" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-family: 'Lucida Console'; font-size: 10pt !important; line-height: 1.3; outline-color: initial; outline-style: none; outline-width: initial; white-space: pre-wrap !important;" tabindex="0"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-collapse: separate;"><span class="Apple-style-span" style="text-align: -webkit-left;"><span class="GD40030COR ace_keyword" style="color: blue; white-space: pre;">> </span><span class="GD40030CCR ace_keyword" style="color: blue;">address
</span> results.formatted_address
"668 Coleridge Ave, Palo Alto, CA 94301, USA" </span></span></pre>
<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-collapse: separate;"><span class="Apple-style-span" style="text-align: -webkit-left;">
<pre class="GD40030CLR" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; font-family: 'Lucida Console'; font-size: 10pt !important; line-height: 1.3; outline-color: initial; outline-style: none; outline-width: initial; white-space: pre-wrap !important;" tabindex="0"></pre>
<pre class="GD40030CLR" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; outline-color: initial; outline-style: none; outline-width: initial;" tabindex="0"><span style="font-family: Arial; font-size: 10pt !important; line-height: normal; white-space: pre-wrap !important;">Happy Coding!</span></pre>
</span></span></div>
<br />Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com0tag:blogger.com,1999:blog-629090550108054777.post-36795855805335702882012-03-14T00:28:00.000-07:002012-03-14T08:21:28.650-07:00R and SAP HANA: A Highly Potent Combo for Real Time Analytics on Big Data<br />
<div class="MsoNormal">
<span style="font-size: large;">Lets Talk Code</span></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
SAP DKOM 2012 kicks off in San Jose today and I can’t be
more excited than this. For the past
three months Jens Doerpmund, Chief Development Architect of Analytics at SAP and I have been
working on this topic of R and SAP HANA and all our hard work (upwards of 400 hours) is about to pay
off (fingers crossed).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It has been a stunning journey and an incredible learning experience. Both R and HANA are fascinating technologies and bringing
them together is analogous to bringing Google and Apple together. We are
gearing up for our session and in the true spirit of DKOM,<b> <span style="background-color: yellow;">we
will be only talking code, yes code and lots of it.</span></b> We just wrapped up our slides with lots of
code snippets to share with fellow DKOMers. Here is a
quick sneak preview of what we are going to cover today:</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Big Data Analytics
(Really Big)<o:p></o:p></b></div>
<div class="MsoNormal">
</div>
<ul>
<li>Airlines sector in the travel industry</li>
<li>22 years (1987-2008) of airlines on time performance data on
US airlines</li>
<li>123 million records</li>
<li>Extract Transform Load – ETL work to combine this data with
data on airports, data on carriers with this data to setup for Big Data
analysis in R and HANA</li>
<li>D20 with 96GB of RAM and 24 Cores</li>
<li>Massive amount of data crunching using R and HANA</li>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p> </o:p><b>We will be covering
lots and lot of topics, here is a short list:</b></div>
<div class="MsoNormal">
</div>
<ul>
<li>Sentiment Analysis on #DKOM and a WordCloud</li>
<li>Cluster Analysis using K-Mean</li>
<li>Geo Code Your Data – Google Maps API</li>
<li>SP100 - XML Parsing and Historical Stock Data</li>
<li>R and HANA integration</li>
<li>Moving big-data from one HANA to another HANA (Replication)</li>
<li>Server side Java Scripting</li>
<li>and an HTML5 App built with R, HANA and Server Side Java
Script</li>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg33hj_oOEmPP0VtQsMJysQ4FSUAF4lyqHC6Gna2ox-Jv6Ar7o5SuGSCEqkRuOiphrr_T38nJ6spMXRk8tiWcYwd_2EY8tGARd76lnrkSMLbYEpe4EJbGIpsVjhmXp9YWsrXlBnOBa8_xw/s1600/DKOM-WordCloud+in+R.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg33hj_oOEmPP0VtQsMJysQ4FSUAF4lyqHC6Gna2ox-Jv6Ar7o5SuGSCEqkRuOiphrr_T38nJ6spMXRk8tiWcYwd_2EY8tGARd76lnrkSMLbYEpe4EJbGIpsVjhmXp9YWsrXlBnOBa8_xw/s400/DKOM-WordCloud+in+R.png" width="400" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Here is a wordcloud straight from R on #DKOM. There will be lot more to discuss today. Looking forward to meeting you all DKOMers.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Lets Talk Code Everyone and Happy Coding!<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<o:p> Jitender Aswani</o:p></div>
<div class="MsoNormal">
<o:p> Jens Doerpmund</o:p></div>
<div class="MsoNormal">
<o:p><br /></o:p></div>
<div class="MsoNormal">
<o:p>Learn more on this session topic in my previous blog: <a href="http://goo.gl/AKGxW" target="_blank">Advance Analytics with R and HANA at DKOM 2012 San Jose </a></o:p></div>Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com1tag:blogger.com,1999:blog-629090550108054777.post-17060058744911958962012-03-02T00:03:00.001-08:002012-03-14T08:22:49.137-07:00Advanced Analytics with R and HANA at DKOM 2012 San Jose<br />
<div class="MsoNormal">
<span style="font-size: large;"><b>Advanced Analytics with R and SAP HANA</b></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
R has become the open source language of choice for
statistical data analysis / data mining, advanced algorithms, credit risk
scoring and for other forms of predictive analytics. R is already an
in-memory based scripting language and is capable of handling big data, tens of
gigabytes and hundreds of millions of rows. And when combined with SAP's
in-memory platform technology called HANA, R offers the potential to take the
in-memory analytics to a whole new level. Imagine performing advanced
statistical analysis such as decision tree, game-theory, linear and multiple
regressions and much more inside SAP HANA on millions of rows and turning
around with critical business insights at the speed of thought. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This is
possible now with R and HANA. This combination has the potential to
completely revolutionize and advance the game of analytics in your
enterprise. This is not it yet. Imagine taking the output from R
and using the Advanced Visualization techniques available in Business
Intelligence 4.0 suite based on HTML5 to create stunning visualization for
today’s business users.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Just to tease you, here is a one-liner in R that processed <span style="background-color: yellow;">120 million records and brought back aggregated data under 20 seconds:</span></div>
<div class="MsoNormal">
<span style="background-color: yellow;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: yellow;"></span></div>
<div class="MsoNormal">
averageDelay <- dt[,list(AvgArrDelay=round(mean(ArrDelay, na.rm=TRUE), digits=2),</div>
<div class="MsoNormal">
AvgDepDelay=round(mean(DepDelay, na.rm=TRUE), digits=2),</div>
<div class="MsoNormal">
DistanceTravelled=sum(Distance, na.rm=TRUE),</div>
<div class="MsoNormal">
FlightCount=length(Month)), </div>
<div class="MsoNormal">
by=list(UniqueCarrier, Year)][order(Year, -AvgArrDelay)][AvgArrDelay > 10 | AvgDepDelay > 10]</div>
<div>
<br /></div>
<div>
The machine I used for this analysis had 24 cores and 96GB of memory! More to follow over next few days.</div>
<div>
<br /></div>
<div>
<span style="font-size: large;"><i>Join me and my fellow colleagues for this session at DKOM 2012 San Jose (March 14th at 11 AM at San Jose Convention Center)</i></span>
</div>
<br />Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com1tag:blogger.com,1999:blog-629090550108054777.post-84569011360969383432012-02-15T06:51:00.000-08:002012-02-15T06:57:55.712-08:00You Get What You Pay For - Tale of Two Acquisitions - SAP-SFSF and ORCL-TLEO<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;">Two months ago, SAP made an offer to acquire SuccessFactors("SFSF"), the leading cloud based Human Capital Management ("HCM") company for $3.4B, a multiple of 10.2 on 2011 on expected 2011 revenue of $332M. I published the following two blogs on this development back in December:</span></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: -webkit-auto;">
</div>
<ul>
<li><a href="http://goo.gl/U5InJ" target="_blank"><span style="font-family: inherit;">Tale of Two Companies - SFSF and RNOW - Why would anyone compare SAP-SuccessFactors deal with Oracle-RightNow deal?</span></a></li>
<li><a href="http://goo.gl/z5jfD" target="_blank"><span style="font-family: inherit;">SuccessFactors - An amazing tech story through its financials and a solid grab by SAP!</span></a></li>
</ul>
<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;">Salesforce followed suite and acquired Rypple, a company that employs badges and achievements to imbue the employee review process with a collaborative, social media-like experience. Financial terms were not disclosed. <span style="font-size: x-small;">(Source: <a href="http://goo.gl/0VS76" target="_blank">EnterpriseAppToday</a>)</span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;">Oracle was long due after the RNOW acquisition and it decided to follow SAP (for the first time) and Salesforce by acquiring Taleo ("TLEO"), the #2 company in the business, for $1.9B, a multiple of 6.15 on 2011 revenues of $309M.<span style="font-size: x-small;"> (Source: <a href="http://goo.gl/q3xsE" target="_blank">BusinessWeek</a>)</span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;">As usual, folks are reaching out and saying whether SAP's SFSF acquisition is expensive due to a higher multiple it paid to SFSF shareholders and whether it rushed in too early. </span><span style="font-family: inherit;">I don't believe that SAP's SFSF acquisition is expensive by any stretch of the imagination. "You get what you pay for" - this notion is quite true in this case. </span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;">The business rationale SAP announced when it made the decision to acquire SFSF was that SFSF is:</span></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both;">
</div>
<ul>
<li><span style="font-family: inherit;">#1 HCM solution in the cloud</span></li>
<li><span style="font-family: inherit;">has 15m users from company of all sizes (SalesForce has only 3m users) in diverse 60 industries from across the globe (Example: Siemens has 450K seats)</span></li>
<li><span style="font-family: inherit;">3,500 customers in 168 countries</span></li>
<li><span style="font-family: inherit;">60% recurring revenues from existing customers</span></li>
<li><span style="font-family: inherit;">90% of the growth is organic as oppose to Salesforce</span></li>
<li><span style="font-family: inherit;">Has just 14% overlap with SAP customers – a tremendous upside for both companies (with total addressable market of 500m employees of all SAP customers)</span></li>
</ul>
<div>
<span style="font-family: inherit;">On the other end, this is what TLEO disclosed it has: </span></div>
<div>
<ul>
<li><span style="font-family: inherit;">one of the world’s largest cloud deployments with nearly 16 billion transactions per year</span></li>
<li><span style="font-family: inherit;">manages 15 percent of all hires in the US </span></li>
<li><span style="font-family: inherit;">has a customer base comprised of 5,000 businesses </span></li>
<li><span style="font-family: inherit;">its Talent Exchange boasts 240 million candidates </span></li>
<li><span style="font-family: inherit;">of the top 30 career sites, nearly half are powered by its technology.</span></li>
</ul>
</div>
<div>
<span style="font-family: inherit;"><span style="font-size: x-small;">(Source: </span><a href="http://www.taleo.com/sites/default/files/Taleo-Oracle.pdf" style="font-size: small;" target="_blank">Taleo</a><span style="font-size: x-small;">)</span>
</span></div>
<div>
<span style="font-size: x-small;"><span style="font-family: inherit;"><br /></span></span></div>
<br />
<div style="text-align: left;">
<span style="font-family: inherit;">The two companies can hardly be compared on these business metrics, so I am going to focus purely on financials. </span><span style="font-family: inherit;">SAP put a forward multiple of 8 on SFSF's expected 2012 revenues of $420M while Oracle is paying a forward multiple of 5 on TLEO's expected 2012 revenues of $379M. There is this informal "rule of thumb" in place that states that one should pay a multiple of six to eight times of forward earnings for acquiring growth companies. </span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="font-family: inherit;">Through following series of comparison charts, one could clearly see why SFSF will fetch a higher premium over TLEO. Everything boils down to just couple of financial metrics and these metrics are: growth and operational efficiencies:</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both;">
<i><span style="font-family: inherit;">1. SFSF is a better growth story with CAGR more than DOUBLE than that of TLEO:</span></i></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB0Mrj0JubWFtbiN4VPQ95vVMIPSZoOu44t4v80O8tARpbda39U50Zehu5oFY4m1GBN5gaxADZKfpYX3kLTb9KrIr0ERCpGgPomHS5fnJwcMk49n7PT6v-lZnNzMhJGLnJnxD0cixsIiU/s1600/9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB0Mrj0JubWFtbiN4VPQ95vVMIPSZoOu44t4v80O8tARpbda39U50Zehu5oFY4m1GBN5gaxADZKfpYX3kLTb9KrIr0ERCpGgPomHS5fnJwcMk49n7PT6v-lZnNzMhJGLnJnxD0cixsIiU/s640/9.png" width="640" /></a>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCOwSrFOx3oRZG-wibT9j8PtIRxByhl9MfJbOXva8pLbo6qRJMy4FkiIW4bX6TNc4k2iTLmD8k1spFbmYr4adfwit82YU4EnHlZa7Rugy1HMll-pcliH2NVtaSX316w-T315eUMe4bcwA/s1600/1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<i><span style="font-family: inherit;">2. SFSF has far better cost structure than TLEO even though SFSF has grown revenues more than TWICE as fast:</span></i></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUMesq-1dX7VA-9nipUyg51Y-Sc_Xq2EvIOda7FiX885kzju6L0q7B2AWgsYSzznU1CX6WQMmHMtU1RnkrhLHqDIYEC8OPomSN8VGfFofKQl9ZvR5cgU8csovsd8rpz4YogSBB08VdlyA/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUMesq-1dX7VA-9nipUyg51Y-Sc_Xq2EvIOda7FiX885kzju6L0q7B2AWgsYSzznU1CX6WQMmHMtU1RnkrhLHqDIYEC8OPomSN8VGfFofKQl9ZvR5cgU8csovsd8rpz4YogSBB08VdlyA/s640/8.png" width="640" /></a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<i>3. SFSF has somewhat better operating structure and is rapidly becoming more efficient with every dollar it spends on its operating cost. TLEO has done a good job of keeping its cost structure the same, one must wonder, why TLEO is not becoming operationally more efficient:</i></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyPKPA3nrWwBSIjcFlRq-i0wdLG4rfOcn9fotwJcORoM8hqH45Oj8moeVjeusGpJn47O1r9FFczq3kXX9O9lMe4rsgqAQn9oigdiVN0BQq1a52ZI_JrzBKE4v5xjihamqZvfuWwBxxaQk/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="463" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyPKPA3nrWwBSIjcFlRq-i0wdLG4rfOcn9fotwJcORoM8hqH45Oj8moeVjeusGpJn47O1r9FFczq3kXX9O9lMe4rsgqAQn9oigdiVN0BQq1a52ZI_JrzBKE4v5xjihamqZvfuWwBxxaQk/s640/7.png" width="640" /></a></div>
<br />
<i>4. Making money from the cloud apps has been very tough business but this is very quickly starting to change as economies of scale kick in and both companies improve their net-income. SFSF definitely has done a good job in trimming its losses: </i><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRlxJcaJ8sMs7dlcKewVcpMIs9IXsQ_DIWpA1YF04HjfcBnarWbzwltRc6vqN9irBUl-ddcYS2fqfCZHeb33C1okWAxarJ4ZdxLd7iIUF3cTOPPNOKIYAWMhTHvZcoD3mZ1-gl_ylZjaQ/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRlxJcaJ8sMs7dlcKewVcpMIs9IXsQ_DIWpA1YF04HjfcBnarWbzwltRc6vqN9irBUl-ddcYS2fqfCZHeb33C1okWAxarJ4ZdxLd7iIUF3cTOPPNOKIYAWMhTHvZcoD3mZ1-gl_ylZjaQ/s640/6.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<i>5. The last two charts just compare the growth in revenue for the two companies since inception:</i></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCOwSrFOx3oRZG-wibT9j8PtIRxByhl9MfJbOXva8pLbo6qRJMy4FkiIW4bX6TNc4k2iTLmD8k1spFbmYr4adfwit82YU4EnHlZa7Rugy1HMll-pcliH2NVtaSX316w-T315eUMe4bcwA/s1600/1.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCOwSrFOx3oRZG-wibT9j8PtIRxByhl9MfJbOXva8pLbo6qRJMy4FkiIW4bX6TNc4k2iTLmD8k1spFbmYr4adfwit82YU4EnHlZa7Rugy1HMll-pcliH2NVtaSX316w-T315eUMe4bcwA/s640/1.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivhjvBcllQ2mjYb8BVYuAIaeQr_YrwCu_hmz3r8JaSxWqo5rrlKLHMPwagQBJRSTylgJN8mrVhZ9gEYlUs0uWGGC6gJw8bTPjj1lPhPeXYPfaGIBUX53S1iOxl3SxInblWyq6AyOwu3Io/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivhjvBcllQ2mjYb8BVYuAIaeQr_YrwCu_hmz3r8JaSxWqo5rrlKLHMPwagQBJRSTylgJN8mrVhZ9gEYlUs0uWGGC6gJw8bTPjj1lPhPeXYPfaGIBUX53S1iOxl3SxInblWyq6AyOwu3Io/s640/2.png" width="640" /></a><br />
<div>
<br /></div>
<div>
<span style="font-family: inherit;">The bottom line is that SFSF is a better growth story and is operationally more efficient than TLEO so a higher multiple for SFSF is fully justified in my opinion. </span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Did you know that, Oracle paid a multiple of 10x on Endeca's 2011 revenues? It is not just other companies (SAP or HP) that pay a forward multiple of 10x.</span></div>
<div>
<div>
<span style="font-family: inherit;">“Though Oracle and Endeca haven't talked about the acquisition price, I reported in October that California-based Oracle had agreed to pay $1.075 billion for the company (based on a document I obtained related to the deal).” <span style="font-size: x-small;">(Source:<a href="http://goo.gl/jOXf7" target="_blank"> boston.com</a>) </span></span></div>
</div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Happy Browsing!</span></div>
Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com0tag:blogger.com,1999:blog-629090550108054777.post-92126203218816772222012-02-01T03:02:00.000-08:002012-02-01T03:58:09.481-08:00Big Four and the Battle of Sentiments - Oracle, IBM, Microsoft and SAPIn this battle of sentiments or opinions for the four software giants - Oracle, IBM, Microsoft and SAP, SAP is generating a lot of positive buzz with its message of <b>"innovation without disruption" </b>and leading the pack with a 95% sentiment score.<br />
<b><br /></b><br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; text-align: center; width: 625px;"><colgroup><col style="width: 48pt;" width="64"></col><col style="mso-width-alt: 5046; mso-width-source: userset; width: 104pt;" width="138"></col><col style="mso-width-alt: 3766; mso-width-source: userset; width: 77pt;" width="103"></col><col style="mso-width-alt: 3986; mso-width-source: userset; width: 82pt;" width="109"></col><col style="width: 48pt;" width="64"></col><col style="mso-width-alt: 3035; mso-width-source: userset; width: 62pt;" width="83"></col><col style="width: 48pt;" width="64"></col></colgroup><tbody>
<tr height="20" style="height: 15.0pt;"><td class="xl65" height="20" style="height: 15pt; width: 48pt;" width="64"><b>Tag</b></td><td class="xl65" style="width: 104pt;" width="138"><b>TweetsFetched</b></td><td class="xl65" style="width: 77pt;" width="103"><b>+ve Tweets</b></td><td class="xl65" style="width: 82pt;" width="109"><b>-ve Tweets</b></td><td class="xl65" style="width: 48pt;" width="64"><b>Avg.Score</b></td><td class="xl65" style="width: 62pt;" width="83"><b>Tweets</b></td><td class="xl65" style="width: 48pt;" width="64"><b>Sentiment</b></td></tr>
<tr height="20" style="height: 15.0pt;"><td class="xl66" height="20" style="height: 15pt; text-align: left;">@IBM</td><td class="xl66">198</td><td class="xl66">49</td><td class="xl66">45</td><td class="xl66">0.081</td><td class="xl66">94</td><td class="xl67">52%</td></tr>
<tr height="20" style="height: 15.0pt;"><td class="xl68" height="20" style="height: 15pt;">@Microsoft</td><td class="xl68">893</td><td class="xl68">307</td><td class="xl68">78</td><td class="xl68">0.484</td><td class="xl68">385</td><td class="xl69">80%</td></tr>
<tr height="20" style="height: 15.0pt;"><td class="xl66" height="20" style="height: 15pt; text-align: left;">@Oracle</td><td class="xl66">297</td><td class="xl66">90</td><td class="xl66">17</td><td class="xl66">0.313</td><td class="xl66">107</td><td class="xl67">84%</td></tr>
<tr height="20" style="height: 15.0pt;"><td class="xl68" height="20" style="height: 15pt; text-align: left;">@SAP</td><td class="xl68">98</td><td class="xl68">55</td><td class="xl68">3</td><td class="xl68">0.673</td><td class="xl68">58</td><td class="xl69">95%</td></tr>
</tbody></table>
<br />
<br />
Few days ago, I published this blog <a href="http://goo.gl/YlC2n" target="_blank">"Updated Sentiment Analysis and a Word Cloud for Netflix"</a> and the underlying R code. I used the same R program to compare the sentiments for the four software giants. Now, technically speaking, IBM and Oracle are not pure software companies anymore since they both package hardware (server and storage hardware) along with the software but the rivalry between these four companies persuaded me to put a comparative analysis here. I originally included HP in this analysis but then dropped it as I didn't consider HP in the same league as these fours in the software category.<br />
<br />
What surprised me the most was the lowest score IBM received, lower than Oracle! What went wrong here? I am also surprised to see Oracle occupying the second spot with 84% sentiment score. So besides all the negative publicity Oracle attracts, the sentiment is overwhelmingly positive.<br />
<br />
The one improvement I would like to make to this analysis is to get more tweets. Twitter API restricts the number of tweets that one can fetch and doesn't allow you to fetch older tweets. I would love to run this analysis over a year worth of tweets and also show a time series of sentiment score. That will be fantastic!<br />
<br />
Here are the four histograms, one each for four candidates, showing the distribution of opinion scores:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXuVfx_idTcu0qkb579WEkEuwP7YZib-X33O0j7G1cLHdVsK-f3TMRIRb2jm40BaaLVKVxhF-XcI-20-0YBQffUW7Y54FA46YW75wj2QoCaOeUhLEutc6WjiYgGIP6uXkKNodMGZ1pRak/s1600/@SAP.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br class="Apple-interchange-newline" /><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXuVfx_idTcu0qkb579WEkEuwP7YZib-X33O0j7G1cLHdVsK-f3TMRIRb2jm40BaaLVKVxhF-XcI-20-0YBQffUW7Y54FA46YW75wj2QoCaOeUhLEutc6WjiYgGIP6uXkKNodMGZ1pRak/s400/@SAP.png" width="400" /></a></div>
<br />
<b><br /></b><br />
<b><br /></b><br />
<b><br /></b><br />
<b><span style="font-size: x-large;">SAP</span></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhhhUZgVNJWW8mqT0nmayH_SZwDJSl-V8LyPzzGYEkQdZ_OuSP96OhkqVJKk30kjhlD_qFalKX0aoIl0PNSR5YhUwEHFi44jwgyU-ayurq2fQUXIKorhHhMgZx2aExbMTlUt6QMjOxyFA/s1600/@IBM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhhhUZgVNJWW8mqT0nmayH_SZwDJSl-V8LyPzzGYEkQdZ_OuSP96OhkqVJKk30kjhlD_qFalKX0aoIl0PNSR5YhUwEHFi44jwgyU-ayurq2fQUXIKorhHhMgZx2aExbMTlUt6QMjOxyFA/s400/@IBM.png" width="400" /></a></div>
<br />
<br />
<b><br /></b><br />
<b><br /></b><br />
<b><br /></b><br />
<b><br /></b><br />
<b><span style="font-size: x-large;">IBM</span></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAaUUK0iHOrnQovSEiDcofrRdy3w-LroUMK3DAhPO_JUUaqvxc_NiyU7ms1e24W7BuFXndK81os6cGx7yy2_mlNVHnSlKdBfoF5-4soiWfZyvFX1jLQwCrhz9yvStP0YZbggE1RsM01CU/s1600/@MSFT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAaUUK0iHOrnQovSEiDcofrRdy3w-LroUMK3DAhPO_JUUaqvxc_NiyU7ms1e24W7BuFXndK81os6cGx7yy2_mlNVHnSlKdBfoF5-4soiWfZyvFX1jLQwCrhz9yvStP0YZbggE1RsM01CU/s400/@MSFT.png" width="400" /></a></div>
<br />
<br />
<br />
<b><br /></b><br />
<b><br /></b><br />
<b><span style="font-size: x-large;">Microsoft</span></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAq8r7zfSLFs2K5-ioGHhqAS9WTWnk7A8nBbNg8wdp-AY5ChwyXPTNqmLEPmrFj3mtW2QZDwPB7SVV5zJ_82Aa6k76Ro9ayzUPqbAFgCYwrirdTpGhDspgdcdz6Yoza8-kSKNwbWD8Yl4/s1600/@Oracle.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAq8r7zfSLFs2K5-ioGHhqAS9WTWnk7A8nBbNg8wdp-AY5ChwyXPTNqmLEPmrFj3mtW2QZDwPB7SVV5zJ_82Aa6k76Ro9ayzUPqbAFgCYwrirdTpGhDspgdcdz6Yoza8-kSKNwbWD8Yl4/s400/@Oracle.png" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<b><span style="font-size: x-large;">Oracle</span></b><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Happy Analyzing!
<br />
<br />
<br />
The underlying data can be <a href="https://docs.google.com/spreadsheet/ccc?key=0ApOLTMyf3hIPdFh0Wm82TXhfdFdWZktsSGx1T1pBOUE" target="_blank">downloaded here</a>.<br />
<br />
<br />
<div style="text-align: center;">
<br /></div>Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com0tag:blogger.com,1999:blog-629090550108054777.post-20585240695594222192012-01-31T00:09:00.000-08:002012-02-01T02:02:36.227-08:00Agile BI, Simple BI, Self-Serve BI - Okay, What the Hell This Thing is?In layman's terms, anyone, including my mom, who is suffering from information overload should be able to analyze any data using simple and easy to use data visualization tools, get insights (like growth in milk usage at our home) and then share the results with my dad who should cut feeding expensive organic milk to his two cats.<br />
<br />
Wow, that sounds pretty simple, isn't it? Yes, and precisely for that reason IDC says that this phenomenon presents a big market opportunity:<br />
<br />
<br />
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; text-align: center; unicode-bidi: embed; word-break: normal;">
<span style="font-family: Times, 'Times New Roman', serif;"><span style="color: #202020; font-style: italic;">“We are at the
forefront of an evolutionary market that is fraught with opportunity for
innovative tools and solutions that can help users handle the information
overload plaguing every major organization around the globe.” </span><span style="color: #202020;"><span style="font-size: x-small;">IDC Market Analysis,
Worldwide Interactive Data Visualization Tools Forecast</span></span></span></div>
<br />
<br />
How big of a market opportunity? $1 Billion big by 2013 and $1.6 Billion by 2015 says Gartner. See this graphics:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_hv5tkcOezfQjKmfynlKi16BcGv7D6eVVeNgXJXkbiycLrko6aLElDJ22zL7frC2ot6xcss8BBD2KBSID6rp_XCHpGxE19aJhr7Y6dUs7xsGk1lDnLsQTLcGMNAzmvTxZyjSHKORb6uQ/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_hv5tkcOezfQjKmfynlKi16BcGv7D6eVVeNgXJXkbiycLrko6aLElDJ22zL7frC2ot6xcss8BBD2KBSID6rp_XCHpGxE19aJhr7Y6dUs7xsGk1lDnLsQTLcGMNAzmvTxZyjSHKORb6uQ/s640/Picture1.png" width="640" /></a></div>
<br />
So someone asked me few weeks ago, how would you define simple, self-serve BI and I gave him the following definition -<br />
<br />
<div style="text-align: left;">
<b><i>Agile BI is a simple yet power-packed solution which is easy-to-use, cost-effective and offers full 360 degree experience and above all my mom should be able to use it without bugging me...</i></b></div>
<div style="text-align: left;">
<br /></div>
And here is my definition of a power-packed solution:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGZiz7nfqBccK58OQ-GiZSyuyKLVT4qCIv9LiaLAePrqKm7CD2VeB9GXduY8nEuPFlTJU2lMb4wOfoE8BeR4u_-o7K1zZCFx3usS7z_C6zA6X5rAHApXt9Mp1ACy2rxDjS__Dt8vM2yXE/s1600/Picture3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGZiz7nfqBccK58OQ-GiZSyuyKLVT4qCIv9LiaLAePrqKm7CD2VeB9GXduY8nEuPFlTJU2lMb4wOfoE8BeR4u_-o7K1zZCFx3usS7z_C6zA6X5rAHApXt9Mp1ACy2rxDjS__Dt8vM2yXE/s640/Picture3.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgIzrdgmZ3hCKdNQZ-4tQWHHP-w_gCFuhu64Ire54PwmkdlmzSAWVIfbRQZOfNt_bGynEmK4CPrl07782TgDyvDtaf4pnkKpxoJgeskseyOxByGS9Nje6DqqwG13aZSRBBh7NWg6j96Cs/s1600/Picture2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgIzrdgmZ3hCKdNQZ-4tQWHHP-w_gCFuhu64Ire54PwmkdlmzSAWVIfbRQZOfNt_bGynEmK4CPrl07782TgDyvDtaf4pnkKpxoJgeskseyOxByGS9Nje6DqqwG13aZSRBBh7NWg6j96Cs/s320/Picture2.png" width="320" /></a></div>
<br />
<br />
There are ZERO products that fulfill this vision today. Products like QlikTech, Spotfire and Tableau do a pretty good job and therefore enjoy more that 70% of the market share. Where are the big guys?<br />
<br />
"Agile" and "Big" doesn't go together I guess!<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilqHae1z3ELNt8RO_NiXfKvNq6SiqAF2lp0HPAGbcYeyaeOztgSQ9_egJ6RhTsJ7gE0P6RNgVFxJwmCyeVxRwQIgXuvW9OAvgbQTcrQy8d8O-bj8MD_McYFexXQ2ZgrP2b9ORG0TCdNtA/s1600/Picture4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilqHae1z3ELNt8RO_NiXfKvNq6SiqAF2lp0HPAGbcYeyaeOztgSQ9_egJ6RhTsJ7gE0P6RNgVFxJwmCyeVxRwQIgXuvW9OAvgbQTcrQy8d8O-bj8MD_McYFexXQ2ZgrP2b9ORG0TCdNtA/s320/Picture4.png" width="310" /></a></div>
<br />
<br />
<br />
Here is how I contrasted Qlik against a large enterprise BI player:
<br />
<br />
<br />
<br />
This story is universal and gives competitive advantage to younger more agile players over their older and aging brethren because they have offered one single self-serve BI tool that could serve to many personas!
<br />
<br />
<br />
<br />
<br />
<br />
Qlik and Tableau have seen pretty solid growth over the past few years as a result of keeping their strategy simple. Here is an older blog on Qlik showing its amazing growth: http://goo.gl/cyV7a<br />
<b><br /></b><br />
<span style="background-color: white;">The most recent evidence of double digit growth in the Agile BI market was seen in Tableau's 2011 earnings: (</span><a href="http://apandre.wordpress.com/">http://apandre.wordpress.com/</a>)<br />
<div class="MsoNormal">
</div>
<ul>
<li><span style="background-color: white; text-indent: -0.25in;">sales
doubled year over year to $72M in 2011</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; text-indent: -0.25in;">104%
growth in bookings in Q4’11 and 94% growth YoY,</span></li>
<li><span style="background-color: white; text-indent: -0.25in;">WW
customer base grew by 40% in 2011</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; text-indent: -0.25in;">more
than 7,000 organizations use its analytics product</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; text-indent: -0.25in;">big
growth with customers in Europe, where base grew by 67 percent</span></li>
</ul>
<br />
<div class="MsoNormal">
<span style="background-color: white;">2011 was the year of Agile (Simple) BI and the
momentum is gaining further strength. Do you know now what Agile BI a.k.a Simple BI a.k.a self-serve BI is defined as?</span></div>
<br />
Happy Simplifying!<br />
<br />Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com1tag:blogger.com,1999:blog-629090550108054777.post-77068098969255115152012-01-30T11:28:00.000-08:002012-01-30T22:59:32.582-08:00Updated Sentiment Analysis and a Word Cloud for Netflix - The R Way!The Netflix investors must be happy and cheerful as the stock is up more than 78% since the beginning of the year (YES, 78%, <span style="font-size: xx-small;"><i>Source: Yahoo Finance!)</i></span>. I am not going to talk about what turned the stock around after a much talked/hyped about Netflix debacle of the late 2011 that earned Reed Hastings quite a few UNWANTED title and every one demanded his resignation from the top post. Not so fast, Mr. Bear! Reed Hastings must be smiling! After a stellar performance this year including carefully released stats on viewership, streaming hours as well as a solid Q4'11 earnings, Netflix is back and most importantly viewers are back!<br />
<br />
Well, is is not coincidental that the sentiment for Netflix is also improving, 68% of the tweets now have positive sentiment. See the table below:<br />
<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 582px;">
<colgroup><col style="mso-width-alt: 3657; mso-width-source: userset; width: 75pt;" width="100"></col>
<col style="mso-width-alt: 3986; mso-width-source: userset; width: 82pt;" width="109"></col>
<col style="mso-width-alt: 3693; mso-width-source: userset; width: 76pt;" width="101"></col>
<col style="mso-width-alt: 3840; mso-width-source: userset; width: 79pt;" width="105"></col>
<col style="mso-width-alt: 3328; mso-width-source: userset; width: 68pt;" width="91"></col>
<col style="mso-width-alt: 2779; mso-width-source: userset; width: 57pt;" width="76"></col>
</colgroup><tbody>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="height: 15.0pt; width: 75pt;" width="100"><b><i>Total </i></b></td>
<td class="xl63" style="width: 82pt;" width="109"><b><i>Positive</i></b></td>
<td class="xl63" style="width: 76pt;" width="101"><b><i>Negative</i></b></td>
<td class="xl63" style="width: 79pt;" width="105"><b><i>Average</i></b></td>
<td class="xl63" style="width: 68pt;" width="91"><b><i>Total</i></b></td>
<td class="xl63" rowspan="2" style="width: 57pt;" width="76"><b><i>Sentiment</i></b></td>
</tr>
<tr height="34" style="height: 25.5pt;">
<td class="xl63" height="34" style="height: 25.5pt; width: 75pt;" width="100"><b><i>Tweets
<br /> Fetched</i></b></td>
<td class="xl63" style="width: 82pt;" width="109"><b><i>Tweets</i></b></td>
<td class="xl63" style="width: 76pt;" width="101"><b><i>Tweets</i></b></td>
<td class="xl63" style="width: 79pt;" width="105"><b><i>Score</i></b></td>
<td class="xl63" style="width: 68pt;" width="91"><b><i>Tweets</i></b></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl64" height="20" style="height: 15.0pt; width: 75pt;" width="100"><i>499</i></td>
<td class="xl64" style="width: 82pt;" width="109"><i>171</i></td>
<td class="xl64" style="width: 76pt;" width="101"><i>80</i></td>
<td class="xl64" style="width: 79pt;" width="105"><i>0.281</i></td>
<td class="xl64" style="width: 68pt;" width="91"><i>251</i></td>
<td class="xl65" style="width: 57pt;" width="76"><i>68%</i></td>
</tr>
</tbody></table>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; text-align: center; width: 678px;"><colgroup><col style="mso-width-alt: 2669; mso-width-source: userset; width: 55pt;" width="73"></col><col style="mso-width-alt: 4937; mso-width-source: userset; width: 101pt;" width="135"></col><col style="mso-width-alt: 3766; mso-width-source: userset; width: 77pt;" width="103"></col><col style="mso-width-alt: 3986; mso-width-source: userset; width: 82pt;" width="109"></col><col span="2" style="mso-width-alt: 3401; mso-width-source: userset; width: 70pt;" width="93"></col><col style="mso-width-alt: 2633; mso-width-source: userset; width: 54pt;" width="72"></col></colgroup><tbody></tbody></table>
<br />
<br />
<br />
<span style="font-size: x-small;">*Make sure you understand and interpret this analysis correctly. This analysis is not based on NLP. </span>
<br />
<br />
I updated the sentiment analysis that I did last year, <a href="http://goo.gl/fkfPy">http://goo.gl/fkfPy</a> , (I was then just beginning to play with Twitter and Text Mining packages in R) and used advanced packages like "TM" and "WordCloud". The new analysis is based on more than 6,800 words which are most commonly prescribed in various sentiment analysis blogs/books. (Check out Hu and Liu <a href="http://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html" style="font-family: arial;" target="_blank">http://www.cs.uic.edu/~liub/<wbr></wbr>FBS/sentiment-analysis.html</a><span style="font-family: arial;">)</span><br />
<br />
I came across this excellent blog by Jeffrey Bean, @JeffreyBean, (http://goo.gl/RPkFX) and his tutorial. Thank you Mr. Bean! Please follow the instructions from Bean's slides and the R code listed there as well as the R code here:<br />
<br />
Here is the updated R code snippets -<br />
<span style="background-color: #fff2cc; font-family: arial; font-size: x-small;">#</span><span style="background-color: #fff2cc; font-family: arial; font-size: xx-small;">Populate the list of sentiment words from Hu and Liu (<a href="http://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html" target="_blank">http://www.cs.uic.edu/~liub/<wbr></wbr>FBS/sentiment-analysis.html</a>)</span><br />
<br />
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">huliu.pwords <- scan('opinion-lexicon/<wbr></wbr>positive-words.txt', what='character', comment.char=';')</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">huliu.nwords <- scan('opinion-lexicon/<wbr></wbr>negative-words.txt', what='character', comment.char=';')</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"><br /></span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"># Add some words</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">huliu.nwords <- c(huliu.nwords,'wtf','wait','<wbr></wbr>waiting','epicfail', 'crash', 'bug', 'bugy', 'bugs', 'slow', 'lie')</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">#Remove some words</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">huliu.nwords <- huliu.nwords[!huliu.nwords=='<wbr></wbr>sap']</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">huliu.nwords <- huliu.nwords[!huliu.nwords=='<wbr></wbr>cloud']</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">#which('sap' %in% huliu.nwords)</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"><br /></span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">twitterTag </span><span style="background-color: #fff2cc; font-size: xx-small;"><- "@Netflix"</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"># Get 1500 tweets - an individual is only allowed to get 1500 tweets</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"> tweets <- searchTwitter(tag, n=1500)</span></div>
<div style="font-family: arial;">
<div>
<span style="background-color: #fff2cc; font-size: xx-small;"> tweets.text <- laply(tweets,function(t)t$<wbr></wbr>getText())</span></div>
<div>
<span style="background-color: #fff2cc; font-size: xx-small;"> sentimentScoreDF <- getSentimentScore(tweets.text)</span></div>
<div>
<span style="background-color: #fff2cc; font-size: xx-small;"> sentimentScoreDF$TwitterTag <- twitterTag</span></div>
</div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"><br /></span></div>
<span style="background-color: #fff2cc; font-size: xx-small;"><br class="Apple-interchange-newline" /></span><br />
<br />
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"># Get rid of tweets that have zero score and seperate +ve from -ve tweets</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">sentimentScoreDF$posTweets <- as.numeric(sentimentScoreDF$<wbr></wbr>SentimentScore >=1)</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">sentimentScoreDF$negTweets <- as.numeric(sentimentScoreDF$<wbr></wbr>SentimentScore <=-1)</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"><br /></span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">#Summarize finidings</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">summaryDF <- ddply(sentimentScoreDF,"<wbr></wbr>TwitterTag", summarise, </span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"> TotalTweetsFetched=length(<wbr></wbr>SentimentScore),</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"> PositiveTweets=sum(posTweets)<wbr></wbr>, NegativeTweets=sum(negTweets),<wbr></wbr> </span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"> AverageScore=round(mean(<wbr></wbr>SentimentScore),3))</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"><br /></span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">summaryDF$TotalTweets <- summaryDF$PositiveTweets + summaryDF$NegativeTweets</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;"><br /></span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">#Get Sentiment Score</span></div>
<div style="font-family: arial;">
<span style="background-color: #fff2cc; font-size: xx-small;">summaryDF$Sentiment <- round(summaryDF$<wbr></wbr>PositiveTweets/summaryDF$<wbr></wbr>TotalTweets, 2)</span></div>
<br />
<span style="background-color: #fff2cc; font-size: xx-small;"><br /></span><br />
<br />
Saving the best for the last, here is a word cloud (also called tag cloud) for Netflix built in R-<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix-v8ZQ9UdYfTWEFPZ_V6GIaalaKNw1yXyzfIvacnZ3gRhzs0mpyBSslQS_jryU2GLuwgJ2pomHDbsnJS8banrEgFxugSvE2ARf27zrKGL1jC0dodBnm8naKogOhgBGgo1W5IlQUfC4Kw/s1600/Netflix+Tag+Cloud.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="458" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix-v8ZQ9UdYfTWEFPZ_V6GIaalaKNw1yXyzfIvacnZ3gRhzs0mpyBSslQS_jryU2GLuwgJ2pomHDbsnJS8banrEgFxugSvE2ARf27zrKGL1jC0dodBnm8naKogOhgBGgo1W5IlQUfC4Kw/s640/Netflix+Tag+Cloud.png" width="640" /></a></div>
<br />
I will be putting the R code up here for building a word cloud after scrubbing it.<br />
<br />
Happy Analyzing!<br />
<br />Jitender Aswanihttp://www.blogger.com/profile/07256452105548911708noreply@blogger.com0