<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sareena William</title>
    <description>The latest articles on DEV Community by Sareena William (@sareena_william_e8cc151f9).</description>
    <link>https://dev.to/sareena_william_e8cc151f9</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4114153%2F4bc9dae9-c6e8-4da2-a93d-bdf59a882987.png</url>
      <title>DEV Community: Sareena William</title>
      <link>https://dev.to/sareena_william_e8cc151f9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sareena_william_e8cc151f9"/>
    <language>en</language>
    <item>
      <title>How I Built a Menu-Ranking Tool From a Restaurant's Public Nutrition Data</title>
      <dc:creator>Sareena William</dc:creator>
      <pubDate>Mon, 07 Sep 2026 14:48:57 +0000</pubDate>
      <link>https://dev.to/sareena_william_e8cc151f9/how-i-built-a-menu-ranking-tool-from-a-restaurants-public-nutrition-data-1bh6</link>
      <guid>https://dev.to/sareena_william_e8cc151f9/how-i-built-a-menu-ranking-tool-from-a-restaurants-public-nutrition-data-1bh6</guid>
      <description>&lt;p&gt;I wanted a way to rank restaurant menu items by whatever metric actually mattered, protein per dollar, sodium density, calories per gram of protein, instead of scrolling through 15 menu categories doing mental math every time I wanted to order something.&lt;/p&gt;

&lt;p&gt;So I built one, using a chain restaurant's publicly available nutrition data as the dataset.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data problem
&lt;/h2&gt;

&lt;p&gt;The chain (Applebee's, in this case) publishes a nutrition calculator on their site, but it's item-by-item, no bulk export, no API. Some categories, like build-your-own burgers, don't even publish complete macro breakdowns for every topping combination, just calories for some components and full macros for others.&lt;/p&gt;

&lt;p&gt;That meant the actual work wasn't the ranking logic, it was building a clean, verified dataset in the first place. I ended up treating burger toppings as separate components (bun + patty + cheese with full macros, individual toppings layered on top, calories-only add-ons flagged separately) rather than trying to force everything into one uniform schema. 334 items across 15 categories, cross-checked twice before anything got published.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ranking logic
&lt;/h2&gt;

&lt;p&gt;Once the data was clean, the actual comparison metrics were simple arithmetic, but picking the right ones mattered more than I expected:&lt;/p&gt;

&lt;p&gt;Calories per gram of protein (protein efficiency, lower is better)&lt;br&gt;
Protein per dollar (value, higher is better)&lt;br&gt;
Sodium density and sodium per gram of protein (the metric that actually surprised me most when I ran it)&lt;/p&gt;

&lt;p&gt;The sodium metric is what turned up the most interesting result. A menu item ("healthy" salad) ranked worse on sodium-per-gram-of-protein than several burgers, purely because its protein came wrapped in a lot of sauce, cheese, and tortilla strips that the name didn't advertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd do differently
&lt;/h2&gt;

&lt;p&gt;If I rebuilt this, I'd normalize the schema before entering any data instead of adapting it category by category, the burger-component workaround cost more time than the rest of the project combined. I'd also timestamp every entry with a source-checked date from day one; menu prices and items change, and retroactively figuring out what was verified when became its own small headache.&lt;/p&gt;

&lt;p&gt;The interactive version (build-your-own comparisons, filters by goal) is live if anyone wants to see how the ranking actually plays out on a real dataset: &lt;a href="https://applebeesmenuss.com/" rel="noopener noreferrer"&gt;applebeesmenuss.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to talk through the data-cleaning approach or the ranking math if anyone's doing something similar with a different dataset.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>data</category>
      <category>webdev</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
