Price/earnings chart application

I have completed (as far as what I wanted to achieve) the Windows application I mentioned recently. The inspiration for this project was Saul’s description of the charts he does manually. I didn’t set out to exactly match his charts but to build a chart that encompassed similar information in a different format. In the end I also included an option which I believe is close to what Saul charts in addition to the style I started with because I had the data and the calculations there to use.

Here is a link to a picture of a chart in the style I started with. It plots daily prices and and PE ranges on a linear scale.…

And here is a picture that hopefully looks more like Saul’s charts. It plots earnings and prices on a quarterly basis on a logarithmic scale. The earnings scale relates to the price scale based on the PE base selected.…

A brief description of the display and options…

Top left is the company list used to select the company to view. The “New” button is to add a new company to the list and “Edit” is to remove companies from the list (permanently!).

Below those are symbol, price (from Yahoo! Finance), PE (calculated from current price and TTM earnings), Year over Year growth rate for the TTM (trainling twelve months) earnings and trailing PEG (PE / TTM growth rate) for the selected company. (This is what Saul has called 1YPEG)

At the bottom is a grid display of the earnings history. The Date and EPS values are supplied by the user and saved in a file named “earnings.txt” that needs to reside in the same directory as the program. The TTM value is the sum of the last four quarters earnings as of that date. The YOY column shows the growth rate of that quarter’s earnings compared to the same quarter in the previous year, when it can be calcuated. The Add button allows new earnings values to be easily added for the selected company. The existing Date and ESP values can be changed by simply entering new values directly in the grid display. On average companies report earnings around every 91 days. The top date in the list will be red if that date is more than 95 days past as an indicator that either the company is taking longer or new earnings may be available.

In the middle section are the controls for the graph on the right side of the display. The time period can be from 1 year to 5 years. The PE Range base determines the ratio of price to earnings for the PE (blue) plot, which can be a series of flat lines or a continous line chart. The Size option controls the shaded (grey) area for a PE range on the graph. The vertical scale can be linear or logarithmic. If the TTM Legend option is checked TTM earnings values will be shown down the left side of the chart with the numbers relating to the prices on the right based on the PE Range base value. When the Quarterly Only option is checked the chart will display a simpler, two-line chart with TTM earnings plotted against prices on the earnings dates. (I believe Logarithmic + TTM Legend + Quarterly only is similar to Saul’s manual chart format)

I hope the graph is fairly obvious, dates along the bottom, prices on the right, TTM earnings on the left (if selected), company name (from Yahoo! Finance) and symbol top center and PE Scale/Range top left. The price plot is green and the earnings (also PE) are in blue. The earnings plot is a series of flat lines if the Quarterly Only option is off and daily prices are plotted. If the PE range size is greater than zero a grey rectangle represents the selected PE range. If the Quarterly Only option is on the earnings plot is a continuous line plot connecting the quarterly values.

Finally, under the File menu are Save and Print options. Save will save the current earnings values in case you want to save any changes made. If unsaved changes exist when you close the program a prompt will ask if they should be saved. The print option sends the graph section only to your printer if for some reason you want to capture a chart on paper.

Error trapping is not as extensive as it should be but I think most potential problems are handled. The program fetches price information from Yahoo! so it’s always possible that the site just didn’t respond at that time or you have an incorrect symbol. A message box will pop up if/when that happens. If you are sure the symbol is correct, just try again later. In my experience that’s pretty rare, but it does happen.

Here is a link to a folder on Google Drive. In that folder are the program (PEChart.exe) and a starter file of earnings data (earnings.txt). Simply download the program and text file to a directory on your PC and run the program. You will likely be warned that it is from an unknown source and ask if you’re sure you want to run it.…

I hope some people find it useful and fun to play with. It’s free to anyone who wants to use it.

Note: The earnings values in the file provided mostly come from and some come from a spreadsheet provided by Phoolio18, which I believe came from Fidelity. As Saul has cautioned many times, if you are serious about earnings numbers you should get them directly from the quarterly/annual reports on the company web site. For me, getting them from was more expeditious for gathering numbers for testing the application. In the case of SNCR, the numbers matched those posted by Saul, but that doesn’t meant they will always match or that I didn’t type something wrong. So, it would be wise to verify numbers if you are doing some serious analysis.



