Looking through Anime stocks, sharing my Google Sheets note script

Written on 09/01/2023
Roiss' Conclusions

Czecking out a new market.

Hello everyone,

Today starts of with a terrible pun. IBRK finally enabled access to the Praha Stock Exchange. There are only 28 companies listed, so it is quick and painless to check out. There were no hidden gems that I found, but given the small amount of stocks, it is definitely worth checking out.

  • Petrobras released their earnings, paying a 3.5% dividend yield for the quarter and announcing a 1.5% buyback for Petrobras A shares. While it is a decent result, as the total shareholder yield YTD is 12.5% -  the big discount to many international oil companies has closed. OMV, the Austrian oil producer is now cheaper than Petrobras. I have reduced my exposure a bit to Petrobras, but it is still a big position.

Anime

In the spirit of Peter Lynch to know what you own - I am taking a journey through the world of anime and manga. For those that are unaware, manga are Japanese comics, and Anime are Japanese animation films or series. In contrast to most of the Western Animation tradition these are not just for Children, but can span any topic from erotica, action to horror and thrillers.

Anime has went from a niche product outside Japan, to a huge success around the world. Not only are anime series thriving, but anime films have become huge blockbusters, with Your Name earnings 357 million worldwide in 2016, ranking 22nd overall.

Here is a great interview with the creator of Your Name about his latest film Suzume.

Ghibli Studios who made masterpieces like Spirited Away used to be owned by a public company, but alas its private now.

  • Sony is one of the biggest players in the space. With Crunchyroll - an anime streaming service - having 5 million subscribers just in the US alone and several high profile studios that produces Fairly Tail, Spy X Family, Sword Art Online, the Demon Slayer movie and many more. However the whole segment is just 13% of revenues for Sony (and that includes western films that are produced by Sony Entertainment as well), so it is far from an anime pure play.

  • Sega Sammy Holdings is a company that was formed by the merger of video game giant Sega and Sammy corporation who makes pachinko machines. Sadly the company does not break down the differences between their games and their TV/Anime side. While their IP in terms of games is impressive, the strongest anime IP is Detective Conan and it pales in contrast to something like Sony. It might be an interesting pick in terms of video games, given that it trades at 8.76x EV/EBIT - but it isn't a great pick for Anime.

  • Fuji Media Holdings is a broadcast holding company that owns several business included TV assets and Hotels. They for example aired One Piece. However given that Hotels and other sectors are bigger than media and content  -  I will pass.

  • DLE Inc is a animiation studio that is probably most known for the series Eagle Talon. Asahi Broadcasting Corporations owns more than 50% of the company, but is quite diversified in radio and television -  so I will focus on DLE. With a 76m $USD market cap it is rather small as well. The company is quite expensive tho. At a 4x P/B all the while the company is bleeding cash. It seems to be only held up in the hope that Asahi Broadcasting will acquire the rest of the company. Pass

  • Nippon Television is another company that has a big exposure to anime and anime broadcast. At 0.4x P/B it looks cheap, but that includes a lot of the broadcast equipment. In terms of earnings the company is mostly in a slow decline. The company does however have higher current assets than total liabilities. It does look cheapish - but due to the lack of quality in IP and that it isn't cheap enough.

  • Sanrio: Most known for owning the brand right to Helly Kitty, which is an extraordinary brand. But at 35x EV/EBITDA, the company is just way too expensive.

  • Kadokawa is a media conglomerate. They have produced several great series/movies like Overlord, Your Name, Steins;Gate and many more, they also own the majority of FromSoftware, the company responsible for the Darks Souls series and Elden Ring. The company trades at 2.3x P/B but is rather expensive when you look at earnings. It is too expensive for a value play, but too low quality to fit into the growth basket, so I pass.

  • Toho is another media conglomerate. Boku no Hero is on of the strongest IP in he industry and with Akame ga Kill, Spy x Family, and Haikyuu!!, they have consistently provided great quality the last decade. The company is consistently profitable and trades at a EV/EBIT of 18x - but is rather expensive on a P/FCF basis. So I pass

  • IG Port is a rather small company with 100m USD market cap . They are known for series like Guilty Corwn, producing Haikyuu! with Toho, as well as Psychopass. Their Wit Studio produced the Spy x Family and Attack on Titan. At first sight it also looks cheap at 8x EV/EBIT, but it looks like they over-earned the last twelve month compared to the usual trend in their operating earnings. The more I learned about the content business, the more I realised that it is very cyclical. However in contrast to something like oil, where you can generally look at the supply and upcoming project - it is impossible to forecast the demand of that content as it can be so different. I pass this one too.

  • Medialink is an anime distributor in China, Hong Kong, the US and Taiwan. The company listed in May 2019 and had decent growth since then. They own Ani - One, which are several channels on Youtube in different languages that total several million subscribers. They also co-invested in a Taiwanese movie called "My Heavenly City", which will be released on 15th September 2023. The company for example offers brand deals for example Coc-Cola Zero Sugar Blast x Bleach. I have to do more research, but it looks interesting on first sight. It also seems to be less cyclical than most of the content creators and future success seems to more rely on studio connections.

  • Toei Company: is the company with the best IP owning Sailer Moon, One Piece and Digimon and many others. Its growth both in revenue and margin expansion are exceptional. It is not a cheap company but the quality speaks for itself. I have set a price alert at 20% lower form todays price to revisit it. 

