{"id":72,"date":"2026-01-15T16:36:21","date_gmt":"2026-01-15T09:36:21","guid":{"rendered":"https:\/\/medytic.blog\/?p=72"},"modified":"2026-05-09T09:15:39","modified_gmt":"2026-05-09T02:15:39","slug":"data-biosimilar-opportunities-thailand","status":"publish","type":"post","link":"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/","title":{"rendered":"Personal project: A Data-Driven Search for Biosimilar Opportunities in Thailand"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This project is a labor of passion: a fusion of my clinical background as a pharmacist and my growing passion for data analysis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My goal was simple: to use data to identify which crucial Monoclonal Antibodies (mAbs) are missing from the Thai market despite being available as affordable biosimilars in the US.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Project Technical Stack<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To bring this analysis to life, I utilized a mix of clinical domain knowledge and technical tools:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Data acquisition:<\/strong> Python (Scrapy) for web scraping Thai FDA data.<\/li>\n\n\n\n<li><strong>Data engineering:<\/strong> Power Query  and Excel for cleaning and joining international datasets.<\/li>\n\n\n\n<li><strong>Data modeling:<\/strong> Relational database design in Power BI.<\/li>\n\n\n\n<li><strong>Analytics &amp; Visualization:<\/strong> DAX for scoring logic and Power BI for storytelling.<\/li>\n\n\n\n<li><strong>Clinical Frameworks:<\/strong> NLEM criteria, and Thai Health Data Center (HDC) data.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve combined storytelling and data visualization to summarize this journey. Each page represent a core step in the analytical process, moving from raw data to actionable clinical insights. I hope you find this process as fascinating as I did!<\/p>\n\n\n\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/medytic.blog\/wp-content\/uploads\/2026\/01\/thmab_analysis_15.01.26.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Embed of THmab_analysis_15.01.26.\"><\/object><a id=\"wp-block-file--media-810d40a8-11e5-4d58-b943-b285d25f6f74\" href=\"https:\/\/medytic.blog\/wp-content\/uploads\/2026\/01\/thmab_analysis_15.01.26.pdf\">THmab_analysis_15.01.26<\/a><a href=\"https:\/\/medytic.blog\/wp-content\/uploads\/2026\/01\/thmab_analysis_15.01.26.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-810d40a8-11e5-4d58-b943-b285d25f6f74\">Download<\/a><\/div>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>How I made this?<\/strong><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\">Inspiration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">As a pharmacist in Thailand, I see the innovation lag firsthand. Advanced biologic therapies (mAbs) are transforming medicine, but their high costs often keep them them out of reach for most Thai patients. While, In the US, Biosimilars, a safe, interchangeable , affordable versions of these drug launch as soon as patents expire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wanted to find the answer: <strong>Which critical molecules are we missing in Thailand that are already available in the US?<\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Methodology: Data analysis<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. Data preparation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Prepare US mAbs data from Purple Book<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I started with the US FDA Purple Book. I prefer using the data transformation pane in Power BI for initial exploration. The automatic column profiles and quality distributions give me an instant glimpse of the data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I cleaned the generic name (Proper Names) by stripping manufacturer suffixes (e.g., changing &#8220;Adalimumab-atto&#8221; to &#8220;Adalimumab&#8221;) to create a clean list for cross-referencing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A part of the head of data:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1848\" height=\"431\" data-attachment-id=\"82\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/screenshot-2026-01-15-142305\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-142305.png?fit=1848%2C431&amp;ssl=1\" data-orig-size=\"1848,431\" data-comments-opened=\"1\" data-image-title=\"Screenshot 2026-01-15 142305\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-142305.png?fit=1024%2C239&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-142305.png?resize=1848%2C431&#038;ssl=1\" alt=\"\" class=\"wp-image-82\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">the table schema:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"253\" height=\"626\" data-attachment-id=\"83\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/screenshot-2026-01-14-063605\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-14-063605.png?fit=253%2C626&amp;ssl=1\" data-orig-size=\"253,626\" data-comments-opened=\"1\" data-image-title=\"Screenshot 2026-01-14 063605\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-14-063605.png?fit=253%2C626&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-14-063605.png?resize=253%2C626&#038;ssl=1\" alt=\"\" class=\"wp-image-83\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 Prepare Thai mAbs data from Thai FDA scraping<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">While the US data was a simple CSV, the Thai data was a different story. Since no public dataset existed, I built a Scrapy crawler in Python to navigate the Thai FDA search portal and build a mirrored dataset.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I used Google Colab and Pandas to manage my search list, then deployed the Scrapy crawler to capture product names, license holders, and registration statuses.<\/li>\n\n\n\n<li>I used Power BI to join these two datasets. This allowed me to identify &#8220;mismatches&#8221; which are mAbs registered in the US but absent in Thailand.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">My codes for scraping  are:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">%%writefile med_spider.py\nimport scrapy\nclass MedSpider(scrapy.Spider):\n\u00a0 \u00a0 name = \"meds\"\n\u00a0 \u00a0 # 1. Added a User-Agent\n\u00a0 \u00a0 custom_settings = {\n\u00a0 \u00a0 \u00a0 \u00a0 'USER_AGENT': 'Mozilla\/5.0 (Windows NT 10.0; Win64; x64) Chrome\/119.0.0.0 Safari\/537.36',\n\u00a0 \u00a0 \u00a0 \u00a0 'COOKIES_ENABLED': True, # ASP.NET sites NEED cookies to track your session\n\u00a0 \u00a0 \u00a0 \u00a0 'DOWNLOAD_DELAY': 5, \u00a0 \u00a0 \u00a0 \u00a0# Wait 5 seconds between drugs\n\u00a0 \u00a0 \u00a0 \u00a0 'CONCURRENT_REQUESTS': 1, \u00a0 # One at a time to stay under the radar\n\u00a0 \u00a0 \u00a0 \u00a0 'USER_AGENT': 'Mozilla\/5.0 (Windows NT 10.0; Win64; x64) Chrome\/119.0.0.0 Safari\/537.36',\n\u00a0 \u00a0 \u00a0 \u00a0 'FEEDS': {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'med_results.csv': {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'format': 'csv',\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'encoding': 'utf-8-sig',\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'overwrite': True,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 }\n\u00a0 \u00a0 \n\u00a0 \u00a0 start_urls = ['Thai FDA drug searching URL']\n\u00a0 \u00a0 usmed_list = [list of mAb generic names from Purple Book]\n\u00a0 \u00a0 # 1. This replaces the default start_urls behavior\n\u00a0 \u00a0 def start_requests(self):\n\u00a0 \u00a0 \u00a0 \u00a0 for drug in self.usmed_list:\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # visit the landing page once for each drug to get a fresh ViewState\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 yield scrapy.Request(\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 url=self.start_urls[0],\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 callback=self.parse,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 meta={'search_term': drug}, # save the drug name\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 dont_filter=True # for hitting the same URL multiple times\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 )\n\u00a0 \u00a0 def parse(self, response):\n\u00a0 \u00a0 \u00a0 \u00a0 # retrieve the drug name saved in meta\n\u00a0 \u00a0 \u00a0 \u00a0 drug_to_search = response.meta['search_term']\n\u00a0 \u00a0 \u00a0 \u00a0 # from_response: handle the hidden ASP.NET ViewState\n\u00a0 \u00a0 \u00a0 \u00a0 return scrapy.FormRequest.from_response(\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 response,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 formdata={\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'ctl00$ContentPlaceHolder1$txt_substance': drug_to_search,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'ctl00$ContentPlaceHolder1$btn_sea_drug': '\u0e04\u0e49\u0e19\u0e2b\u0e32'\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 },\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 callback=self.parse_results,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 meta={'search_term': drug_to_search} # Pass it forward again to the results\n\u00a0 \u00a0 \u00a0 \u00a0 )  \n\u00a0 \u00a0 def parse_results(self, response, ):\n\u00a0 \u00a0 \u00a0 \u00a0 search_term = response.meta['search_term']\n\u00a0 \u00a0 \u00a0 \u00a0 rows = response.css('tr.rgRow, tr.rgAltRow')\n\u00a0 \u00a0 \u00a0 \u00a0 self.logger.info(f\"Found {len(rows)} rows on the page!\") # show logs\n\u00a0 \u00a0 \u00a0 \u00a0 for row in rows:\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # gets text inside &lt;span&gt; or &lt;a&gt; tags.\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 data = row.css('td:not([style]) ::text').getall()\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # Clean up the list (keep empty strings)\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 clean_data = [item.strip() if item else \"\" for item in data]\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if len(clean_data) &gt; 0:\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 yield {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'searched_drug': search_term,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'registration_no': clean_data[1] if len(clean_data) &gt; 0 else None,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'trade_name': clean_data[3] if len(clean_data) &gt; 3 else None,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'licensee': clean_data[4] if len(clean_data) &gt; 4 else None,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'drug_type': clean_data[5] if len(clean_data) &gt; 5 else None,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 'status': clean_data[7] if len(clean_data) &gt; 5 else None\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \n!scrapy runspider med_spider.py<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.3 Identifying hidden gaps<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Initial results showed that most of absent drugs were orphan drugs or for rare diseases. To find the &#8220;real&#8221; opportunities, I needed more information. These are what I started with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Market Demand:<\/strong> Top 20 Global Sales data (via <a href=\"https:\/\/pharmashots.com\/28082\/top-20-monoclonal-antibodies-of-2025\/\">Pharmashots<\/a>) to identify clinical demand and physician trust worldwide.<\/li>\n\n\n\n<li><strong>Prevalence data: <\/strong>Which disease are crucial in Thailand?\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/hdc.moph.go.th\/center\/public\/standard-subcatalog\/6a1fdf282fd28180eed7d1cfe0155e11\">HDC<\/a> website shows prevalence data of crucial diseases with ICD-10 code related to those diseases (2025).<\/li>\n\n\n\n<li>It also show diseases in &#8220;Service plan&#8221; which are the group of diseases that intensively monitored by Thailand&#8217;s Ministry of Public Health (MOPH).<\/li>\n\n\n\n<li>WHO Top cause of death of Thai population (2021).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Reimbursement Barriers:<\/strong> National List of Essential Medicines (NLEM) is the \u201coptimum list\u201d of fundamental treatments. It serves as the official reference for reimbursement across public health insurance scheme. there are 7 mAbs in this list.<\/li>\n\n\n\n<li><strong>Biosimilar gap:<\/strong> I used &#8220;BLA type&#8221; column, a original\/biosimilar label from Purple Book to evaluate a status of Thai mAbs list.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Modeling<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1248\" height=\"728\" data-attachment-id=\"88\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/screenshot-2026-01-15-144144\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-144144.png?fit=1248%2C728&amp;ssl=1\" data-orig-size=\"1248,728\" data-comments-opened=\"1\" data-image-title=\"Screenshot 2026-01-15 144144\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-144144.png?fit=1024%2C597&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-144144.png?resize=1248%2C728&#038;ssl=1\" alt=\"\" class=\"wp-image-88\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Building this database was an iterative process. This dataset is not perfect. It&#8217;s grew organically as I added data one-by-one, but it taught me lessons for my next project:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Whenever possible, collect all data before designing the schema.<\/li>\n\n\n\n<li>Establishing strict naming rules early to prevent inconsistent naming.<\/li>\n\n\n\n<li>Moving toward a star schema and database normalization makes the system much more robust as data piles up.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">3. Visualization<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Top 20 Monoclonal Antibodies by Global Sales<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I discovered that the Top 20 mAbs account for <strong>60% of total global mAb sales<\/strong>. This is a massive concentration of value! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By highlighting which of these 20 have <strong>zero biosimilar competition<\/strong> in Thailand, I identified the most significant market gaps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"867\" height=\"300\" data-attachment-id=\"97\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/screenshot-2026-01-15-150946\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-150946.png?fit=867%2C300&amp;ssl=1\" data-orig-size=\"867,300\" data-comments-opened=\"1\" data-image-title=\"Screenshot 2026-01-15 150946\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-150946.png?fit=867%2C300&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-150946.png?resize=867%2C300&#038;ssl=1\" alt=\"\" class=\"wp-image-97\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"571\" height=\"848\" data-attachment-id=\"99\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/image-3\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/image-2.png?fit=571%2C848&amp;ssl=1\" data-orig-size=\"571,848\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/image-2.png?fit=571%2C848&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/image-2.png?resize=571%2C848&#038;ssl=1\" alt=\"\" class=\"wp-image-99\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 Clinical Impact<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Prevalence data can be &#8220;noisy&#8221;. Disease are grouped to a big categories like &#8220;heart disease&#8221; consisting of many ICM-10 codes which make the prevalence illogically high. So, I came up with the decision tree for categorizing each mAbs in to three tiers, inspired by <a href=\"https:\/\/www.hitap.net\/wp-content\/uploads\/2024\/11\/HITAP-English-Policy-Brief-Collection.pdf\">inclusion criteria of the NELM<\/a>. Categorization was derived from the <strong>MOPH 2025 National Health Priorities<\/strong> and the <strong><a href=\"https:\/\/www.hitap.net\/wp-content\/uploads\/2024\/11\/HITAP-English-Policy-Brief-Collection.pdf\">HITAP Burden of Disease framework<\/a><\/strong>(Issue 26).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1225\" height=\"547\" data-attachment-id=\"93\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/screenshot-2026-01-15-094433\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-094433.png?fit=1225%2C547&amp;ssl=1\" data-orig-size=\"1225,547\" data-comments-opened=\"1\" data-image-title=\"Screenshot 2026-01-15 094433\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-094433.png?fit=1024%2C457&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-094433.png?resize=1225%2C547&#038;ssl=1\" alt=\"\" class=\"wp-image-93\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tier 3 (High):<\/strong> Aligned with the Thai MOPH &#8220;Service Plan&#8221; (e.g., Cancer, Stroke).<\/li>\n\n\n\n<li><strong>Tier 2 (Medium):<\/strong> Prevalence is higher that rare disease threshold (&gt;10,000 case\/year).<\/li>\n\n\n\n<li><strong>Tier 1 (Specialized):<\/strong> The leftovers: Rare or specialized indications.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3.3 NLEM gap<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I created bar chart showing count of each mAbs in NLEM list biosimilars in Thailand. The data show 2 mAbs don&#8217;t have biosimilar yet, which is a huge market gap.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"690\" data-attachment-id=\"101\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/image-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/image-3.png?fit=1023%2C690&amp;ssl=1\" data-orig-size=\"1023,690\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/image-3.png?fit=1023%2C690&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/image-3.png?resize=1023%2C690&#038;ssl=1\" alt=\"\" class=\"wp-image-101\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3.4 Biosimilar availability gap<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I compared the number of US biosimilars (Blue for positivity\/opportunity) against Thai biosimilars (Orange for competition\/saturation). This visual logic allowed me to assign scores for my final index.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"605\" data-attachment-id=\"103\" data-permalink=\"https:\/\/medytic.blog\/en\/2026\/01\/15\/data-biosimilar-opportunities-thailand\/screenshot-2026-01-15-150457\/\" data-orig-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-150457.png?fit=833%2C605&amp;ssl=1\" data-orig-size=\"833,605\" data-comments-opened=\"1\" data-image-title=\"Screenshot 2026-01-15 150457\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-150457.png?fit=833%2C605&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-150457.png?resize=833%2C605&#038;ssl=1\" alt=\"\" class=\"wp-image-103\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Visualizations helps me create scoring:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Variable<\/td><td>Scored Value<\/td><\/tr><tr><td>1. World Top 20 Revenue<\/td><td>2 pts if yes 0 pts if No<\/td><\/tr><tr><td>2. High-Impact Disease<\/td><td>3 pts if High impact<br>2 pts if Medium impact<br>1 pt if Specialized impact<\/td><\/tr><tr><td>3. NLEM Status<\/td><td>2 pts if NO<br>0 pts if YES<\/td><\/tr><tr><td>4. Biosimilar Gap<\/td><td>3 pts if US Yes; TH No<br>2 pts if US Yes; 1-2 biosimilar TH<br>1 pt if US No; TH No<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or 3 TH 0 pts else<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Formulation for evaluate potential of mAbs:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TMOI = Rev + Tier + NLEM Gap + Biosimilar gap<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Analyzing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I synthesized all variables into a 10-point scale: the <strong>TMOI<\/strong>. Our mAbs for potential market entry and production feasibility are:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tocilizumab (9 pts)<\/strong><\/li>\n\n\n\n<li><strong>Omalizumab (7 pts)<\/strong><\/li>\n\n\n\n<li><strong>Pertuzumab (7 pts)<\/strong><br>After identified potential molecules, I would recommend the team to prioritize these three molecules for comprehensive feasibility and production studies.<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\">Claims &amp; Cautions<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Global revenue data is from private industry reports and should be treated as an estimate.<\/li>\n\n\n\n<li>This impact tiering is a simplified version of NLEM criteria. In a real-world scenario, Cost-Effectiveness and HTA (Health Technology Assessment) would require much deeper modeling.<\/li>\n\n\n\n<li>Many mAb manufacturers located outside the US are not included in this project.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A data-driven look at the Thai biosimilar market. Using Power BI to analyze patent gaps and healthcare data to find new opportunities for patient access.<\/p>\n","protected":false},"author":273023487,"featured_media":103,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[34555906,413477,231379257],"tags":[724584,4705174,21407782,231379238,6170423,181479554,832,9130163],"class_list":["post-72","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-healthcare-analysis","category-personal-project","category-portfolio","tag-biologics","tag-biosimilars","tag-dataanalysis","tag-healthcareanalytics","tag-mabs","tag-powerbi","tag-python","tag-scrapy"],"jetpack_publicize_connections":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pgTbA2-1a","jetpack-related-posts":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/medytic.blog\/wp-content\/uploads\/2026\/01\/screenshot-2026-01-15-150457.png?fit=833%2C605&ssl=1","_links":{"self":[{"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/posts\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/users\/273023487"}],"replies":[{"embeddable":true,"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/comments?post=72"}],"version-history":[{"count":25,"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/posts\/72\/revisions"}],"predecessor-version":[{"id":488,"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/posts\/72\/revisions\/488"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/media\/103"}],"wp:attachment":[{"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/media?parent=72"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/categories?post=72"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medytic.blog\/en\/wp-json\/wp\/v2\/tags?post=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}