Hey Steve, cool! I built a prototype of this earlier in the year and was about to finish integrating it (and automatic 1YPEG calculations based on adjusted earnings) into BoardKeep this weekend. But maybe now I’ll hold off since someone else is filling the need.

Too bad it’s for only for Windows, though. I didn’t know anybody even still used Windows :wink:


1 Like

Too bad it’s for only for Windows, though. I didn’t know anybody even still used Windows :wink:


Yeah, there are still some of us around. I was a Windows hater in the early days, but I think Win7 is actually pretty good and the Visual Studio and C# language I used for this are excellent. Too bad they practically ruined Windows with version 8, I tried it briefly and absolutely hated it.


1 Like

Seems to work great. This is amazing. Thank you for posting this.



You guys amaze me. I couldn’t come up with a tool like this in a thousand years.

If you create, I would be interested in comparing the output to Sagewren’s.

Again, thank you both for all of the work you put into making these tools available for the rest of us.


1 Like

FYI - Steve first mentioned he was working on this a few weeks ago. I commented that I was interested in it. He generously let me have an early version which I’ve been using. It works great and removes the labor and storage of hand-drawn charts.

Steve gets a big “atta boy” for this, really cool . . .

Oh yeah, I’m an MSFT customer since the first DOS machine with dual floppy drives. Then there was a 10 meg hard drive. Good lord, whatever could you do with all that space?

If you create, I would be interested in comparing the output to Sagewren’s.

Hi Tdonb,

I prototyped integration into BoardKeep to make it easy for everyone to do the log graphing using adjusted earnings (and then more recently, to automatically calculate 1YPEG and other stats that have become popular on this board) so that folks wouldn’t have to do it manually. I also wouldn’t mind tying in Kept posts and articles to the log chart, so you’d see markers on dates that reflect those (and could view them directly), which might help to provide more context around the company’s performance (or maybe not – that piece is all just hypothetical right now).

Adjusted earnings is really the key, though, as it’s not easily available except directly from the company’s press releases and financial documents. I haven’t found any service yet that offers that data. To my mind, integrating with BoardKeep offers two advantages: first, we could all easily pool the adjusted earnings data that we collect. So if I lookup the adjusted earnings for AAPL and enter them, then everybody would have automatic access to that. It’d mean we’re not all duplicating the same labor looking up this data, whereas today we are. And second, it also provides a straightforward integration point for automated extraction of adjusted earnings data direct from the press releases themselves using natural language processing algorithms (which is something else I’ve started prototyping). So then we wouldn’t even necessarily have to put any work into getting hold of adjusted earnings for companies that report it, and could focus instead on the companies that don’t and require some judgement to calculate (determining what to include or exclude).

But anyway, at the end of the day my primary goal is always to automate the mundane manual tasks that we’re all doing so that we can be more productive. But there’s also a large amount of time and effort required to take a tool I’ve prototyped to something polished that is fit for general consumption, and so I think there really has to be a benefit to the community to make that effort worthwhile. It sounds like Steve has already put a lot of time and effort into providing that benefit, so my hat is off to him! :slight_smile:



Oh yeah, I’m an MSFT customer since the first DOS machine with dual floppy drives. Then there was a 10 meg hard drive. Good lord, whatever could you do with all that space?

I used to have an Apple /// with a 5 MB Profile hard drive about the size of a shoe box. There was no way I could fill 5 MB.…

Memories are made of this…

Denny Schlesinger


I was hoping someone like you would take my rudimentary work and make it usable. That is great work and thanks for the effort.

Neil - I think your idea of having an accessible warehouse for this data is great. However, my computer illiterate brain can’t fathom the amount of work. The idea sounds very useful. I should note that I do not use BoardKeep yet, but may investigate it.

I’d like to point out one more item. I’ve now seen many log graphs created on computers and, thanks to Saul, created several on paper myself (BOFI, CRTO, SKX, SWKS).

I cannot make the computer created graphs look like the paper graphs. All of them look too flat making quite large vertical changes appear rather small. If you compare it to the paper graphs, you will see what I mean.

This doesn’t mean the computer graphs are worthless. In fact, I plan to use them on stocks I’m screening as they can be created much more quickly. For stocks that pass initial muster, I’ll go to the paper.

If anyone wants to see the paper graphs, I can scan and send them to you. Shoot me an email.

Take care,

1 Like