Google Notes Script

I have my own Google Sheet, where I add companies to watch out for. I have tried Journalytic, but found that I need daily change data -  so see if there big movements, rudimentary data and most of all international tickers like Hong Kong and Japan. 

I have added a Menu with Stock Notes, which opens up a new menu -  where I can add the date, the ticker and the notes. It then saves the notes into a new worksheet. I then use a script to search for the ticker and display the notes for the ticker, sorted by date. You need to create a new sheet in the current workbook and then rename it to "Stock Notes".

To add it go to Extensions -> Add Scripts.

First one needs a new file and rename it to "sidebar.html".

These are the contents of that sidebar.html.This is what displays the sidebar in order to add the notes. It allows you to add the ticker, the date and your notes on the stock



  
    
    
  
  
    

Add Stock Note







Then you then need to create a second file in Apps Script called Code.gs. This does several things. The first one, is that the onOpen() and showSidebar() function allow the sidebar that we created with the HTML be actually displayed in the sheet.

Second it creates the addStockNote() function, which after clicking "Add Note", adds the notes to the spreadsheet and parses the date, so it can get sorted easily afterwards.

It also adds the getSortedNotesByTicker() function. We need that function in order to get the notes of a single ticker into our sheet. It also sorts it by time. Once you pasted it, press Run on the Code.gs file. It will ask you for the permissions of your Google Account. You have to accept that.

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Stock Notes')
      .addItem('Add Note', 'showSidebar')
      .addToUi();
}

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('sidebar')
    .setTitle('Stock Notes')
    .setWidth(300);
  SpreadsheetApp.getUi().showSidebar(html);
  html.append('');
}


function addStockNote(date, ticker, note) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Stock Notes');
  if (!sheet) {
    sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('Stock Notes');
    sheet.appendRow(['Date', 'Ticker', 'Note']);
  }
  var parsedDate = new Date(date);
  var formattedDate = Utilities.formatDate(parsedDate, SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone(), 'yyyy-MM-dd');
  sheet.appendRow([formattedDate, ticker, note]);
}

function getSortedNotesByTicker(ticker) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Stock Notes');
  if (!sheet) {
    return 'No Stock Notes sheet found';
  }
  
  var data = sheet.getDataRange().getValues();
  var notes = [];
  var upperCaseTicker = ticker.toUpperCase();
  
  for (var i = 1; i < data.length; i++) {
    if (data[i][1] && data[i][1].toUpperCase() == upperCaseTicker) {
      notes.push(data[i]);
    }
  }

  if (notes.length === 0) {
    return 'No Notes';
  }
  
  notes.sort(function(a, b) {
    var dateA = new Date(a[0]);
    var dateB = new Date(b[0]);
    if (dateA > dateB) {
      return -1;
    }
    if (dateA < dateB) {
      return 1;
    }
    return 0;
  });

  var output = '';
for (var j = 0; j < notes.length; j++) {
  var formattedDate = Utilities.formatDate(new Date(notes[j][0]), SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone(), 'yyyy-MM-dd');
  output += formattedDate + ' | ' + notes[j][2];
  if (j < notes.length - 1) {
    output += '\n';
  }
}
return output;
}

In the sheet, where you want to have the overview. Add the =getSortedNotesByTicker(Ticker). It takes the ticker input and gets all the notes on that ticker sorted by date. I made it, so it would read the tickers from the A column.

That is it. I hope you found it useful.