<?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: Reality Trending</title>
    <description>The latest articles on DEV Community by Reality Trending (@realitytrending).</description>
    <link>https://dev.to/realitytrending</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%2F4201692%2F14f3a6da-3ef3-408f-b358-0d80b66c7c5f.png</url>
      <title>DEV Community: Reality Trending</title>
      <link>https://dev.to/realitytrending</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/realitytrending"/>
    <language>en</language>
    <item>
      <title>Building a Reality TV Prize Tax Calculator: What a $5 Million Winner Actually Keeps</title>
      <dc:creator>Reality Trending</dc:creator>
      <pubDate>Fri, 23 Oct 2026 05:48:59 +0000</pubDate>
      <link>https://dev.to/realitytrending/building-a-reality-tv-prize-tax-calculator-what-a-5-million-winner-actually-keeps-52la</link>
      <guid>https://dev.to/realitytrending/building-a-reality-tv-prize-tax-calculator-what-a-5-million-winner-actually-keeps-52la</guid>
      <description>&lt;p&gt;We run Reality Trending, a small fan site covering shows like Survivor and Beast Games. A while back we realized our readers kept asking the same question after every finale: "okay, but how much does the winner actually keep?" So we built a prize tax calculator: a small client-side tool that turns a headline prize number into an estimated after-tax number. This post walks through how the math and the code work, in case you want to build something similar.&lt;/p&gt;

&lt;h2&gt;
  
  
  The inputs
&lt;/h2&gt;

&lt;p&gt;The calculator asks for three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Prize amount&lt;/strong&gt; - a number input. For Beast Games season 2, the starting grand prize is $5,000,000.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;US state&lt;/strong&gt; - a dropdown of all 50 states plus DC. The winner's home state matters because state income tax rates range from 0% to over 13%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bribes taken&lt;/strong&gt; - a Beast Games-specific twist. During the show, players were offered bribes to leave or to sabotage others. Money paid out as bribes shrinks the remaining prize pool, so we subtract accepted bribes from the starting prize before running the tax math.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;taxablePrize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;prizeAmount&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;bribesTaken&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything downstream uses &lt;code&gt;taxablePrize&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Federal tax, the progressive way
&lt;/h2&gt;

&lt;p&gt;The IRS taxes income in brackets, not at one flat rate. For 2025, the single-filer brackets look like this: 10% up to $11,925, 12% up to $48,475, 22% up to $103,350, 24% up to $197,300, 32% up to $250,525, 35% up to $626,350, and 37% above that.&lt;/p&gt;

&lt;p&gt;The key builder insight: only the slice of income inside each bracket is taxed at that bracket's rate. The whole prize is not taxed at 37%. The loop version is short:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;brackets2025&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;11925&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.10&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;48475&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.12&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;103350&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.22&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;197300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.24&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;250525&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.32&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;626350&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.35&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kc"&gt;Infinity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.37&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;federalTax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;income&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;tax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;rate&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;brackets2025&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;income&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;slice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;income&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;tax&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;slice&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;rate&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;prev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;tax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is deterministic, runs entirely in the browser, and needs no API. That makes the tool fast and free to host: it is just HTML, a state dropdown, and a few dozen lines of JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  State tax, the deliberately simple way
&lt;/h2&gt;

&lt;p&gt;Real state tax systems have their own brackets, deductions, and credits. For a fun estimator, we made a deliberate tradeoff: the calculator applies each state's top marginal rate to the full taxable prize.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;stateTax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;taxablePrize&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;topRate&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That overstates the bill in states with their own progressive brackets, and it ignores city taxes entirely. We kept it anyway because the goal is a quick "same prize, different state" comparison, and the UI labels every figure as an estimate. Honest labeling is a feature here, not an afterthought.&lt;/p&gt;

&lt;h2&gt;
  
  
  The outputs
&lt;/h2&gt;

&lt;p&gt;Three numbers come out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Federal tax&lt;/strong&gt; - from the progressive bracket function above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State tax&lt;/strong&gt; - from the top-rate estimate above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Take-home&lt;/strong&gt; - &lt;code&gt;taxablePrize - federalTax - stateTax&lt;/code&gt;, the number everyone actually came for.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Worked example: the $5 million winner
&lt;/h2&gt;

&lt;p&gt;Take the Beast Games season 2 grand prize of $5,000,000, with no bribes taken.&lt;/p&gt;

&lt;p&gt;Using the headline top-rate estimate, the federal tax alone is about $1,850,000 (0.37 x 5,000,000). A strict progressive run through every 2025 bracket lands a little lower, around $1.8 million, because the lower slices of the prize are taxed at 10% through 35% instead of 37%. The difference is a good reminder of why the code loops through slices instead of multiplying the whole prize by 37%.&lt;/p&gt;

&lt;p&gt;Then state tax swings the final number hard. In Florida or Texas, with no state income tax, the winner keeps roughly $3.15 million of the $5 million. In California, the 13.3% top rate adds about $665,000 in state tax, and take-home drops to roughly $2.49 million. Same show, same prize, very different check.&lt;/p&gt;

&lt;p&gt;You can try the live version of this &lt;a href="https://realitytrending.com/survivor-prize-tax-calculator/" rel="noopener noreferrer"&gt;prize tax calculator&lt;/a&gt; to run your own state comparisons, and our &lt;a href="https://realitytrending.com/survivor-prize-tax-calculator/" rel="noopener noreferrer"&gt;Survivor prize tax calculator&lt;/a&gt; uses the same bracket engine for the $1 million Survivor prize. For the full season 2 math, including how the bribes were modeled, see our written &lt;a href="https://realitytrending.com/beast-games-season-2-taxes/" rel="noopener noreferrer"&gt;Beast Games taxes breakdown&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we left out, on purpose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It assumes a single filer with no other income, deductions, or credits.&lt;/li&gt;
&lt;li&gt;It does not model withholding (the IRS withholds 24% on large prizes at payout time) versus the final tax bill.&lt;/li&gt;
&lt;li&gt;It is not tax advice. It is a fan-site estimator built from public bracket tables.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Small tools like this are a nice fit for a content site: the math is public, the code is simple, and the result answers a question readers genuinely ask. If you build one, label your estimates, show your brackets, and keep the whole thing client-side.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
