<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Free Relocation Tools on URCity — Find Your City. Know the True Cost</title><link>https://urcity.com/en/tools/</link><description>Recent content in Free Relocation Tools on URCity — Find Your City. Know the True Cost</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://urcity.com/en/tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Cost of Living Calculator</title><link>https://urcity.com/en/tools/cost-of-living-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://urcity.com/en/tools/cost-of-living-calculator/</guid><description>&lt;h2 id="cost-of-living-calculator"&gt;Cost of Living Calculator&lt;/h2&gt;
&lt;p&gt;Compare the cost of living between two cities to see how much you&amp;rsquo;ll save or spend.&lt;/p&gt;

&lt;div class="calculator-widget" id="col-calc"&gt;
 &lt;div class="calc-header"&gt;
 &lt;div class="calc-icon blue"&gt;
 &lt;svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;
 &lt;line x1="12" y1="1" x2="12" y2="23"/&gt;
 &lt;path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/&gt;
 &lt;/svg&gt;
 &lt;/div&gt;
 &lt;div class="calc-title-group"&gt;
 &lt;h3&gt;Cost of Living Comparison&lt;/h3&gt;
 &lt;p class="calc-subtitle"&gt;Compare two cities side by side&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="calc-inputs-row"&gt;
 &lt;div class="calc-field"&gt;
 &lt;label for="col-city-a"&gt;
 &lt;svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/&gt;&lt;circle cx="12" cy="10" r="3"/&gt;&lt;/svg&gt;
 City A
 &lt;/label&gt;
 &lt;select id="col-city-a"&gt;
 
 &lt;option value="akron-oh" data-col="88.5" data-housing="68.5" data-name="Akron"&gt;Akron, OH&lt;/option&gt;
 
 &lt;option value="albuquerque-nm" data-col="94.5" data-housing="88.2" data-name="Albuquerque"&gt;Albuquerque, NM&lt;/option&gt;
 
 &lt;option value="amsterdam-nl" data-col="82.1" data-housing="135" data-name="Amsterdam"&gt;Amsterdam, NH&lt;/option&gt;
 
 &lt;option value="anaheim-ca" data-col="148.5" data-housing="212.4" data-name="Anaheim"&gt;Anaheim, CA&lt;/option&gt;
 
 &lt;option value="anchorage-ak" data-col="118.5" data-housing="128.4" data-name="Anchorage"&gt;Anchorage, AK&lt;/option&gt;
 
 &lt;option value="ann-arbor-mi" data-col="108.5" data-housing="118.2" data-name="Ann Arbor"&gt;Ann Arbor, MI&lt;/option&gt;
 
 &lt;option value="asheville-nc" data-col="102.5" data-housing="108.5" data-name="Asheville"&gt;Asheville, NC&lt;/option&gt;
 
 &lt;option value="atlanta-ga" data-col="104.7" data-housing="118.3" data-name="Atlanta"&gt;Atlanta, GA&lt;/option&gt;
 
 &lt;option value="augusta-ga" data-col="90.5" data-housing="78.5" data-name="Augusta"&gt;Augusta, GA&lt;/option&gt;
 
 &lt;option value="aurora-co" data-col="108.5" data-housing="118.2" data-name="Aurora"&gt;Aurora, CO&lt;/option&gt;
 
 &lt;option value="austin-tx" data-col="119.3" data-housing="159.2" data-name="Austin"&gt;Austin, TX&lt;/option&gt;
 
 &lt;option value="bakersfield-ca" data-col="102.5" data-housing="98.4" data-name="Bakersfield"&gt;Bakersfield, CA&lt;/option&gt;
 
 &lt;option value="baltimore-md" data-col="108.4" data-housing="112.5" data-name="Baltimore"&gt;Baltimore, MD&lt;/option&gt;
 
 &lt;option value="baton-rouge-la" data-col="94.5" data-housing="88.5" data-name="Baton Rouge"&gt;Baton Rouge, LA&lt;/option&gt;
 
 &lt;option value="belfast-gb" data-col="84.1" data-housing="80.5" data-name="Belfast"&gt;Belfast, NIR&lt;/option&gt;
 
 &lt;option value="bellingham-wa" data-col="115.2" data-housing="132.5" data-name="Bellingham"&gt;Bellingham, WA&lt;/option&gt;
 
 &lt;option value="bend-or" data-col="118.5" data-housing="142.5" data-name="Bend"&gt;Bend, OR&lt;/option&gt;
 
 &lt;option value="billings-mt" data-col="96.5" data-housing="92.5" data-name="Billings"&gt;Billings, MT&lt;/option&gt;
 
 &lt;option value="birmingham-al" data-col="90.5" data-housing="78.5" data-name="Birmingham"&gt;Birmingham, AL&lt;/option&gt;
 
 &lt;option value="birmingham-gb" data-col="92.3" data-housing="94.7" data-name="Birmingham"&gt;Birmingham, ENG&lt;/option&gt;
 
 &lt;option value="boise-id" data-col="102.5" data-housing="112.5" data-name="Boise"&gt;Boise, ID&lt;/option&gt;
 
 &lt;option value="boston-ma" data-col="153.2" data-housing="231.5" data-name="Boston"&gt;Boston, MA&lt;/option&gt;
 
 &lt;option value="boulder-co" data-col="148.5" data-housing="228.4" data-name="Boulder"&gt;Boulder, CO&lt;/option&gt;
 
 &lt;option value="bridgeport-ct" data-col="118.5" data-housing="128.4" data-name="Bridgeport"&gt;Bridgeport, CT&lt;/option&gt;
 
 &lt;option value="bristol-gb" data-col="102.1" data-housing="108.5" data-name="Bristol"&gt;Bristol, ENG&lt;/option&gt;
 
 &lt;option value="buffalo-ny" data-col="92.5" data-housing="72.5" data-name="Buffalo"&gt;Buffalo, NY&lt;/option&gt;
 
 &lt;option value="burlington-vt" data-col="112.5" data-housing="128.4" data-name="Burlington"&gt;Burlington, VT&lt;/option&gt;
 
 &lt;option value="calgary-ca" data-col="105.7" data-housing="108.2" data-name="Calgary"&gt;Calgary, AB&lt;/option&gt;
 
 &lt;option value="cardiff-gb" data-col="89.2" data-housing="88.7" data-name="Cardiff"&gt;Cardiff, WLS&lt;/option&gt;
 
 &lt;option value="chandler-az" data-col="108.5" data-housing="118.2" data-name="Chandler"&gt;Chandler, AZ&lt;/option&gt;
 
 &lt;option value="charleston-sc" data-col="108.5" data-housing="118.2" data-name="Charleston"&gt;Charleston, SC&lt;/option&gt;
 
 &lt;option value="charlotte-nc" data-col="98.2" data-housing="96.8" data-name="Charlotte"&gt;Charlotte, NC&lt;/option&gt;
 
 &lt;option value="chattanooga-tn" data-col="92.5" data-housing="82.5" data-name="Chattanooga"&gt;Chattanooga, TN&lt;/option&gt;
 
 &lt;option value="chesapeake-va" data-col="102.5" data-housing="105.2" data-name="Chesapeake"&gt;Chesapeake, VA&lt;/option&gt;
 
 &lt;option value="cheyenne-wy" data-col="96.5" data-housing="92.5" data-name="Cheyenne"&gt;Cheyenne, WY&lt;/option&gt;
 
 &lt;option value="chicago-il" data-col="110.8" data-housing="132.5" data-name="Chicago"&gt;Chicago, IL&lt;/option&gt;
 
 &lt;option value="chula-vista-ca" data-col="138.5" data-housing="188.4" data-name="Chula Vista"&gt;Chula Vista, CA&lt;/option&gt;
 
 &lt;option value="cincinnati-oh" data-col="92.8" data-housing="82.5" data-name="Cincinnati"&gt;Cincinnati, OH&lt;/option&gt;
 
 &lt;option value="cleveland-oh" data-col="90.2" data-housing="72.5" data-name="Cleveland"&gt;Cleveland, OH&lt;/option&gt;
 
 &lt;option value="colorado-springs-co" data-col="105.2" data-housing="118.5" data-name="Colorado Springs"&gt;Colorado Springs, CO&lt;/option&gt;
 
 &lt;option value="columbia-sc" data-col="94.5" data-housing="88.5" data-name="Columbia"&gt;Columbia, SC&lt;/option&gt;
 
 &lt;option value="columbus-oh" data-col="92.1" data-housing="84.5" data-name="Columbus"&gt;Columbus, OH&lt;/option&gt;
 
 &lt;option value="corpus-christi-tx" data-col="92.5" data-housing="88.4" data-name="Corpus Christi"&gt;Corpus Christi, TX&lt;/option&gt;
 
 &lt;option value="dallas-tx" data-col="101.3" data-housing="108.5" data-name="Dallas"&gt;Dallas, TX&lt;/option&gt;
 
 &lt;option value="delft-nl" data-col="75" data-housing="105" data-name="Delft"&gt;Delft, ZH&lt;/option&gt;
 
 &lt;option value="denver-co" data-col="128.5" data-housing="168.3" data-name="Denver"&gt;Denver, CO&lt;/option&gt;
 
 &lt;option value="des-moines-ia" data-col="90.5" data-housing="82.5" data-name="Des Moines"&gt;Des Moines, IA&lt;/option&gt;
 
 &lt;option value="detroit-mi" data-col="92.8" data-housing="68.4" data-name="Detroit"&gt;Detroit, MI&lt;/option&gt;
 
 &lt;option value="durham-nc" data-col="98.5" data-housing="95.2" data-name="Durham"&gt;Durham, NC&lt;/option&gt;
 
 &lt;option value="edinburgh-gb" data-col="105.8" data-housing="112.6" data-name="Edinburgh"&gt;Edinburgh, SCT&lt;/option&gt;
 
 &lt;option value="edmonton-ca" data-col="97.4" data-housing="96.8" data-name="Edmonton"&gt;Edmonton, AB&lt;/option&gt;
 
 &lt;option value="eindhoven-nl" data-col="74.5" data-housing="98" data-name="Eindhoven"&gt;Eindhoven, NB&lt;/option&gt;
 
 &lt;option value="el-paso-tx" data-col="88.5" data-housing="76.8" data-name="El Paso"&gt;El Paso, TX&lt;/option&gt;
 
 &lt;option value="elk-grove-ca" data-col="128.5" data-housing="158.4" data-name="Elk Grove"&gt;Elk Grove, CA&lt;/option&gt;
 
 &lt;option value="eugene-or" data-col="104.2" data-housing="108.5" data-name="Eugene"&gt;Eugene, OR&lt;/option&gt;
 
 &lt;option value="fargo-nd" data-col="90.5" data-housing="82.5" data-name="Fargo"&gt;Fargo, ND&lt;/option&gt;
 
 &lt;option value="fayetteville-nc" data-col="90.5" data-housing="78.5" data-name="Fayetteville"&gt;Fayetteville, NC&lt;/option&gt;
 
 &lt;option value="fort-wayne-in" data-col="86.5" data-housing="72.5" data-name="Fort Wayne"&gt;Fort Wayne, IN&lt;/option&gt;
 
 &lt;option value="fort-worth-tx" data-col="98.5" data-housing="95.2" data-name="Fort Worth"&gt;Fort Worth, TX&lt;/option&gt;
 
 &lt;option value="fremont-ca" data-col="178.5" data-housing="268.4" data-name="Fremont"&gt;Fremont, CA&lt;/option&gt;
 
 &lt;option value="fresno-ca" data-col="102.5" data-housing="98.5" data-name="Fresno"&gt;Fresno, CA&lt;/option&gt;
 
 &lt;option value="garland-tx" data-col="96.5" data-housing="92.4" data-name="Garland"&gt;Garland, TX&lt;/option&gt;
 
 &lt;option value="glasgow-gb" data-col="88.4" data-housing="86.2" data-name="Glasgow"&gt;Glasgow, SCT&lt;/option&gt;
 
 &lt;option value="glendale-az" data-col="98.5" data-housing="95.2" data-name="Glendale"&gt;Glendale, AZ&lt;/option&gt;
 
 &lt;option value="grand-rapids-mi" data-col="94.5" data-housing="88.5" data-name="Grand Rapids"&gt;Grand Rapids, MI&lt;/option&gt;
 
 &lt;option value="greensboro-nc" data-col="92.4" data-housing="82.5" data-name="Greensboro"&gt;Greensboro, NC&lt;/option&gt;
 
 &lt;option value="greenville-sc" data-col="96.5" data-housing="92.5" data-name="Greenville"&gt;Greenville, SC&lt;/option&gt;
 
 &lt;option value="groningen-nl" data-col="71" data-housing="85" data-name="Groningen"&gt;Groningen, GR&lt;/option&gt;
 
 &lt;option value="halifax-ca" data-col="93.5" data-housing="91.3" data-name="Halifax"&gt;Halifax, NS&lt;/option&gt;
 
 &lt;option value="henderson-nv" data-col="108.5" data-housing="118.2" data-name="Henderson"&gt;Henderson, NV&lt;/option&gt;
 
 &lt;option value="hialeah-fl" data-col="108.5" data-housing="112.5" data-name="Hialeah"&gt;Hialeah, FL&lt;/option&gt;
 
 &lt;option value="honolulu-hi" data-col="185.2" data-housing="284.5" data-name="Honolulu"&gt;Honolulu, HI&lt;/option&gt;
 
 &lt;option value="houston-tx" data-col="95.8" data-housing="91.2" data-name="Houston"&gt;Houston, TX&lt;/option&gt;
 
 &lt;option value="huntsville-al" data-col="94.5" data-housing="88.5" data-name="Huntsville"&gt;Huntsville, AL&lt;/option&gt;
 
 &lt;option value="indianapolis-in" data-col="91.5" data-housing="82.4" data-name="Indianapolis"&gt;Indianapolis, IN&lt;/option&gt;
 
 &lt;option value="irvine-ca" data-col="158.5" data-housing="228.4" data-name="Irvine"&gt;Irvine, CA&lt;/option&gt;
 
 &lt;option value="irving-tx" data-col="100.5" data-housing="102.4" data-name="Irving"&gt;Irving, TX&lt;/option&gt;
 
 &lt;option value="jackson-ms" data-col="88.5" data-housing="72.5" data-name="Jackson"&gt;Jackson, MS&lt;/option&gt;
 
 &lt;option value="jacksonville-fl" data-col="96.8" data-housing="92.4" data-name="Jacksonville"&gt;Jacksonville, FL&lt;/option&gt;
 
 &lt;option value="jersey-city-nj" data-col="142.5" data-housing="188.4" data-name="Jersey City"&gt;Jersey City, NJ&lt;/option&gt;
 
 &lt;option value="kansas-city-ks" data-col="90.5" data-housing="78.5" data-name="Kansas City"&gt;Kansas City, KS&lt;/option&gt;
 
 &lt;option value="kansas-city-mo" data-col="92.8" data-housing="85.4" data-name="Kansas City"&gt;Kansas City, MO&lt;/option&gt;
 
 &lt;option value="key-west-fl" data-col="158.5" data-housing="228.4" data-name="Key West"&gt;Key West, FL&lt;/option&gt;
 
 &lt;option value="knoxville-tn" data-col="92.5" data-housing="82.5" data-name="Knoxville"&gt;Knoxville, TN&lt;/option&gt;
 
 &lt;option value="laredo-tx" data-col="88.5" data-housing="78.4" data-name="Laredo"&gt;Laredo, TX&lt;/option&gt;
 
 &lt;option value="las-vegas-nv" data-col="102.4" data-housing="108.2" data-name="Las Vegas"&gt;Las Vegas, NV&lt;/option&gt;
 
 &lt;option value="leeds-gb" data-col="91.7" data-housing="93.1" data-name="Leeds"&gt;Leeds, ENG&lt;/option&gt;
 
 &lt;option value="leiden-nl" data-col="76" data-housing="110" data-name="Leiden"&gt;Leiden, ZH&lt;/option&gt;
 
 &lt;option value="lexington-ky" data-col="94.2" data-housing="88.5" data-name="Lexington"&gt;Lexington, KY&lt;/option&gt;
 
 &lt;option value="lincoln-ne" data-col="92.5" data-housing="85.2" data-name="Lincoln"&gt;Lincoln, NE&lt;/option&gt;
 
 &lt;option value="little-rock-ar" data-col="88.5" data-housing="78.5" data-name="Little Rock"&gt;Little Rock, AR&lt;/option&gt;
 
 &lt;option value="liverpool-gb" data-col="86.5" data-housing="84.3" data-name="Liverpool"&gt;Liverpool, ENG&lt;/option&gt;
 
 &lt;option value="london-gb" data-col="135.2" data-housing="168.4" data-name="London"&gt;London, ENG&lt;/option&gt;
 
 &lt;option value="long-beach-ca" data-col="142.5" data-housing="198.5" data-name="Long Beach"&gt;Long Beach, CA&lt;/option&gt;
 
 &lt;option value="los-angeles-ca" data-col="173.3" data-housing="261.4" data-name="Los Angeles"&gt;Los Angeles, CA&lt;/option&gt;
 
 &lt;option value="louisville-ky" data-col="91.2" data-housing="82.1" data-name="Louisville"&gt;Louisville, KY&lt;/option&gt;
 
 &lt;option value="lubbock-tx" data-col="88.5" data-housing="76.8" data-name="Lubbock"&gt;Lubbock, TX&lt;/option&gt;
 
 &lt;option value="maastricht-nl" data-col="74" data-housing="92" data-name="Maastricht"&gt;Maastricht, LI&lt;/option&gt;
 
 &lt;option value="madison-wi" data-col="104.2" data-housing="112.5" data-name="Madison"&gt;Madison, WI&lt;/option&gt;
 
 &lt;option value="manchester-gb" data-col="98.5" data-housing="102.3" data-name="Manchester"&gt;Manchester, ENG&lt;/option&gt;
 
 &lt;option value="manchester-nh" data-col="108.5" data-housing="118.2" data-name="Manchester"&gt;Manchester, NH&lt;/option&gt;
 
 &lt;option value="memphis-tn" data-col="88.5" data-housing="74.2" data-name="Memphis"&gt;Memphis, TN&lt;/option&gt;
 
 &lt;option value="mesa-az" data-col="102.5" data-housing="108.4" data-name="Mesa"&gt;Mesa, AZ&lt;/option&gt;
 
 &lt;option value="miami-fl" data-col="145.6" data-housing="198.3" data-name="Miami"&gt;Miami, FL&lt;/option&gt;
 
 &lt;option value="milwaukee-wi" data-col="95.2" data-housing="86.4" data-name="Milwaukee"&gt;Milwaukee, WI&lt;/option&gt;
 
 &lt;option value="minneapolis-mn" data-col="106.5" data-housing="118.2" data-name="Minneapolis"&gt;Minneapolis, MN&lt;/option&gt;
 
 &lt;option value="mobile-al" data-col="90.5" data-housing="78.5" data-name="Mobile"&gt;Mobile, AL&lt;/option&gt;
 
 &lt;option value="modesto-ca" data-col="108.5" data-housing="102.4" data-name="Modesto"&gt;Modesto, CA&lt;/option&gt;
 
 &lt;option value="montgomery-al" data-col="90.5" data-housing="78.5" data-name="Montgomery"&gt;Montgomery, AL&lt;/option&gt;
 
 &lt;option value="montreal-ca" data-col="98.3" data-housing="101.5" data-name="Montreal"&gt;Montreal, QC&lt;/option&gt;
 
 &lt;option value="myrtle-beach-sc" data-col="96.5" data-housing="88.5" data-name="Myrtle Beach"&gt;Myrtle Beach, SC&lt;/option&gt;
 
 &lt;option value="nashville-tn" data-col="100.5" data-housing="105.2" data-name="Nashville"&gt;Nashville, TN&lt;/option&gt;
 
 &lt;option value="new-orleans-la" data-col="98.5" data-housing="95.2" data-name="New Orleans"&gt;New Orleans, LA&lt;/option&gt;
 
 &lt;option value="nyc" data-col="187.2" data-housing="294.7" data-name="New York City"&gt;New York City, NY&lt;/option&gt;
 
 &lt;option value="newark-nj" data-col="118.5" data-housing="128.4" data-name="Newark"&gt;Newark, NJ&lt;/option&gt;
 
 &lt;option value="norfolk-va" data-col="98.5" data-housing="92.4" data-name="Norfolk"&gt;Norfolk, VA&lt;/option&gt;
 
 &lt;option value="oakland-ca" data-col="158.4" data-housing="218.5" data-name="Oakland"&gt;Oakland, CA&lt;/option&gt;
 
 &lt;option value="oklahoma-city-ok" data-col="88.2" data-housing="78.5" data-name="Oklahoma City"&gt;Oklahoma City, OK&lt;/option&gt;
 
 &lt;option value="omaha-ne" data-col="91.5" data-housing="82.8" data-name="Omaha"&gt;Omaha, NE&lt;/option&gt;
 
 &lt;option value="orlando-fl" data-col="98.5" data-housing="95.2" data-name="Orlando"&gt;Orlando, FL&lt;/option&gt;
 
 &lt;option value="ottawa-ca" data-col="101.2" data-housing="104.8" data-name="Ottawa"&gt;Ottawa, ON&lt;/option&gt;
 
 &lt;option value="oxnard-ca" data-col="138.5" data-housing="188.4" data-name="Oxnard"&gt;Oxnard, CA&lt;/option&gt;
 
 &lt;option value="philadelphia-pa" data-col="108.5" data-housing="118.3" data-name="Philadelphia"&gt;Philadelphia, PA&lt;/option&gt;
 
 &lt;option value="phoenix-az" data-col="108.2" data-housing="124.6" data-name="Phoenix"&gt;Phoenix, AZ&lt;/option&gt;
 
 &lt;option value="pittsburgh-pa" data-col="94.5" data-housing="78.5" data-name="Pittsburgh"&gt;Pittsburgh, PA&lt;/option&gt;
 
 &lt;option value="plano-tx" data-col="108.5" data-housing="118.2" data-name="Plano"&gt;Plano, TX&lt;/option&gt;
 
 &lt;option value="portland-me" data-col="112.5" data-housing="128.4" data-name="Portland"&gt;Portland, ME&lt;/option&gt;
 
 &lt;option value="portland-or" data-col="118.2" data-housing="142.5" data-name="Portland"&gt;Portland, OR&lt;/option&gt;
 
 &lt;option value="providence-ri" data-col="118.5" data-housing="128.4" data-name="Providence"&gt;Providence, RI&lt;/option&gt;
 
 &lt;option value="quebec-city-ca" data-col="87.2" data-housing="79.6" data-name="Quebec City"&gt;Quebec City, QC&lt;/option&gt;
 
 &lt;option value="raleigh-nc" data-col="102.4" data-housing="108.5" data-name="Raleigh"&gt;Raleigh, NC&lt;/option&gt;
 
 &lt;option value="reno-nv" data-col="108.5" data-housing="118.2" data-name="Reno"&gt;Reno, NV&lt;/option&gt;
 
 &lt;option value="richmond-va" data-col="98.5" data-housing="92.4" data-name="Richmond"&gt;Richmond, VA&lt;/option&gt;
 
 &lt;option value="riverside-ca" data-col="118.5" data-housing="142.5" data-name="Riverside"&gt;Riverside, CA&lt;/option&gt;
 
 &lt;option value="rochester-ny" data-col="92.5" data-housing="72.5" data-name="Rochester"&gt;Rochester, NY&lt;/option&gt;
 
 &lt;option value="rotterdam-nl" data-col="78.9" data-housing="115" data-name="Rotterdam"&gt;Rotterdam, ZH&lt;/option&gt;
 
 &lt;option value="sacramento-ca" data-col="118.5" data-housing="138.5" data-name="Sacramento"&gt;Sacramento, CA&lt;/option&gt;
 
 &lt;option value="saint-paul-mn" data-col="104.2" data-housing="108.5" data-name="Saint Paul"&gt;Saint Paul, MN&lt;/option&gt;
 
 &lt;option value="salem-or" data-col="102.5" data-housing="98.5" data-name="Salem"&gt;Salem, OR&lt;/option&gt;
 
 &lt;option value="salt-lake-city-ut" data-col="108.5" data-housing="118.2" data-name="Salt Lake City"&gt;Salt Lake City, UT&lt;/option&gt;
 
 &lt;option value="san-antonio-tx" data-col="92.4" data-housing="85.3" data-name="San Antonio"&gt;San Antonio, TX&lt;/option&gt;
 
 &lt;option value="san-bernardino-ca" data-col="108.5" data-housing="102.4" data-name="San Bernardino"&gt;San Bernardino, CA&lt;/option&gt;
 
 &lt;option value="san-diego-ca" data-col="154.2" data-housing="234.5" data-name="San Diego"&gt;San Diego, CA&lt;/option&gt;
 
 &lt;option value="san-francisco-ca" data-col="269.3" data-housing="432.1" data-name="San Francisco"&gt;San Francisco, CA&lt;/option&gt;
 
 &lt;option value="san-jose-ca" data-col="214.5" data-housing="342.1" data-name="San Jose"&gt;San Jose, CA&lt;/option&gt;
 
 &lt;option value="santa-ana-ca" data-col="142.8" data-housing="198.5" data-name="Santa Ana"&gt;Santa Ana, CA&lt;/option&gt;
 
 &lt;option value="santa-fe-nm" data-col="112.5" data-housing="128.4" data-name="Santa Fe"&gt;Santa Fe, NM&lt;/option&gt;
 
 &lt;option value="savannah-ga" data-col="96.5" data-housing="92.5" data-name="Savannah"&gt;Savannah, GA&lt;/option&gt;
 
 &lt;option value="scottsdale-az" data-col="118.5" data-housing="142.5" data-name="Scottsdale"&gt;Scottsdale, AZ&lt;/option&gt;
 
 &lt;option value="seattle-wa" data-col="172.1" data-housing="245.8" data-name="Seattle"&gt;Seattle, WA&lt;/option&gt;
 
 &lt;option value="sioux-falls-sd" data-col="90.5" data-housing="82.5" data-name="Sioux Falls"&gt;Sioux Falls, SD&lt;/option&gt;
 
 &lt;option value="spokane-wa" data-col="98.5" data-housing="92.4" data-name="Spokane"&gt;Spokane, WA&lt;/option&gt;
 
 &lt;option value="st-petersburg-fl" data-col="102.5" data-housing="108.4" data-name="St. Petersburg"&gt;St. Petersburg, FL&lt;/option&gt;
 
 &lt;option value="stockton-ca" data-col="112.5" data-housing="128.4" data-name="Stockton"&gt;Stockton, CA&lt;/option&gt;
 
 &lt;option value="tacoma-wa" data-col="112.5" data-housing="128.4" data-name="Tacoma"&gt;Tacoma, WA&lt;/option&gt;
 
 &lt;option value="tallahassee-fl" data-col="96.5" data-housing="88.5" data-name="Tallahassee"&gt;Tallahassee, FL&lt;/option&gt;
 
 &lt;option value="tampa-fl" data-col="102.8" data-housing="108.5" data-name="Tampa"&gt;Tampa, FL&lt;/option&gt;
 
 &lt;option value="the-hague-nl" data-col="75.6" data-housing="118" data-name="The Hague"&gt;The Hague, ZH&lt;/option&gt;
 
 &lt;option value="tilburg-nl" data-col="73" data-housing="88" data-name="Tilburg"&gt;Tilburg, NB&lt;/option&gt;
 
 &lt;option value="toledo-oh" data-col="88.5" data-housing="68.4" data-name="Toledo"&gt;Toledo, OH&lt;/option&gt;
 
 &lt;option value="toronto-ca" data-col="128.4" data-housing="152.7" data-name="Toronto"&gt;Toronto, ON&lt;/option&gt;
 
 &lt;option value="tucson-az" data-col="95.8" data-housing="88.5" data-name="Tucson"&gt;Tucson, AZ&lt;/option&gt;
 
 &lt;option value="tulsa-ok" data-col="88.5" data-housing="78.2" data-name="Tulsa"&gt;Tulsa, OK&lt;/option&gt;
 
 &lt;option value="utrecht-nl" data-col="76.5" data-housing="122" data-name="Utrecht"&gt;Utrecht, UT&lt;/option&gt;
 
 &lt;option value="vancouver-ca" data-col="142.6" data-housing="178.3" data-name="Vancouver"&gt;Vancouver, BC&lt;/option&gt;
 
 &lt;option value="victoria-ca" data-col="112.4" data-housing="118.6" data-name="Victoria"&gt;Victoria, BC&lt;/option&gt;
 
 &lt;option value="virginia-beach-va" data-col="104.2" data-housing="112.5" data-name="Virginia Beach"&gt;Virginia Beach, VA&lt;/option&gt;
 
 &lt;option value="washington-dc" data-col="152.1" data-housing="228.4" data-name="Washington DC"&gt;Washington DC, DC&lt;/option&gt;
 
 &lt;option value="wichita-ks" data-col="86.8" data-housing="74.5" data-name="Wichita"&gt;Wichita, KS&lt;/option&gt;
 
 &lt;option value="wilmington-nc" data-col="98.5" data-housing="95.2" data-name="Wilmington"&gt;Wilmington, NC&lt;/option&gt;
 
 &lt;option value="winnipeg-ca" data-col="88.6" data-housing="82.4" data-name="Winnipeg"&gt;Winnipeg, MB&lt;/option&gt;
 
 &lt;option value="winston-salem-nc" data-col="92.5" data-housing="82.5" data-name="Winston-Salem"&gt;Winston-Salem, NC&lt;/option&gt;
 
 &lt;option value="worcester-ma" data-col="118.5" data-housing="128.4" data-name="Worcester"&gt;Worcester, MA&lt;/option&gt;
 
 &lt;/select&gt;
 &lt;/div&gt;

 &lt;div class="calc-swap-btn" onclick="swapCities()" title="Swap cities"&gt;
 &lt;svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;
 &lt;polyline points="17 1 21 5 17 9"/&gt;
 &lt;path d="M3 11V9a4 4 0 0 1 4-4h14"/&gt;
 &lt;polyline points="7 23 3 19 7 15"/&gt;
 &lt;path d="M21 13v2a4 4 0 0 1-4 4H3"/&gt;
 &lt;/svg&gt;
 &lt;/div&gt;

 &lt;div class="calc-field"&gt;
 &lt;label for="col-city-b"&gt;
 &lt;svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/&gt;&lt;circle cx="12" cy="10" r="3"/&gt;&lt;/svg&gt;
 City B
 &lt;/label&gt;
 &lt;select id="col-city-b"&gt;
 
 &lt;option value="akron-oh" data-col="88.5" data-housing="68.5" data-name="Akron"&gt;Akron, OH&lt;/option&gt;
 
 &lt;option value="albuquerque-nm" data-col="94.5" data-housing="88.2" data-name="Albuquerque"&gt;Albuquerque, NM&lt;/option&gt;
 
 &lt;option value="amsterdam-nl" data-col="82.1" data-housing="135" data-name="Amsterdam"&gt;Amsterdam, NH&lt;/option&gt;
 
 &lt;option value="anaheim-ca" data-col="148.5" data-housing="212.4" data-name="Anaheim"&gt;Anaheim, CA&lt;/option&gt;
 
 &lt;option value="anchorage-ak" data-col="118.5" data-housing="128.4" data-name="Anchorage"&gt;Anchorage, AK&lt;/option&gt;
 
 &lt;option value="ann-arbor-mi" data-col="108.5" data-housing="118.2" data-name="Ann Arbor"&gt;Ann Arbor, MI&lt;/option&gt;
 
 &lt;option value="asheville-nc" data-col="102.5" data-housing="108.5" data-name="Asheville"&gt;Asheville, NC&lt;/option&gt;
 
 &lt;option value="atlanta-ga" data-col="104.7" data-housing="118.3" data-name="Atlanta"&gt;Atlanta, GA&lt;/option&gt;
 
 &lt;option value="augusta-ga" data-col="90.5" data-housing="78.5" data-name="Augusta"&gt;Augusta, GA&lt;/option&gt;
 
 &lt;option value="aurora-co" data-col="108.5" data-housing="118.2" data-name="Aurora"&gt;Aurora, CO&lt;/option&gt;
 
 &lt;option value="austin-tx" data-col="119.3" data-housing="159.2" data-name="Austin"&gt;Austin, TX&lt;/option&gt;
 
 &lt;option value="bakersfield-ca" data-col="102.5" data-housing="98.4" data-name="Bakersfield"&gt;Bakersfield, CA&lt;/option&gt;
 
 &lt;option value="baltimore-md" data-col="108.4" data-housing="112.5" data-name="Baltimore"&gt;Baltimore, MD&lt;/option&gt;
 
 &lt;option value="baton-rouge-la" data-col="94.5" data-housing="88.5" data-name="Baton Rouge"&gt;Baton Rouge, LA&lt;/option&gt;
 
 &lt;option value="belfast-gb" data-col="84.1" data-housing="80.5" data-name="Belfast"&gt;Belfast, NIR&lt;/option&gt;
 
 &lt;option value="bellingham-wa" data-col="115.2" data-housing="132.5" data-name="Bellingham"&gt;Bellingham, WA&lt;/option&gt;
 
 &lt;option value="bend-or" data-col="118.5" data-housing="142.5" data-name="Bend"&gt;Bend, OR&lt;/option&gt;
 
 &lt;option value="billings-mt" data-col="96.5" data-housing="92.5" data-name="Billings"&gt;Billings, MT&lt;/option&gt;
 
 &lt;option value="birmingham-al" data-col="90.5" data-housing="78.5" data-name="Birmingham"&gt;Birmingham, AL&lt;/option&gt;
 
 &lt;option value="birmingham-gb" data-col="92.3" data-housing="94.7" data-name="Birmingham"&gt;Birmingham, ENG&lt;/option&gt;
 
 &lt;option value="boise-id" data-col="102.5" data-housing="112.5" data-name="Boise"&gt;Boise, ID&lt;/option&gt;
 
 &lt;option value="boston-ma" data-col="153.2" data-housing="231.5" data-name="Boston"&gt;Boston, MA&lt;/option&gt;
 
 &lt;option value="boulder-co" data-col="148.5" data-housing="228.4" data-name="Boulder"&gt;Boulder, CO&lt;/option&gt;
 
 &lt;option value="bridgeport-ct" data-col="118.5" data-housing="128.4" data-name="Bridgeport"&gt;Bridgeport, CT&lt;/option&gt;
 
 &lt;option value="bristol-gb" data-col="102.1" data-housing="108.5" data-name="Bristol"&gt;Bristol, ENG&lt;/option&gt;
 
 &lt;option value="buffalo-ny" data-col="92.5" data-housing="72.5" data-name="Buffalo"&gt;Buffalo, NY&lt;/option&gt;
 
 &lt;option value="burlington-vt" data-col="112.5" data-housing="128.4" data-name="Burlington"&gt;Burlington, VT&lt;/option&gt;
 
 &lt;option value="calgary-ca" data-col="105.7" data-housing="108.2" data-name="Calgary"&gt;Calgary, AB&lt;/option&gt;
 
 &lt;option value="cardiff-gb" data-col="89.2" data-housing="88.7" data-name="Cardiff"&gt;Cardiff, WLS&lt;/option&gt;
 
 &lt;option value="chandler-az" data-col="108.5" data-housing="118.2" data-name="Chandler"&gt;Chandler, AZ&lt;/option&gt;
 
 &lt;option value="charleston-sc" data-col="108.5" data-housing="118.2" data-name="Charleston"&gt;Charleston, SC&lt;/option&gt;
 
 &lt;option value="charlotte-nc" data-col="98.2" data-housing="96.8" data-name="Charlotte"&gt;Charlotte, NC&lt;/option&gt;
 
 &lt;option value="chattanooga-tn" data-col="92.5" data-housing="82.5" data-name="Chattanooga"&gt;Chattanooga, TN&lt;/option&gt;
 
 &lt;option value="chesapeake-va" data-col="102.5" data-housing="105.2" data-name="Chesapeake"&gt;Chesapeake, VA&lt;/option&gt;
 
 &lt;option value="cheyenne-wy" data-col="96.5" data-housing="92.5" data-name="Cheyenne"&gt;Cheyenne, WY&lt;/option&gt;
 
 &lt;option value="chicago-il" data-col="110.8" data-housing="132.5" data-name="Chicago"&gt;Chicago, IL&lt;/option&gt;
 
 &lt;option value="chula-vista-ca" data-col="138.5" data-housing="188.4" data-name="Chula Vista"&gt;Chula Vista, CA&lt;/option&gt;
 
 &lt;option value="cincinnati-oh" data-col="92.8" data-housing="82.5" data-name="Cincinnati"&gt;Cincinnati, OH&lt;/option&gt;
 
 &lt;option value="cleveland-oh" data-col="90.2" data-housing="72.5" data-name="Cleveland"&gt;Cleveland, OH&lt;/option&gt;
 
 &lt;option value="colorado-springs-co" data-col="105.2" data-housing="118.5" data-name="Colorado Springs"&gt;Colorado Springs, CO&lt;/option&gt;
 
 &lt;option value="columbia-sc" data-col="94.5" data-housing="88.5" data-name="Columbia"&gt;Columbia, SC&lt;/option&gt;
 
 &lt;option value="columbus-oh" data-col="92.1" data-housing="84.5" data-name="Columbus"&gt;Columbus, OH&lt;/option&gt;
 
 &lt;option value="corpus-christi-tx" data-col="92.5" data-housing="88.4" data-name="Corpus Christi"&gt;Corpus Christi, TX&lt;/option&gt;
 
 &lt;option value="dallas-tx" data-col="101.3" data-housing="108.5" data-name="Dallas"&gt;Dallas, TX&lt;/option&gt;
 
 &lt;option value="delft-nl" data-col="75" data-housing="105" data-name="Delft"&gt;Delft, ZH&lt;/option&gt;
 
 &lt;option value="denver-co" data-col="128.5" data-housing="168.3" data-name="Denver"&gt;Denver, CO&lt;/option&gt;
 
 &lt;option value="des-moines-ia" data-col="90.5" data-housing="82.5" data-name="Des Moines"&gt;Des Moines, IA&lt;/option&gt;
 
 &lt;option value="detroit-mi" data-col="92.8" data-housing="68.4" data-name="Detroit"&gt;Detroit, MI&lt;/option&gt;
 
 &lt;option value="durham-nc" data-col="98.5" data-housing="95.2" data-name="Durham"&gt;Durham, NC&lt;/option&gt;
 
 &lt;option value="edinburgh-gb" data-col="105.8" data-housing="112.6" data-name="Edinburgh"&gt;Edinburgh, SCT&lt;/option&gt;
 
 &lt;option value="edmonton-ca" data-col="97.4" data-housing="96.8" data-name="Edmonton"&gt;Edmonton, AB&lt;/option&gt;
 
 &lt;option value="eindhoven-nl" data-col="74.5" data-housing="98" data-name="Eindhoven"&gt;Eindhoven, NB&lt;/option&gt;
 
 &lt;option value="el-paso-tx" data-col="88.5" data-housing="76.8" data-name="El Paso"&gt;El Paso, TX&lt;/option&gt;
 
 &lt;option value="elk-grove-ca" data-col="128.5" data-housing="158.4" data-name="Elk Grove"&gt;Elk Grove, CA&lt;/option&gt;
 
 &lt;option value="eugene-or" data-col="104.2" data-housing="108.5" data-name="Eugene"&gt;Eugene, OR&lt;/option&gt;
 
 &lt;option value="fargo-nd" data-col="90.5" data-housing="82.5" data-name="Fargo"&gt;Fargo, ND&lt;/option&gt;
 
 &lt;option value="fayetteville-nc" data-col="90.5" data-housing="78.5" data-name="Fayetteville"&gt;Fayetteville, NC&lt;/option&gt;
 
 &lt;option value="fort-wayne-in" data-col="86.5" data-housing="72.5" data-name="Fort Wayne"&gt;Fort Wayne, IN&lt;/option&gt;
 
 &lt;option value="fort-worth-tx" data-col="98.5" data-housing="95.2" data-name="Fort Worth"&gt;Fort Worth, TX&lt;/option&gt;
 
 &lt;option value="fremont-ca" data-col="178.5" data-housing="268.4" data-name="Fremont"&gt;Fremont, CA&lt;/option&gt;
 
 &lt;option value="fresno-ca" data-col="102.5" data-housing="98.5" data-name="Fresno"&gt;Fresno, CA&lt;/option&gt;
 
 &lt;option value="garland-tx" data-col="96.5" data-housing="92.4" data-name="Garland"&gt;Garland, TX&lt;/option&gt;
 
 &lt;option value="glasgow-gb" data-col="88.4" data-housing="86.2" data-name="Glasgow"&gt;Glasgow, SCT&lt;/option&gt;
 
 &lt;option value="glendale-az" data-col="98.5" data-housing="95.2" data-name="Glendale"&gt;Glendale, AZ&lt;/option&gt;
 
 &lt;option value="grand-rapids-mi" data-col="94.5" data-housing="88.5" data-name="Grand Rapids"&gt;Grand Rapids, MI&lt;/option&gt;
 
 &lt;option value="greensboro-nc" data-col="92.4" data-housing="82.5" data-name="Greensboro"&gt;Greensboro, NC&lt;/option&gt;
 
 &lt;option value="greenville-sc" data-col="96.5" data-housing="92.5" data-name="Greenville"&gt;Greenville, SC&lt;/option&gt;
 
 &lt;option value="groningen-nl" data-col="71" data-housing="85" data-name="Groningen"&gt;Groningen, GR&lt;/option&gt;
 
 &lt;option value="halifax-ca" data-col="93.5" data-housing="91.3" data-name="Halifax"&gt;Halifax, NS&lt;/option&gt;
 
 &lt;option value="henderson-nv" data-col="108.5" data-housing="118.2" data-name="Henderson"&gt;Henderson, NV&lt;/option&gt;
 
 &lt;option value="hialeah-fl" data-col="108.5" data-housing="112.5" data-name="Hialeah"&gt;Hialeah, FL&lt;/option&gt;
 
 &lt;option value="honolulu-hi" data-col="185.2" data-housing="284.5" data-name="Honolulu"&gt;Honolulu, HI&lt;/option&gt;
 
 &lt;option value="houston-tx" data-col="95.8" data-housing="91.2" data-name="Houston"&gt;Houston, TX&lt;/option&gt;
 
 &lt;option value="huntsville-al" data-col="94.5" data-housing="88.5" data-name="Huntsville"&gt;Huntsville, AL&lt;/option&gt;
 
 &lt;option value="indianapolis-in" data-col="91.5" data-housing="82.4" data-name="Indianapolis"&gt;Indianapolis, IN&lt;/option&gt;
 
 &lt;option value="irvine-ca" data-col="158.5" data-housing="228.4" data-name="Irvine"&gt;Irvine, CA&lt;/option&gt;
 
 &lt;option value="irving-tx" data-col="100.5" data-housing="102.4" data-name="Irving"&gt;Irving, TX&lt;/option&gt;
 
 &lt;option value="jackson-ms" data-col="88.5" data-housing="72.5" data-name="Jackson"&gt;Jackson, MS&lt;/option&gt;
 
 &lt;option value="jacksonville-fl" data-col="96.8" data-housing="92.4" data-name="Jacksonville"&gt;Jacksonville, FL&lt;/option&gt;
 
 &lt;option value="jersey-city-nj" data-col="142.5" data-housing="188.4" data-name="Jersey City"&gt;Jersey City, NJ&lt;/option&gt;
 
 &lt;option value="kansas-city-ks" data-col="90.5" data-housing="78.5" data-name="Kansas City"&gt;Kansas City, KS&lt;/option&gt;
 
 &lt;option value="kansas-city-mo" data-col="92.8" data-housing="85.4" data-name="Kansas City"&gt;Kansas City, MO&lt;/option&gt;
 
 &lt;option value="key-west-fl" data-col="158.5" data-housing="228.4" data-name="Key West"&gt;Key West, FL&lt;/option&gt;
 
 &lt;option value="knoxville-tn" data-col="92.5" data-housing="82.5" data-name="Knoxville"&gt;Knoxville, TN&lt;/option&gt;
 
 &lt;option value="laredo-tx" data-col="88.5" data-housing="78.4" data-name="Laredo"&gt;Laredo, TX&lt;/option&gt;
 
 &lt;option value="las-vegas-nv" data-col="102.4" data-housing="108.2" data-name="Las Vegas"&gt;Las Vegas, NV&lt;/option&gt;
 
 &lt;option value="leeds-gb" data-col="91.7" data-housing="93.1" data-name="Leeds"&gt;Leeds, ENG&lt;/option&gt;
 
 &lt;option value="leiden-nl" data-col="76" data-housing="110" data-name="Leiden"&gt;Leiden, ZH&lt;/option&gt;
 
 &lt;option value="lexington-ky" data-col="94.2" data-housing="88.5" data-name="Lexington"&gt;Lexington, KY&lt;/option&gt;
 
 &lt;option value="lincoln-ne" data-col="92.5" data-housing="85.2" data-name="Lincoln"&gt;Lincoln, NE&lt;/option&gt;
 
 &lt;option value="little-rock-ar" data-col="88.5" data-housing="78.5" data-name="Little Rock"&gt;Little Rock, AR&lt;/option&gt;
 
 &lt;option value="liverpool-gb" data-col="86.5" data-housing="84.3" data-name="Liverpool"&gt;Liverpool, ENG&lt;/option&gt;
 
 &lt;option value="london-gb" data-col="135.2" data-housing="168.4" data-name="London"&gt;London, ENG&lt;/option&gt;
 
 &lt;option value="long-beach-ca" data-col="142.5" data-housing="198.5" data-name="Long Beach"&gt;Long Beach, CA&lt;/option&gt;
 
 &lt;option value="los-angeles-ca" data-col="173.3" data-housing="261.4" data-name="Los Angeles"&gt;Los Angeles, CA&lt;/option&gt;
 
 &lt;option value="louisville-ky" data-col="91.2" data-housing="82.1" data-name="Louisville"&gt;Louisville, KY&lt;/option&gt;
 
 &lt;option value="lubbock-tx" data-col="88.5" data-housing="76.8" data-name="Lubbock"&gt;Lubbock, TX&lt;/option&gt;
 
 &lt;option value="maastricht-nl" data-col="74" data-housing="92" data-name="Maastricht"&gt;Maastricht, LI&lt;/option&gt;
 
 &lt;option value="madison-wi" data-col="104.2" data-housing="112.5" data-name="Madison"&gt;Madison, WI&lt;/option&gt;
 
 &lt;option value="manchester-gb" data-col="98.5" data-housing="102.3" data-name="Manchester"&gt;Manchester, ENG&lt;/option&gt;
 
 &lt;option value="manchester-nh" data-col="108.5" data-housing="118.2" data-name="Manchester"&gt;Manchester, NH&lt;/option&gt;
 
 &lt;option value="memphis-tn" data-col="88.5" data-housing="74.2" data-name="Memphis"&gt;Memphis, TN&lt;/option&gt;
 
 &lt;option value="mesa-az" data-col="102.5" data-housing="108.4" data-name="Mesa"&gt;Mesa, AZ&lt;/option&gt;
 
 &lt;option value="miami-fl" data-col="145.6" data-housing="198.3" data-name="Miami"&gt;Miami, FL&lt;/option&gt;
 
 &lt;option value="milwaukee-wi" data-col="95.2" data-housing="86.4" data-name="Milwaukee"&gt;Milwaukee, WI&lt;/option&gt;
 
 &lt;option value="minneapolis-mn" data-col="106.5" data-housing="118.2" data-name="Minneapolis"&gt;Minneapolis, MN&lt;/option&gt;
 
 &lt;option value="mobile-al" data-col="90.5" data-housing="78.5" data-name="Mobile"&gt;Mobile, AL&lt;/option&gt;
 
 &lt;option value="modesto-ca" data-col="108.5" data-housing="102.4" data-name="Modesto"&gt;Modesto, CA&lt;/option&gt;
 
 &lt;option value="montgomery-al" data-col="90.5" data-housing="78.5" data-name="Montgomery"&gt;Montgomery, AL&lt;/option&gt;
 
 &lt;option value="montreal-ca" data-col="98.3" data-housing="101.5" data-name="Montreal"&gt;Montreal, QC&lt;/option&gt;
 
 &lt;option value="myrtle-beach-sc" data-col="96.5" data-housing="88.5" data-name="Myrtle Beach"&gt;Myrtle Beach, SC&lt;/option&gt;
 
 &lt;option value="nashville-tn" data-col="100.5" data-housing="105.2" data-name="Nashville"&gt;Nashville, TN&lt;/option&gt;
 
 &lt;option value="new-orleans-la" data-col="98.5" data-housing="95.2" data-name="New Orleans"&gt;New Orleans, LA&lt;/option&gt;
 
 &lt;option value="nyc" data-col="187.2" data-housing="294.7" data-name="New York City"&gt;New York City, NY&lt;/option&gt;
 
 &lt;option value="newark-nj" data-col="118.5" data-housing="128.4" data-name="Newark"&gt;Newark, NJ&lt;/option&gt;
 
 &lt;option value="norfolk-va" data-col="98.5" data-housing="92.4" data-name="Norfolk"&gt;Norfolk, VA&lt;/option&gt;
 
 &lt;option value="oakland-ca" data-col="158.4" data-housing="218.5" data-name="Oakland"&gt;Oakland, CA&lt;/option&gt;
 
 &lt;option value="oklahoma-city-ok" data-col="88.2" data-housing="78.5" data-name="Oklahoma City"&gt;Oklahoma City, OK&lt;/option&gt;
 
 &lt;option value="omaha-ne" data-col="91.5" data-housing="82.8" data-name="Omaha"&gt;Omaha, NE&lt;/option&gt;
 
 &lt;option value="orlando-fl" data-col="98.5" data-housing="95.2" data-name="Orlando"&gt;Orlando, FL&lt;/option&gt;
 
 &lt;option value="ottawa-ca" data-col="101.2" data-housing="104.8" data-name="Ottawa"&gt;Ottawa, ON&lt;/option&gt;
 
 &lt;option value="oxnard-ca" data-col="138.5" data-housing="188.4" data-name="Oxnard"&gt;Oxnard, CA&lt;/option&gt;
 
 &lt;option value="philadelphia-pa" data-col="108.5" data-housing="118.3" data-name="Philadelphia"&gt;Philadelphia, PA&lt;/option&gt;
 
 &lt;option value="phoenix-az" data-col="108.2" data-housing="124.6" data-name="Phoenix"&gt;Phoenix, AZ&lt;/option&gt;
 
 &lt;option value="pittsburgh-pa" data-col="94.5" data-housing="78.5" data-name="Pittsburgh"&gt;Pittsburgh, PA&lt;/option&gt;
 
 &lt;option value="plano-tx" data-col="108.5" data-housing="118.2" data-name="Plano"&gt;Plano, TX&lt;/option&gt;
 
 &lt;option value="portland-me" data-col="112.5" data-housing="128.4" data-name="Portland"&gt;Portland, ME&lt;/option&gt;
 
 &lt;option value="portland-or" data-col="118.2" data-housing="142.5" data-name="Portland"&gt;Portland, OR&lt;/option&gt;
 
 &lt;option value="providence-ri" data-col="118.5" data-housing="128.4" data-name="Providence"&gt;Providence, RI&lt;/option&gt;
 
 &lt;option value="quebec-city-ca" data-col="87.2" data-housing="79.6" data-name="Quebec City"&gt;Quebec City, QC&lt;/option&gt;
 
 &lt;option value="raleigh-nc" data-col="102.4" data-housing="108.5" data-name="Raleigh"&gt;Raleigh, NC&lt;/option&gt;
 
 &lt;option value="reno-nv" data-col="108.5" data-housing="118.2" data-name="Reno"&gt;Reno, NV&lt;/option&gt;
 
 &lt;option value="richmond-va" data-col="98.5" data-housing="92.4" data-name="Richmond"&gt;Richmond, VA&lt;/option&gt;
 
 &lt;option value="riverside-ca" data-col="118.5" data-housing="142.5" data-name="Riverside"&gt;Riverside, CA&lt;/option&gt;
 
 &lt;option value="rochester-ny" data-col="92.5" data-housing="72.5" data-name="Rochester"&gt;Rochester, NY&lt;/option&gt;
 
 &lt;option value="rotterdam-nl" data-col="78.9" data-housing="115" data-name="Rotterdam"&gt;Rotterdam, ZH&lt;/option&gt;
 
 &lt;option value="sacramento-ca" data-col="118.5" data-housing="138.5" data-name="Sacramento"&gt;Sacramento, CA&lt;/option&gt;
 
 &lt;option value="saint-paul-mn" data-col="104.2" data-housing="108.5" data-name="Saint Paul"&gt;Saint Paul, MN&lt;/option&gt;
 
 &lt;option value="salem-or" data-col="102.5" data-housing="98.5" data-name="Salem"&gt;Salem, OR&lt;/option&gt;
 
 &lt;option value="salt-lake-city-ut" data-col="108.5" data-housing="118.2" data-name="Salt Lake City"&gt;Salt Lake City, UT&lt;/option&gt;
 
 &lt;option value="san-antonio-tx" data-col="92.4" data-housing="85.3" data-name="San Antonio"&gt;San Antonio, TX&lt;/option&gt;
 
 &lt;option value="san-bernardino-ca" data-col="108.5" data-housing="102.4" data-name="San Bernardino"&gt;San Bernardino, CA&lt;/option&gt;
 
 &lt;option value="san-diego-ca" data-col="154.2" data-housing="234.5" data-name="San Diego"&gt;San Diego, CA&lt;/option&gt;
 
 &lt;option value="san-francisco-ca" data-col="269.3" data-housing="432.1" data-name="San Francisco"&gt;San Francisco, CA&lt;/option&gt;
 
 &lt;option value="san-jose-ca" data-col="214.5" data-housing="342.1" data-name="San Jose"&gt;San Jose, CA&lt;/option&gt;
 
 &lt;option value="santa-ana-ca" data-col="142.8" data-housing="198.5" data-name="Santa Ana"&gt;Santa Ana, CA&lt;/option&gt;
 
 &lt;option value="santa-fe-nm" data-col="112.5" data-housing="128.4" data-name="Santa Fe"&gt;Santa Fe, NM&lt;/option&gt;
 
 &lt;option value="savannah-ga" data-col="96.5" data-housing="92.5" data-name="Savannah"&gt;Savannah, GA&lt;/option&gt;
 
 &lt;option value="scottsdale-az" data-col="118.5" data-housing="142.5" data-name="Scottsdale"&gt;Scottsdale, AZ&lt;/option&gt;
 
 &lt;option value="seattle-wa" data-col="172.1" data-housing="245.8" data-name="Seattle"&gt;Seattle, WA&lt;/option&gt;
 
 &lt;option value="sioux-falls-sd" data-col="90.5" data-housing="82.5" data-name="Sioux Falls"&gt;Sioux Falls, SD&lt;/option&gt;
 
 &lt;option value="spokane-wa" data-col="98.5" data-housing="92.4" data-name="Spokane"&gt;Spokane, WA&lt;/option&gt;
 
 &lt;option value="st-petersburg-fl" data-col="102.5" data-housing="108.4" data-name="St. Petersburg"&gt;St. Petersburg, FL&lt;/option&gt;
 
 &lt;option value="stockton-ca" data-col="112.5" data-housing="128.4" data-name="Stockton"&gt;Stockton, CA&lt;/option&gt;
 
 &lt;option value="tacoma-wa" data-col="112.5" data-housing="128.4" data-name="Tacoma"&gt;Tacoma, WA&lt;/option&gt;
 
 &lt;option value="tallahassee-fl" data-col="96.5" data-housing="88.5" data-name="Tallahassee"&gt;Tallahassee, FL&lt;/option&gt;
 
 &lt;option value="tampa-fl" data-col="102.8" data-housing="108.5" data-name="Tampa"&gt;Tampa, FL&lt;/option&gt;
 
 &lt;option value="the-hague-nl" data-col="75.6" data-housing="118" data-name="The Hague"&gt;The Hague, ZH&lt;/option&gt;
 
 &lt;option value="tilburg-nl" data-col="73" data-housing="88" data-name="Tilburg"&gt;Tilburg, NB&lt;/option&gt;
 
 &lt;option value="toledo-oh" data-col="88.5" data-housing="68.4" data-name="Toledo"&gt;Toledo, OH&lt;/option&gt;
 
 &lt;option value="toronto-ca" data-col="128.4" data-housing="152.7" data-name="Toronto"&gt;Toronto, ON&lt;/option&gt;
 
 &lt;option value="tucson-az" data-col="95.8" data-housing="88.5" data-name="Tucson"&gt;Tucson, AZ&lt;/option&gt;
 
 &lt;option value="tulsa-ok" data-col="88.5" data-housing="78.2" data-name="Tulsa"&gt;Tulsa, OK&lt;/option&gt;
 
 &lt;option value="utrecht-nl" data-col="76.5" data-housing="122" data-name="Utrecht"&gt;Utrecht, UT&lt;/option&gt;
 
 &lt;option value="vancouver-ca" data-col="142.6" data-housing="178.3" data-name="Vancouver"&gt;Vancouver, BC&lt;/option&gt;
 
 &lt;option value="victoria-ca" data-col="112.4" data-housing="118.6" data-name="Victoria"&gt;Victoria, BC&lt;/option&gt;
 
 &lt;option value="virginia-beach-va" data-col="104.2" data-housing="112.5" data-name="Virginia Beach"&gt;Virginia Beach, VA&lt;/option&gt;
 
 &lt;option value="washington-dc" data-col="152.1" data-housing="228.4" data-name="Washington DC"&gt;Washington DC, DC&lt;/option&gt;
 
 &lt;option value="wichita-ks" data-col="86.8" data-housing="74.5" data-name="Wichita"&gt;Wichita, KS&lt;/option&gt;
 
 &lt;option value="wilmington-nc" data-col="98.5" data-housing="95.2" data-name="Wilmington"&gt;Wilmington, NC&lt;/option&gt;
 
 &lt;option value="winnipeg-ca" data-col="88.6" data-housing="82.4" data-name="Winnipeg"&gt;Winnipeg, MB&lt;/option&gt;
 
 &lt;option value="winston-salem-nc" data-col="92.5" data-housing="82.5" data-name="Winston-Salem"&gt;Winston-Salem, NC&lt;/option&gt;
 
 &lt;option value="worcester-ma" data-col="118.5" data-housing="128.4" data-name="Worcester"&gt;Worcester, MA&lt;/option&gt;
 
 &lt;/select&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;button class="btn btn-primary btn-large" onclick="compareCOL()"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/&gt;&lt;/svg&gt;
 Compare Cities
 &lt;/button&gt;

 &lt;div class="calc-result" id="col-result" style="display:none;"&gt;
 &lt;div class="result-header"&gt;
 &lt;h4&gt;Comparison Results&lt;/h4&gt;
 &lt;span class="result-badge" id="col-winner-badge"&gt;&lt;/span&gt;
 &lt;/div&gt;

 &lt;div class="city-cards"&gt;
 &lt;div class="city-card" id="city-card-a"&gt;
 &lt;div class="city-card-name" id="col-a-name"&gt;City A&lt;/div&gt;
 &lt;div class="city-card-col" id="col-a-value"&gt;100&lt;/div&gt;
 &lt;div class="city-card-label"&gt;Cost of Living Index&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="city-card-vs"&gt;VS&lt;/div&gt;
 &lt;div class="city-card" id="city-card-b"&gt;
 &lt;div class="city-card-name" id="col-b-name"&gt;City A&lt;/div&gt;
 &lt;div class="city-card-col" id="col-b-value"&gt;100&lt;/div&gt;
 &lt;div class="city-card-label"&gt;Cost of Living Index&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="comparison-bars"&gt;
 &lt;div class="comp-bar-section"&gt;
 &lt;div class="comp-bar-section-title"&gt;Overall Cost of Living&lt;/div&gt;
 &lt;div class="comp-bar-row"&gt;
 &lt;span class="comp-bar-city" id="bar-label-a-col"&gt;City A&lt;/span&gt;
 &lt;div class="comp-bar-track"&gt;
 &lt;div class="comp-bar-fill" id="bar-a-col"&gt;&lt;/div&gt;
 &lt;div class="comp-bar-baseline" style="left:50%"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;span class="comp-bar-value" id="bar-val-a-col"&gt;100&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="comp-bar-row"&gt;
 &lt;span class="comp-bar-city" id="bar-label-b-col"&gt;City B&lt;/span&gt;
 &lt;div class="comp-bar-track"&gt;
 &lt;div class="comp-bar-fill" id="bar-b-col"&gt;&lt;/div&gt;
 &lt;div class="comp-bar-baseline" style="left:50%"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;span class="comp-bar-value" id="bar-val-b-col"&gt;100&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="comp-bar-section"&gt;
 &lt;div class="comp-bar-section-title"&gt;Housing Index&lt;/div&gt;
 &lt;div class="comp-bar-row"&gt;
 &lt;span class="comp-bar-city" id="bar-label-a-housing"&gt;City A&lt;/span&gt;
 &lt;div class="comp-bar-track"&gt;
 &lt;div class="comp-bar-fill" id="bar-a-housing"&gt;&lt;/div&gt;
 &lt;div class="comp-bar-baseline" style="left:50%"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;span class="comp-bar-value" id="bar-val-a-housing"&gt;100&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="comp-bar-row"&gt;
 &lt;span class="comp-bar-city" id="bar-label-b-housing"&gt;City B&lt;/span&gt;
 &lt;div class="comp-bar-track"&gt;
 &lt;div class="comp-bar-fill" id="bar-b-housing"&gt;&lt;/div&gt;
 &lt;div class="comp-bar-baseline" style="left:50%"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;span class="comp-bar-value" id="bar-val-b-housing"&gt;100&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="result-summary" id="col-summary"&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
 const colCalcI18n = {
 isCheaper: '%CHEAPER% is %PCT% cheaper',
 sameCost: 'Same cost',
 cheaperMsg: '\\u003cstrong\\u003e%CHEAPER%\\u003c\/strong\\u003e is \\u003cstrong\\u003e%PCT% cheaper\\u003c\/strong\\u003e than %EXPENSIVE%. If you move, your money goes further on housing, groceries, utilities, and everyday expenses.',
 sameMsg: 'Cost of living is roughly the same in both cities.',
 };
 Object.keys(colCalcI18n).forEach(function(k) {
 colCalcI18n[k] = colCalcI18n[k].replace(/\\u003c/g, '&lt;').replace(/\\u003e/g, '&gt;');
 });

function swapCities() {
 const a = document.getElementById('col-city-a');
 const b = document.getElementById('col-city-b');
 const temp = a.selectedIndex;
 a.selectedIndex = b.selectedIndex;
 b.selectedIndex = temp;
}

function getBarColor(value) {
 if (value &lt;= 100) return 'var(--color-success)';
 if (value &lt;= 120) return 'var(--color-accent)';
 return 'var(--color-danger)';
}

function compareCOL() {
 const optA = document.getElementById('col-city-a').selectedOptions[0];
 const optB = document.getElementById('col-city-b').selectedOptions[0];

 const nameA = optA.dataset.name;
 const nameB = optB.dataset.name;
 const colA = parseFloat(optA.dataset.col) || 100;
 const colB = parseFloat(optB.dataset.col) || 100;
 const housingA = parseFloat(optA.dataset.housing) || 100;
 const housingB = parseFloat(optB.dataset.housing) || 100;

 
 const maxScale = 200;

 document.getElementById('col-a-name').textContent = nameA;
 document.getElementById('col-b-name').textContent = nameB;
 document.getElementById('col-a-value').textContent = colA;
 document.getElementById('col-b-value').textContent = colB;

 
 document.getElementById('bar-label-a-col').textContent = nameA;
 document.getElementById('bar-label-b-col').textContent = nameB;
 document.getElementById('bar-label-a-housing').textContent = nameA;
 document.getElementById('bar-label-b-housing').textContent = nameB;

 
 document.getElementById('bar-val-a-col').textContent = colA;
 document.getElementById('bar-val-b-col').textContent = colB;
 document.getElementById('bar-val-a-housing').textContent = housingA;
 document.getElementById('bar-val-b-housing').textContent = housingB;

 
 const colAPct = Math.min(colA / maxScale * 100, 100);
 const colBPct = Math.min(colB / maxScale * 100, 100);
 const housingAPct = Math.min(housingA / maxScale * 100, 100);
 const housingBPct = Math.min(housingB / maxScale * 100, 100);

 const barACol = document.getElementById('bar-a-col');
 const barBCol = document.getElementById('bar-b-col');
 const barAHousing = document.getElementById('bar-a-housing');
 const barBHousing = document.getElementById('bar-b-housing');

 barACol.style.width = colAPct + '%';
 barACol.style.backgroundColor = getBarColor(colA);
 barBCol.style.width = colBPct + '%';
 barBCol.style.backgroundColor = getBarColor(colB);
 barAHousing.style.width = housingAPct + '%';
 barAHousing.style.backgroundColor = getBarColor(housingA);
 barBHousing.style.width = housingBPct + '%';
 barBHousing.style.backgroundColor = getBarColor(housingB);

 const colDiff = Math.round(((colB - colA) / colA) * 100);
 const cheaper = colA &lt; colB ? nameA : nameB;
 const moreExpensive = colA &lt; colB ? nameB : nameA;
 const savings = Math.abs(colDiff);

 const badge = document.getElementById('col-winner-badge');
 if (savings &gt; 0) {
 badge.textContent = colCalcI18n.isCheaper.replace('%CHEAPER%', cheaper).replace('%PCT%', savings + '%');
 badge.className = 'result-badge badge-success';
 } else {
 badge.textContent = colCalcI18n.sameCost;
 badge.className = 'result-badge badge-neutral';
 }

 if (savings &gt; 0) {
 document.getElementById('col-summary').innerHTML = '&lt;div class="summary-icon"&gt;💰&lt;/div&gt;&lt;p&gt;' + colCalcI18n.cheaperMsg.replace('%CHEAPER%', cheaper).replace('%PCT%', savings + '%').replace('%EXPENSIVE%', moreExpensive) + '&lt;/p&gt;</description></item><item><title>Home Ownership Calculator</title><link>https://urcity.com/en/tools/home-ownership-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://urcity.com/en/tools/home-ownership-calculator/</guid><description>&lt;h2 id="home-ownership-calculator"&gt;Home Ownership Calculator&lt;/h2&gt;
&lt;p&gt;Buying a home is more than just a mortgage payment. See the full picture with our True Cost of Home Ownership calculator.&lt;/p&gt;
&lt;div class="calculator-widget" id="home-calc"&gt;
 &lt;div class="calc-header"&gt;
 &lt;div class="calc-icon green"&gt;
 &lt;svg
 width="28"
 height="28"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="2"
 &gt;
 &lt;path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" /&gt;
 &lt;polyline points="9 22 9 12 15 12 15 22" /&gt;
 &lt;/svg&gt;
 &lt;/div&gt;
 &lt;div class="calc-title-group"&gt;
 &lt;h3&gt;True Cost of Home Ownership&lt;/h3&gt;
 &lt;p class="calc-subtitle"&gt;
 See what you&amp;#39;ll really pay over 30 years
 &lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 

 &lt;div class="calc-inputs-row three-col"&gt;
 &lt;div class="calc-field"&gt;
 &lt;label for="home-price"&gt;
 &lt;svg
 width="16"
 height="16"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="2"
 &gt;
 &lt;line x1="12" y1="1" x2="12" y2="23" /&gt;
 &lt;path
 d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"
 /&gt;
 &lt;/svg&gt;
 Home Price
 &lt;/label&gt;
 &lt;div class="input-prefix"&gt;
 &lt;span class="prefix"&gt;$&lt;/span&gt;
 &lt;input
 type="number"
 id="home-price"
 value="450000"
 min="0"
 step="10000"
 /&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="calc-field"&gt;
 &lt;label for="down-payment"&gt;
 &lt;svg
 width="16"
 height="16"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="2"
 &gt;
 &lt;polyline points="23 6 13.5 15.5 8.5 10.5 1 18" /&gt;
 &lt;polyline points="17 6 23 6 23 12" /&gt;
 &lt;/svg&gt;
 Down Payment
 &lt;/label&gt;
 &lt;div class="input-suffix"&gt;
 &lt;input
 type="number"
 id="down-payment"
 value="20"
 min="0"
 max="100"
 step="5"
 /&gt;
 &lt;span class="suffix"&gt;%&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="field-hint" id="down-payment-hint"&gt;
 $90,000 down
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="calc-field"&gt;
 &lt;label for="interest-rate"&gt;
 &lt;svg
 width="16"
 height="16"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="2"
 &gt;
 &lt;line x1="12" y1="1" x2="12" y2="23" /&gt;
 &lt;path
 d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"
 /&gt;
 &lt;/svg&gt;
 Interest Rate
 &lt;/label&gt;
 &lt;div class="input-suffix"&gt;
 &lt;input
 type="number"
 id="interest-rate"
 value="6.5"
 min="0"
 max="20"
 step="0.1"
 /&gt;
 &lt;span class="suffix"&gt;%&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="calc-inputs-row three-col"&gt;
 &lt;div class="calc-field"&gt;
 &lt;label for="tax-rate"&gt;
 &lt;svg
 width="16"
 height="16"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="2"
 &gt;
 &lt;path
 d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"
 /&gt;
 &lt;polyline points="14 2 14 8 20 8" /&gt;
 &lt;/svg&gt;
 Property Tax Rate
 &lt;/label&gt;
 &lt;div class="input-suffix"&gt;
 &lt;input
 type="number"
 id="tax-rate"
 value="1.8"
 min="0"
 max="5"
 step="0.1"
 /&gt;
 &lt;span class="suffix"&gt;%&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="calc-field"&gt;
 &lt;label for="hoa"&gt;
 &lt;svg
 width="16"
 height="16"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="2"
 &gt;
 &lt;rect x="2" y="7" width="20" height="14" rx="2" /&gt;
 &lt;path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" /&gt;
 &lt;/svg&gt;
 HOA / Month
 &lt;/label&gt;
 &lt;div class="input-prefix"&gt;
 &lt;span class="prefix"&gt;$&lt;/span&gt;
 &lt;input type="number" id="hoa" value="0" min="0" step="50" /&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 
 &lt;input type="hidden" id="util-elec" value="135" /&gt;
 &lt;input type="hidden" id="util-water" value="75" /&gt;
 &lt;input type="hidden" id="util-net" value="55" /&gt;
 &lt;input type="hidden" id="util-trash" value="30" /&gt;
 &lt;input type="hidden" id="util-heating" value="122" /&gt;
 &lt;input type="hidden" id="util-currency" value="USD" /&gt;
 &lt;input type="hidden" id="calc-currency" value="USD" /&gt;

 &lt;button class="btn btn-primary btn-large" onclick="calculateHome()"&gt;
 &lt;svg
 width="18"
 height="18"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="2"
 &gt;
 &lt;polyline points="22 12 18 12 15 21 9 3 6 12 2 12" /&gt;
 &lt;/svg&gt;
 Calculate Total Cost
 &lt;/button&gt;

 &lt;div class="calc-result" id="home-result" style="display: none"&gt;
 
 &lt;div class="calc-tabs"&gt;
 &lt;button
 class="calc-tab active"
 onclick="switchTab('tab-home')"
 id="tab-btn-home"
 &gt;
 Home Costs
 &lt;/button&gt;
 &lt;button
 class="calc-tab"
 onclick="switchTab('tab-monthly')"
 id="tab-btn-monthly"
 &gt;
 Monthly &amp;#43; Utilities
 &lt;/button&gt;
 &lt;/div&gt;

 
 &lt;div class="calc-tab-panel active" id="tab-home"&gt;
 &lt;div class="result-header"&gt;
 &lt;h4&gt;Cost Breakdown&lt;/h4&gt;
 &lt;span class="result-badge badge-neutral"
 &gt;30-Year Estimate&lt;/span
 &gt;
 &lt;/div&gt;

 &lt;div class="cost-summary-cards"&gt;
 &lt;div class="cost-summary-card"&gt;
 &lt;div class="cost-summary-label"&gt;
 Monthly Payment
 &lt;/div&gt;
 &lt;div class="cost-summary-amount" id="total-monthly"&gt;$0&lt;/div&gt;
 &lt;div class="cost-summary-sub"&gt;
 Principal &amp;#43; interest &amp;#43; taxes &amp;#43; insurance &amp;#43; HOA
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="cost-summary-card highlight"&gt;
 &lt;div class="cost-summary-label"&gt;
 Total 30-Year Cost
 &lt;/div&gt;
 &lt;div class="cost-summary-amount" id="total-cost"&gt;$0&lt;/div&gt;
 &lt;div class="cost-summary-sub"&gt;
 Including down payment and all fees
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="cost-breakdown"&gt;
 &lt;h5&gt;Where Your Money Goes&lt;/h5&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #2563eb"
 &gt;&lt;/span&gt;
 Mortgage (Principal &amp;#43; Interest)
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mortgage"
 style="background: #2563eb"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mortgage"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #f59e0b"
 &gt;&lt;/span&gt;
 Property Taxes
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-tax"
 style="background: #f59e0b"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-tax"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #10b981"
 &gt;&lt;/span&gt;
 Home Insurance
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-insurance"
 style="background: #10b981"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-insurance"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #8b5cf6"
 &gt;&lt;/span&gt;
 HOA Fees
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-hoa"
 style="background: #8b5cf6"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-hoa"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #ef4444"
 &gt;&lt;/span&gt;
 Down Payment
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-down"
 style="background: #ef4444"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-down"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="result-summary" id="home-insight"&gt;&lt;/div&gt;
 &lt;/div&gt;

 
 &lt;div class="calc-tab-panel" id="tab-monthly"&gt;
 &lt;div class="result-header"&gt;
 &lt;h4&gt;Monthly Cost Breakdown&lt;/h4&gt;
 &lt;span class="result-badge badge-neutral"
 &gt;Per Month&lt;/span
 &gt;
 &lt;/div&gt;

 &lt;div class="cost-summary-cards"&gt;
 &lt;div class="cost-summary-card"&gt;
 &lt;div class="cost-summary-label"&gt;
 Home Ownership
 &lt;/div&gt;
 &lt;div class="cost-summary-amount" id="monthly-home"&gt;$0&lt;/div&gt;
 &lt;div class="cost-summary-sub"&gt;
 Mortgage &amp;#43; taxes &amp;#43; insurance &amp;#43; HOA
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="cost-summary-card highlight"&gt;
 &lt;div class="cost-summary-label"&gt;
 Total Monthly
 &lt;/div&gt;
 &lt;div class="cost-summary-amount" id="monthly-total"&gt;$0&lt;/div&gt;
 &lt;div class="cost-summary-sub"&gt;
 Home ownership &amp;#43; utilities
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="cost-breakdown"&gt;
 &lt;h5&gt;Home Ownership&lt;/h5&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #2563eb"
 &gt;&lt;/span&gt;
 Mortgage (P&amp;#43;I)
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-mortgage"
 style="background: #2563eb"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-mortgage"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #f59e0b"
 &gt;&lt;/span&gt;
 Property Tax
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-tax"
 style="background: #f59e0b"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-tax"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #10b981"
 &gt;&lt;/span&gt;
 Home Insurance
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-insurance"
 style="background: #10b981"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-insurance"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #8b5cf6"
 &gt;&lt;/span&gt;
 HOA Fees
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-hoa"
 style="background: #8b5cf6"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-hoa"&gt;$0&lt;/div&gt;
 &lt;/div&gt;

 &lt;h5 style="margin-top: 1.5rem"&gt;
 Utilities
 &lt;/h5&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #f97316"
 &gt;&lt;/span&gt;
 Electricity
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-elec"
 style="background: #f97316"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-elec"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #06b6d4"
 &gt;&lt;/span&gt;
 Water
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-water"
 style="background: #06b6d4"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-water"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #84cc16"
 &gt;&lt;/span&gt;
 Internet
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-net"
 style="background: #84cc16"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-net"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #a855f7"
 &gt;&lt;/span&gt;
 Garbage / Trash
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-trash"
 style="background: #a855f7"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-trash"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-row"&gt;
 &lt;div class="breakdown-label"&gt;
 &lt;span
 class="breakdown-dot"
 style="background: #ef4444"
 &gt;&lt;/span&gt;
 Heating (Gas/Oil)
 &lt;/div&gt;
 &lt;div class="breakdown-bar-track"&gt;
 &lt;div
 class="breakdown-bar"
 id="bar-mo-heating"
 style="background: #ef4444"
 &gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="breakdown-value" id="val-mo-heating"&gt;$0&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="result-summary" id="monthly-insight"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
 const homeCalcI18n = {
 downSuffix: 'down',
 included: 'Included',
 insight30yr: 'A \u003cstrong\u003e%PRICE%\u003c\/strong\u003e home actually costs \u003cstrong\u003e%TOTAL%\u003c\/strong\u003e over 30 years. That is \u003cstrong\u003e%PCT%\u003c\/strong\u003e more than the sticker price once you factor in interest, taxes, insurance, and fees.',
 insightMonthly: 'Utilities add \u003cstrong\u003e%UTILS%\/month\u003c\/strong\u003e on top of home ownership costs. They make up \u003cstrong\u003e%PCT%\u003c\/strong\u003e of your total monthly housing spending.',
 };
 const homePriceInput = document.getElementById("home-price");
 const downPaymentInput = document.getElementById("down-payment");
 function updateDownHint() {
 const price = parseFloat(homePriceInput.value) || 0;
 const pct = parseFloat(downPaymentInput.value) || 0;
 const amount = Math.round(price * (pct / 100));
 const settings = window.URCitySettings;
 const sym = settings
 ? settings.getCurrencySymbol(settings.getState().currency)
 : "$";
 document.getElementById("down-payment-hint").textContent =
 sym + amount.toLocaleString() + " " + homeCalcI18n.downSuffix;
 }
 homePriceInput.addEventListener("input", updateDownHint);
 downPaymentInput.addEventListener("input", updateDownHint);
 updateDownHint();

 document.addEventListener("urcity-settings-change", function () {
 const settings = window.URCitySettings;
 if (!settings || !settings.getState) return;
 const sym = settings.getCurrencySymbol(settings.getState().currency);
 document
 .querySelectorAll("#home-calc .input-prefix .prefix")
 .forEach(function (el) {
 el.textContent = sym;
 });
 });

 function switchTab(tabId) {
 
 document
 .querySelectorAll(".calc-tab")
 .forEach((btn) =&gt; btn.classList.remove("active"));
 document
 .getElementById("tab-btn-" + tabId.replace("tab-", ""))
 .classList.add("active");
 
 document
 .querySelectorAll(".calc-tab-panel")
 .forEach((panel) =&gt; panel.classList.remove("active"));
 document.getElementById(tabId).classList.add("active");
 }

 function calculateHome() {
 const price = parseFloat(document.getElementById("home-price").value);
 const downPercent = parseFloat(
 document.getElementById("down-payment").value,
 );
 const rate = parseFloat(document.getElementById("interest-rate").value);
 const taxRate = parseFloat(document.getElementById("tax-rate").value);
 const hoa = parseFloat(document.getElementById("hoa").value);

 const settings = window.URCitySettings;
 const sym = settings
 ? settings.getCurrencySymbol(settings.getState().currency)
 : "$";

 
 const utilElec =
 parseFloat(document.getElementById("util-elec").value) || 0;
 const utilWater =
 parseFloat(document.getElementById("util-water").value) || 0;
 const utilNet =
 parseFloat(document.getElementById("util-net").value) || 0;
 const utilTrash =
 parseFloat(document.getElementById("util-trash").value) || 0;
 const utilHeating =
 parseFloat(document.getElementById("util-heating").value) || 0;
 const totalUtilities =
 utilElec + utilWater + utilNet + utilTrash + utilHeating;

 
 const utilCurrency = document.getElementById("util-currency")
 ? document.getElementById("util-currency").value
 : "USD";
 const nativeSym = settings
 ? settings.getCurrencySymbol(utilCurrency)
 : "$";

 function fmtUtil(val) {
 const converted = settings
 ? settings.convertAmount(
 val,
 utilCurrency,
 settings.getState().currency,
 )
 : val;
 const convertedSym = settings
 ? settings.getCurrencySymbol(settings.getState().currency)
 : "$";
 const formatted = Math.round(converted).toLocaleString();
 
 return (
 convertedSym +
 formatted +
 ' &lt;span class="currency-native"&gt;(' +
 nativeSym +
 val.toLocaleString() +
 ")&lt;/span&gt;"
 );
 }

 const downPayment = price * (downPercent / 100);
 const loanAmount = price - downPayment;
 const monthlyRate = rate / 100 / 12;
 const numPayments = 30 * 12;

 const mortgage =
 (loanAmount *
 (monthlyRate * Math.pow(1 + monthlyRate, numPayments))) /
 (Math.pow(1 + monthlyRate, numPayments) - 1);
 const tax = (price * (taxRate / 100)) / 12;
 const insurance = (price * 0.0035) / 12;
 const totalMonthly = mortgage + tax + insurance + hoa;

 const totalMortgage = mortgage * numPayments;
 const totalTax = tax * numPayments;
 const totalInsurance = insurance * numPayments;
 const totalHoa = hoa * numPayments;
 const totalCost =
 totalMortgage + totalTax + totalInsurance + totalHoa + downPayment;

 
 document.getElementById("total-monthly").textContent =
 sym + Math.round(totalMonthly).toLocaleString();
 document.getElementById("total-cost").textContent =
 sym + Math.round(totalCost).toLocaleString();

 document.getElementById("val-mortgage").textContent =
 sym + Math.round(totalMortgage).toLocaleString();
 document.getElementById("val-tax").textContent =
 sym + Math.round(totalTax).toLocaleString();
 document.getElementById("val-insurance").textContent =
 sym + Math.round(totalInsurance).toLocaleString();
 document.getElementById("val-hoa").textContent =
 sym + Math.round(totalHoa).toLocaleString();
 document.getElementById("val-down").textContent =
 sym + Math.round(downPayment).toLocaleString();

 const maxVal = Math.max(
 totalMortgage,
 totalTax,
 totalInsurance,
 totalHoa,
 downPayment,
 );
 document.getElementById("bar-mortgage").style.width =
 (totalMortgage / maxVal) * 100 + "%";
 document.getElementById("bar-tax").style.width =
 (totalTax / maxVal) * 100 + "%";
 document.getElementById("bar-insurance").style.width =
 (totalInsurance / maxVal) * 100 + "%";
 document.getElementById("bar-hoa").style.width =
 (totalHoa / maxVal) * 100 + "%";
 document.getElementById("bar-down").style.width =
 (downPayment / maxVal) * 100 + "%";

 const extra = totalCost - price;
 const extraPct = Math.round((extra / price) * 100);

 document.getElementById("home-insight").innerHTML =
 '&lt;div class="summary-icon"&gt;🏠&lt;/div&gt;&lt;p&gt;' +
 homeCalcI18n.insight30yr
 .replace("%PRICE%", sym + price.toLocaleString())
 .replace(
 "%TOTAL%",
 sym + Math.round(totalCost).toLocaleString(),
 )
 .replace("%PCT%", extraPct + "%") +
 "&lt;/p&gt;</description></item><item><title>Salary Equivalence Calculator</title><link>https://urcity.com/en/tools/salary-equivalence-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://urcity.com/en/tools/salary-equivalence-calculator/</guid><description>&lt;h2 id="salary-equivalence-calculator"&gt;Salary Equivalence Calculator&lt;/h2&gt;
&lt;p&gt;Moving to a new city? Find out what salary you need to maintain your lifestyle.&lt;/p&gt;



&lt;div class="calculator-widget" id="salary-calc"&gt;
 &lt;div class="calc-header"&gt;
 &lt;div class="calc-icon amber"&gt;
 &lt;svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;
 &lt;rect x="2" y="7" width="20" height="14" rx="2"/&gt;
 &lt;path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/&gt;
 &lt;/svg&gt;
 &lt;/div&gt;
 &lt;div class="calc-title-group"&gt;
 &lt;h3&gt;Salary Equivalence Calculator&lt;/h3&gt;
 &lt;p class="calc-subtitle"&gt;Find out what you need to earn to maintain your lifestyle&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="calc-inputs-row three-col"&gt;
 &lt;div class="calc-field"&gt;
 &lt;label for="current-salary"&gt;
 &lt;svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;line x1="12" y1="1" x2="12" y2="23"/&gt;&lt;path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/&gt;&lt;/svg&gt;
 Current Salary
 &lt;/label&gt;
 &lt;div class="input-prefix"&gt;
 &lt;span class="prefix" id="salary-prefix"&gt;$&lt;/span&gt;
 &lt;input type="number" id="current-salary" value="100000" min="0" step="1000"&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="calc-field"&gt;
 &lt;label for="from-city"&gt;
 &lt;svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/&gt;&lt;circle cx="12" cy="10" r="3"/&gt;&lt;/svg&gt;
 From City
 &lt;/label&gt;
 &lt;select id="from-city"&gt;
 
 &lt;option value="akron-oh" data-col="88.5" data-name="Akron" &gt;Akron, OH&lt;/option&gt;
 
 &lt;option value="albuquerque-nm" data-col="94.5" data-name="Albuquerque" &gt;Albuquerque, NM&lt;/option&gt;
 
 &lt;option value="amsterdam-nl" data-col="82.1" data-name="Amsterdam" &gt;Amsterdam, NH&lt;/option&gt;
 
 &lt;option value="anaheim-ca" data-col="148.5" data-name="Anaheim" &gt;Anaheim, CA&lt;/option&gt;
 
 &lt;option value="anchorage-ak" data-col="118.5" data-name="Anchorage" &gt;Anchorage, AK&lt;/option&gt;
 
 &lt;option value="ann-arbor-mi" data-col="108.5" data-name="Ann Arbor" &gt;Ann Arbor, MI&lt;/option&gt;
 
 &lt;option value="asheville-nc" data-col="102.5" data-name="Asheville" &gt;Asheville, NC&lt;/option&gt;
 
 &lt;option value="atlanta-ga" data-col="104.7" data-name="Atlanta" &gt;Atlanta, GA&lt;/option&gt;
 
 &lt;option value="augusta-ga" data-col="90.5" data-name="Augusta" &gt;Augusta, GA&lt;/option&gt;
 
 &lt;option value="aurora-co" data-col="108.5" data-name="Aurora" &gt;Aurora, CO&lt;/option&gt;
 
 &lt;option value="austin-tx" data-col="119.3" data-name="Austin" &gt;Austin, TX&lt;/option&gt;
 
 &lt;option value="bakersfield-ca" data-col="102.5" data-name="Bakersfield" &gt;Bakersfield, CA&lt;/option&gt;
 
 &lt;option value="baltimore-md" data-col="108.4" data-name="Baltimore" &gt;Baltimore, MD&lt;/option&gt;
 
 &lt;option value="baton-rouge-la" data-col="94.5" data-name="Baton Rouge" &gt;Baton Rouge, LA&lt;/option&gt;
 
 &lt;option value="belfast-gb" data-col="84.1" data-name="Belfast" &gt;Belfast, NIR&lt;/option&gt;
 
 &lt;option value="bellingham-wa" data-col="115.2" data-name="Bellingham" &gt;Bellingham, WA&lt;/option&gt;
 
 &lt;option value="bend-or" data-col="118.5" data-name="Bend" &gt;Bend, OR&lt;/option&gt;
 
 &lt;option value="billings-mt" data-col="96.5" data-name="Billings" &gt;Billings, MT&lt;/option&gt;
 
 &lt;option value="birmingham-al" data-col="90.5" data-name="Birmingham" &gt;Birmingham, AL&lt;/option&gt;
 
 &lt;option value="birmingham-gb" data-col="92.3" data-name="Birmingham" &gt;Birmingham, ENG&lt;/option&gt;
 
 &lt;option value="boise-id" data-col="102.5" data-name="Boise" &gt;Boise, ID&lt;/option&gt;
 
 &lt;option value="boston-ma" data-col="153.2" data-name="Boston" &gt;Boston, MA&lt;/option&gt;
 
 &lt;option value="boulder-co" data-col="148.5" data-name="Boulder" &gt;Boulder, CO&lt;/option&gt;
 
 &lt;option value="bridgeport-ct" data-col="118.5" data-name="Bridgeport" &gt;Bridgeport, CT&lt;/option&gt;
 
 &lt;option value="bristol-gb" data-col="102.1" data-name="Bristol" &gt;Bristol, ENG&lt;/option&gt;
 
 &lt;option value="buffalo-ny" data-col="92.5" data-name="Buffalo" &gt;Buffalo, NY&lt;/option&gt;
 
 &lt;option value="burlington-vt" data-col="112.5" data-name="Burlington" &gt;Burlington, VT&lt;/option&gt;
 
 &lt;option value="calgary-ca" data-col="105.7" data-name="Calgary" &gt;Calgary, AB&lt;/option&gt;
 
 &lt;option value="cardiff-gb" data-col="89.2" data-name="Cardiff" &gt;Cardiff, WLS&lt;/option&gt;
 
 &lt;option value="chandler-az" data-col="108.5" data-name="Chandler" &gt;Chandler, AZ&lt;/option&gt;
 
 &lt;option value="charleston-sc" data-col="108.5" data-name="Charleston" &gt;Charleston, SC&lt;/option&gt;
 
 &lt;option value="charlotte-nc" data-col="98.2" data-name="Charlotte" &gt;Charlotte, NC&lt;/option&gt;
 
 &lt;option value="chattanooga-tn" data-col="92.5" data-name="Chattanooga" &gt;Chattanooga, TN&lt;/option&gt;
 
 &lt;option value="chesapeake-va" data-col="102.5" data-name="Chesapeake" &gt;Chesapeake, VA&lt;/option&gt;
 
 &lt;option value="cheyenne-wy" data-col="96.5" data-name="Cheyenne" &gt;Cheyenne, WY&lt;/option&gt;
 
 &lt;option value="chicago-il" data-col="110.8" data-name="Chicago" &gt;Chicago, IL&lt;/option&gt;
 
 &lt;option value="chula-vista-ca" data-col="138.5" data-name="Chula Vista" &gt;Chula Vista, CA&lt;/option&gt;
 
 &lt;option value="cincinnati-oh" data-col="92.8" data-name="Cincinnati" &gt;Cincinnati, OH&lt;/option&gt;
 
 &lt;option value="cleveland-oh" data-col="90.2" data-name="Cleveland" &gt;Cleveland, OH&lt;/option&gt;
 
 &lt;option value="colorado-springs-co" data-col="105.2" data-name="Colorado Springs" &gt;Colorado Springs, CO&lt;/option&gt;
 
 &lt;option value="columbia-sc" data-col="94.5" data-name="Columbia" &gt;Columbia, SC&lt;/option&gt;
 
 &lt;option value="columbus-oh" data-col="92.1" data-name="Columbus" &gt;Columbus, OH&lt;/option&gt;
 
 &lt;option value="corpus-christi-tx" data-col="92.5" data-name="Corpus Christi" &gt;Corpus Christi, TX&lt;/option&gt;
 
 &lt;option value="dallas-tx" data-col="101.3" data-name="Dallas" &gt;Dallas, TX&lt;/option&gt;
 
 &lt;option value="delft-nl" data-col="75" data-name="Delft" &gt;Delft, ZH&lt;/option&gt;
 
 &lt;option value="denver-co" data-col="128.5" data-name="Denver" &gt;Denver, CO&lt;/option&gt;
 
 &lt;option value="des-moines-ia" data-col="90.5" data-name="Des Moines" &gt;Des Moines, IA&lt;/option&gt;
 
 &lt;option value="detroit-mi" data-col="92.8" data-name="Detroit" &gt;Detroit, MI&lt;/option&gt;
 
 &lt;option value="durham-nc" data-col="98.5" data-name="Durham" &gt;Durham, NC&lt;/option&gt;
 
 &lt;option value="edinburgh-gb" data-col="105.8" data-name="Edinburgh" &gt;Edinburgh, SCT&lt;/option&gt;
 
 &lt;option value="edmonton-ca" data-col="97.4" data-name="Edmonton" &gt;Edmonton, AB&lt;/option&gt;
 
 &lt;option value="eindhoven-nl" data-col="74.5" data-name="Eindhoven" &gt;Eindhoven, NB&lt;/option&gt;
 
 &lt;option value="el-paso-tx" data-col="88.5" data-name="El Paso" &gt;El Paso, TX&lt;/option&gt;
 
 &lt;option value="elk-grove-ca" data-col="128.5" data-name="Elk Grove" &gt;Elk Grove, CA&lt;/option&gt;
 
 &lt;option value="eugene-or" data-col="104.2" data-name="Eugene" &gt;Eugene, OR&lt;/option&gt;
 
 &lt;option value="fargo-nd" data-col="90.5" data-name="Fargo" &gt;Fargo, ND&lt;/option&gt;
 
 &lt;option value="fayetteville-nc" data-col="90.5" data-name="Fayetteville" &gt;Fayetteville, NC&lt;/option&gt;
 
 &lt;option value="fort-wayne-in" data-col="86.5" data-name="Fort Wayne" &gt;Fort Wayne, IN&lt;/option&gt;
 
 &lt;option value="fort-worth-tx" data-col="98.5" data-name="Fort Worth" &gt;Fort Worth, TX&lt;/option&gt;
 
 &lt;option value="fremont-ca" data-col="178.5" data-name="Fremont" &gt;Fremont, CA&lt;/option&gt;
 
 &lt;option value="fresno-ca" data-col="102.5" data-name="Fresno" &gt;Fresno, CA&lt;/option&gt;
 
 &lt;option value="garland-tx" data-col="96.5" data-name="Garland" &gt;Garland, TX&lt;/option&gt;
 
 &lt;option value="glasgow-gb" data-col="88.4" data-name="Glasgow" &gt;Glasgow, SCT&lt;/option&gt;
 
 &lt;option value="glendale-az" data-col="98.5" data-name="Glendale" &gt;Glendale, AZ&lt;/option&gt;
 
 &lt;option value="grand-rapids-mi" data-col="94.5" data-name="Grand Rapids" &gt;Grand Rapids, MI&lt;/option&gt;
 
 &lt;option value="greensboro-nc" data-col="92.4" data-name="Greensboro" &gt;Greensboro, NC&lt;/option&gt;
 
 &lt;option value="greenville-sc" data-col="96.5" data-name="Greenville" &gt;Greenville, SC&lt;/option&gt;
 
 &lt;option value="groningen-nl" data-col="71" data-name="Groningen" &gt;Groningen, GR&lt;/option&gt;
 
 &lt;option value="halifax-ca" data-col="93.5" data-name="Halifax" &gt;Halifax, NS&lt;/option&gt;
 
 &lt;option value="henderson-nv" data-col="108.5" data-name="Henderson" &gt;Henderson, NV&lt;/option&gt;
 
 &lt;option value="hialeah-fl" data-col="108.5" data-name="Hialeah" &gt;Hialeah, FL&lt;/option&gt;
 
 &lt;option value="honolulu-hi" data-col="185.2" data-name="Honolulu" &gt;Honolulu, HI&lt;/option&gt;
 
 &lt;option value="houston-tx" data-col="95.8" data-name="Houston" &gt;Houston, TX&lt;/option&gt;
 
 &lt;option value="huntsville-al" data-col="94.5" data-name="Huntsville" &gt;Huntsville, AL&lt;/option&gt;
 
 &lt;option value="indianapolis-in" data-col="91.5" data-name="Indianapolis" &gt;Indianapolis, IN&lt;/option&gt;
 
 &lt;option value="irvine-ca" data-col="158.5" data-name="Irvine" &gt;Irvine, CA&lt;/option&gt;
 
 &lt;option value="irving-tx" data-col="100.5" data-name="Irving" &gt;Irving, TX&lt;/option&gt;
 
 &lt;option value="jackson-ms" data-col="88.5" data-name="Jackson" &gt;Jackson, MS&lt;/option&gt;
 
 &lt;option value="jacksonville-fl" data-col="96.8" data-name="Jacksonville" &gt;Jacksonville, FL&lt;/option&gt;
 
 &lt;option value="jersey-city-nj" data-col="142.5" data-name="Jersey City" &gt;Jersey City, NJ&lt;/option&gt;
 
 &lt;option value="kansas-city-ks" data-col="90.5" data-name="Kansas City" &gt;Kansas City, KS&lt;/option&gt;
 
 &lt;option value="kansas-city-mo" data-col="92.8" data-name="Kansas City" &gt;Kansas City, MO&lt;/option&gt;
 
 &lt;option value="key-west-fl" data-col="158.5" data-name="Key West" &gt;Key West, FL&lt;/option&gt;
 
 &lt;option value="knoxville-tn" data-col="92.5" data-name="Knoxville" &gt;Knoxville, TN&lt;/option&gt;
 
 &lt;option value="laredo-tx" data-col="88.5" data-name="Laredo" &gt;Laredo, TX&lt;/option&gt;
 
 &lt;option value="las-vegas-nv" data-col="102.4" data-name="Las Vegas" &gt;Las Vegas, NV&lt;/option&gt;
 
 &lt;option value="leeds-gb" data-col="91.7" data-name="Leeds" &gt;Leeds, ENG&lt;/option&gt;
 
 &lt;option value="leiden-nl" data-col="76" data-name="Leiden" &gt;Leiden, ZH&lt;/option&gt;
 
 &lt;option value="lexington-ky" data-col="94.2" data-name="Lexington" &gt;Lexington, KY&lt;/option&gt;
 
 &lt;option value="lincoln-ne" data-col="92.5" data-name="Lincoln" &gt;Lincoln, NE&lt;/option&gt;
 
 &lt;option value="little-rock-ar" data-col="88.5" data-name="Little Rock" &gt;Little Rock, AR&lt;/option&gt;
 
 &lt;option value="liverpool-gb" data-col="86.5" data-name="Liverpool" &gt;Liverpool, ENG&lt;/option&gt;
 
 &lt;option value="london-gb" data-col="135.2" data-name="London" &gt;London, ENG&lt;/option&gt;
 
 &lt;option value="long-beach-ca" data-col="142.5" data-name="Long Beach" &gt;Long Beach, CA&lt;/option&gt;
 
 &lt;option value="los-angeles-ca" data-col="173.3" data-name="Los Angeles" &gt;Los Angeles, CA&lt;/option&gt;
 
 &lt;option value="louisville-ky" data-col="91.2" data-name="Louisville" &gt;Louisville, KY&lt;/option&gt;
 
 &lt;option value="lubbock-tx" data-col="88.5" data-name="Lubbock" &gt;Lubbock, TX&lt;/option&gt;
 
 &lt;option value="maastricht-nl" data-col="74" data-name="Maastricht" &gt;Maastricht, LI&lt;/option&gt;
 
 &lt;option value="madison-wi" data-col="104.2" data-name="Madison" &gt;Madison, WI&lt;/option&gt;
 
 &lt;option value="manchester-gb" data-col="98.5" data-name="Manchester" &gt;Manchester, ENG&lt;/option&gt;
 
 &lt;option value="manchester-nh" data-col="108.5" data-name="Manchester" &gt;Manchester, NH&lt;/option&gt;
 
 &lt;option value="memphis-tn" data-col="88.5" data-name="Memphis" &gt;Memphis, TN&lt;/option&gt;
 
 &lt;option value="mesa-az" data-col="102.5" data-name="Mesa" &gt;Mesa, AZ&lt;/option&gt;
 
 &lt;option value="miami-fl" data-col="145.6" data-name="Miami" &gt;Miami, FL&lt;/option&gt;
 
 &lt;option value="milwaukee-wi" data-col="95.2" data-name="Milwaukee" &gt;Milwaukee, WI&lt;/option&gt;
 
 &lt;option value="minneapolis-mn" data-col="106.5" data-name="Minneapolis" &gt;Minneapolis, MN&lt;/option&gt;
 
 &lt;option value="mobile-al" data-col="90.5" data-name="Mobile" &gt;Mobile, AL&lt;/option&gt;
 
 &lt;option value="modesto-ca" data-col="108.5" data-name="Modesto" &gt;Modesto, CA&lt;/option&gt;
 
 &lt;option value="montgomery-al" data-col="90.5" data-name="Montgomery" &gt;Montgomery, AL&lt;/option&gt;
 
 &lt;option value="montreal-ca" data-col="98.3" data-name="Montreal" &gt;Montreal, QC&lt;/option&gt;
 
 &lt;option value="myrtle-beach-sc" data-col="96.5" data-name="Myrtle Beach" &gt;Myrtle Beach, SC&lt;/option&gt;
 
 &lt;option value="nashville-tn" data-col="100.5" data-name="Nashville" &gt;Nashville, TN&lt;/option&gt;
 
 &lt;option value="new-orleans-la" data-col="98.5" data-name="New Orleans" &gt;New Orleans, LA&lt;/option&gt;
 
 &lt;option value="nyc" data-col="187.2" data-name="New York City" selected&gt;New York City, NY&lt;/option&gt;
 
 &lt;option value="newark-nj" data-col="118.5" data-name="Newark" &gt;Newark, NJ&lt;/option&gt;
 
 &lt;option value="norfolk-va" data-col="98.5" data-name="Norfolk" &gt;Norfolk, VA&lt;/option&gt;
 
 &lt;option value="oakland-ca" data-col="158.4" data-name="Oakland" &gt;Oakland, CA&lt;/option&gt;
 
 &lt;option value="oklahoma-city-ok" data-col="88.2" data-name="Oklahoma City" &gt;Oklahoma City, OK&lt;/option&gt;
 
 &lt;option value="omaha-ne" data-col="91.5" data-name="Omaha" &gt;Omaha, NE&lt;/option&gt;
 
 &lt;option value="orlando-fl" data-col="98.5" data-name="Orlando" &gt;Orlando, FL&lt;/option&gt;
 
 &lt;option value="ottawa-ca" data-col="101.2" data-name="Ottawa" &gt;Ottawa, ON&lt;/option&gt;
 
 &lt;option value="oxnard-ca" data-col="138.5" data-name="Oxnard" &gt;Oxnard, CA&lt;/option&gt;
 
 &lt;option value="philadelphia-pa" data-col="108.5" data-name="Philadelphia" &gt;Philadelphia, PA&lt;/option&gt;
 
 &lt;option value="phoenix-az" data-col="108.2" data-name="Phoenix" &gt;Phoenix, AZ&lt;/option&gt;
 
 &lt;option value="pittsburgh-pa" data-col="94.5" data-name="Pittsburgh" &gt;Pittsburgh, PA&lt;/option&gt;
 
 &lt;option value="plano-tx" data-col="108.5" data-name="Plano" &gt;Plano, TX&lt;/option&gt;
 
 &lt;option value="portland-me" data-col="112.5" data-name="Portland" &gt;Portland, ME&lt;/option&gt;
 
 &lt;option value="portland-or" data-col="118.2" data-name="Portland" &gt;Portland, OR&lt;/option&gt;
 
 &lt;option value="providence-ri" data-col="118.5" data-name="Providence" &gt;Providence, RI&lt;/option&gt;
 
 &lt;option value="quebec-city-ca" data-col="87.2" data-name="Quebec City" &gt;Quebec City, QC&lt;/option&gt;
 
 &lt;option value="raleigh-nc" data-col="102.4" data-name="Raleigh" &gt;Raleigh, NC&lt;/option&gt;
 
 &lt;option value="reno-nv" data-col="108.5" data-name="Reno" &gt;Reno, NV&lt;/option&gt;
 
 &lt;option value="richmond-va" data-col="98.5" data-name="Richmond" &gt;Richmond, VA&lt;/option&gt;
 
 &lt;option value="riverside-ca" data-col="118.5" data-name="Riverside" &gt;Riverside, CA&lt;/option&gt;
 
 &lt;option value="rochester-ny" data-col="92.5" data-name="Rochester" &gt;Rochester, NY&lt;/option&gt;
 
 &lt;option value="rotterdam-nl" data-col="78.9" data-name="Rotterdam" &gt;Rotterdam, ZH&lt;/option&gt;
 
 &lt;option value="sacramento-ca" data-col="118.5" data-name="Sacramento" &gt;Sacramento, CA&lt;/option&gt;
 
 &lt;option value="saint-paul-mn" data-col="104.2" data-name="Saint Paul" &gt;Saint Paul, MN&lt;/option&gt;
 
 &lt;option value="salem-or" data-col="102.5" data-name="Salem" &gt;Salem, OR&lt;/option&gt;
 
 &lt;option value="salt-lake-city-ut" data-col="108.5" data-name="Salt Lake City" &gt;Salt Lake City, UT&lt;/option&gt;
 
 &lt;option value="san-antonio-tx" data-col="92.4" data-name="San Antonio" &gt;San Antonio, TX&lt;/option&gt;
 
 &lt;option value="san-bernardino-ca" data-col="108.5" data-name="San Bernardino" &gt;San Bernardino, CA&lt;/option&gt;
 
 &lt;option value="san-diego-ca" data-col="154.2" data-name="San Diego" &gt;San Diego, CA&lt;/option&gt;
 
 &lt;option value="san-francisco-ca" data-col="269.3" data-name="San Francisco" &gt;San Francisco, CA&lt;/option&gt;
 
 &lt;option value="san-jose-ca" data-col="214.5" data-name="San Jose" &gt;San Jose, CA&lt;/option&gt;
 
 &lt;option value="santa-ana-ca" data-col="142.8" data-name="Santa Ana" &gt;Santa Ana, CA&lt;/option&gt;
 
 &lt;option value="santa-fe-nm" data-col="112.5" data-name="Santa Fe" &gt;Santa Fe, NM&lt;/option&gt;
 
 &lt;option value="savannah-ga" data-col="96.5" data-name="Savannah" &gt;Savannah, GA&lt;/option&gt;
 
 &lt;option value="scottsdale-az" data-col="118.5" data-name="Scottsdale" &gt;Scottsdale, AZ&lt;/option&gt;
 
 &lt;option value="seattle-wa" data-col="172.1" data-name="Seattle" &gt;Seattle, WA&lt;/option&gt;
 
 &lt;option value="sioux-falls-sd" data-col="90.5" data-name="Sioux Falls" &gt;Sioux Falls, SD&lt;/option&gt;
 
 &lt;option value="spokane-wa" data-col="98.5" data-name="Spokane" &gt;Spokane, WA&lt;/option&gt;
 
 &lt;option value="st-petersburg-fl" data-col="102.5" data-name="St. Petersburg" &gt;St. Petersburg, FL&lt;/option&gt;
 
 &lt;option value="stockton-ca" data-col="112.5" data-name="Stockton" &gt;Stockton, CA&lt;/option&gt;
 
 &lt;option value="tacoma-wa" data-col="112.5" data-name="Tacoma" &gt;Tacoma, WA&lt;/option&gt;
 
 &lt;option value="tallahassee-fl" data-col="96.5" data-name="Tallahassee" &gt;Tallahassee, FL&lt;/option&gt;
 
 &lt;option value="tampa-fl" data-col="102.8" data-name="Tampa" &gt;Tampa, FL&lt;/option&gt;
 
 &lt;option value="the-hague-nl" data-col="75.6" data-name="The Hague" &gt;The Hague, ZH&lt;/option&gt;
 
 &lt;option value="tilburg-nl" data-col="73" data-name="Tilburg" &gt;Tilburg, NB&lt;/option&gt;
 
 &lt;option value="toledo-oh" data-col="88.5" data-name="Toledo" &gt;Toledo, OH&lt;/option&gt;
 
 &lt;option value="toronto-ca" data-col="128.4" data-name="Toronto" &gt;Toronto, ON&lt;/option&gt;
 
 &lt;option value="tucson-az" data-col="95.8" data-name="Tucson" &gt;Tucson, AZ&lt;/option&gt;
 
 &lt;option value="tulsa-ok" data-col="88.5" data-name="Tulsa" &gt;Tulsa, OK&lt;/option&gt;
 
 &lt;option value="utrecht-nl" data-col="76.5" data-name="Utrecht" &gt;Utrecht, UT&lt;/option&gt;
 
 &lt;option value="vancouver-ca" data-col="142.6" data-name="Vancouver" &gt;Vancouver, BC&lt;/option&gt;
 
 &lt;option value="victoria-ca" data-col="112.4" data-name="Victoria" &gt;Victoria, BC&lt;/option&gt;
 
 &lt;option value="virginia-beach-va" data-col="104.2" data-name="Virginia Beach" &gt;Virginia Beach, VA&lt;/option&gt;
 
 &lt;option value="washington-dc" data-col="152.1" data-name="Washington DC" &gt;Washington DC, DC&lt;/option&gt;
 
 &lt;option value="wichita-ks" data-col="86.8" data-name="Wichita" &gt;Wichita, KS&lt;/option&gt;
 
 &lt;option value="wilmington-nc" data-col="98.5" data-name="Wilmington" &gt;Wilmington, NC&lt;/option&gt;
 
 &lt;option value="winnipeg-ca" data-col="88.6" data-name="Winnipeg" &gt;Winnipeg, MB&lt;/option&gt;
 
 &lt;option value="winston-salem-nc" data-col="92.5" data-name="Winston-Salem" &gt;Winston-Salem, NC&lt;/option&gt;
 
 &lt;option value="worcester-ma" data-col="118.5" data-name="Worcester" &gt;Worcester, MA&lt;/option&gt;
 
 &lt;/select&gt;
 &lt;/div&gt;

 &lt;div class="calc-field"&gt;
 &lt;label for="to-city"&gt;
 &lt;svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/&gt;&lt;circle cx="12" cy="10" r="3"/&gt;&lt;/svg&gt;
 To City
 &lt;/label&gt;
 &lt;select id="to-city"&gt;
 
 &lt;option value="akron-oh" data-col="88.5" data-name="Akron" &gt;Akron, OH&lt;/option&gt;
 
 &lt;option value="albuquerque-nm" data-col="94.5" data-name="Albuquerque" &gt;Albuquerque, NM&lt;/option&gt;
 
 &lt;option value="amsterdam-nl" data-col="82.1" data-name="Amsterdam" &gt;Amsterdam, NH&lt;/option&gt;
 
 &lt;option value="anaheim-ca" data-col="148.5" data-name="Anaheim" &gt;Anaheim, CA&lt;/option&gt;
 
 &lt;option value="anchorage-ak" data-col="118.5" data-name="Anchorage" &gt;Anchorage, AK&lt;/option&gt;
 
 &lt;option value="ann-arbor-mi" data-col="108.5" data-name="Ann Arbor" &gt;Ann Arbor, MI&lt;/option&gt;
 
 &lt;option value="asheville-nc" data-col="102.5" data-name="Asheville" &gt;Asheville, NC&lt;/option&gt;
 
 &lt;option value="atlanta-ga" data-col="104.7" data-name="Atlanta" &gt;Atlanta, GA&lt;/option&gt;
 
 &lt;option value="augusta-ga" data-col="90.5" data-name="Augusta" &gt;Augusta, GA&lt;/option&gt;
 
 &lt;option value="aurora-co" data-col="108.5" data-name="Aurora" &gt;Aurora, CO&lt;/option&gt;
 
 &lt;option value="austin-tx" data-col="119.3" data-name="Austin" selected&gt;Austin, TX&lt;/option&gt;
 
 &lt;option value="bakersfield-ca" data-col="102.5" data-name="Bakersfield" &gt;Bakersfield, CA&lt;/option&gt;
 
 &lt;option value="baltimore-md" data-col="108.4" data-name="Baltimore" &gt;Baltimore, MD&lt;/option&gt;
 
 &lt;option value="baton-rouge-la" data-col="94.5" data-name="Baton Rouge" &gt;Baton Rouge, LA&lt;/option&gt;
 
 &lt;option value="belfast-gb" data-col="84.1" data-name="Belfast" &gt;Belfast, NIR&lt;/option&gt;
 
 &lt;option value="bellingham-wa" data-col="115.2" data-name="Bellingham" &gt;Bellingham, WA&lt;/option&gt;
 
 &lt;option value="bend-or" data-col="118.5" data-name="Bend" &gt;Bend, OR&lt;/option&gt;
 
 &lt;option value="billings-mt" data-col="96.5" data-name="Billings" &gt;Billings, MT&lt;/option&gt;
 
 &lt;option value="birmingham-al" data-col="90.5" data-name="Birmingham" &gt;Birmingham, AL&lt;/option&gt;
 
 &lt;option value="birmingham-gb" data-col="92.3" data-name="Birmingham" &gt;Birmingham, ENG&lt;/option&gt;
 
 &lt;option value="boise-id" data-col="102.5" data-name="Boise" &gt;Boise, ID&lt;/option&gt;
 
 &lt;option value="boston-ma" data-col="153.2" data-name="Boston" &gt;Boston, MA&lt;/option&gt;
 
 &lt;option value="boulder-co" data-col="148.5" data-name="Boulder" &gt;Boulder, CO&lt;/option&gt;
 
 &lt;option value="bridgeport-ct" data-col="118.5" data-name="Bridgeport" &gt;Bridgeport, CT&lt;/option&gt;
 
 &lt;option value="bristol-gb" data-col="102.1" data-name="Bristol" &gt;Bristol, ENG&lt;/option&gt;
 
 &lt;option value="buffalo-ny" data-col="92.5" data-name="Buffalo" &gt;Buffalo, NY&lt;/option&gt;
 
 &lt;option value="burlington-vt" data-col="112.5" data-name="Burlington" &gt;Burlington, VT&lt;/option&gt;
 
 &lt;option value="calgary-ca" data-col="105.7" data-name="Calgary" &gt;Calgary, AB&lt;/option&gt;
 
 &lt;option value="cardiff-gb" data-col="89.2" data-name="Cardiff" &gt;Cardiff, WLS&lt;/option&gt;
 
 &lt;option value="chandler-az" data-col="108.5" data-name="Chandler" &gt;Chandler, AZ&lt;/option&gt;
 
 &lt;option value="charleston-sc" data-col="108.5" data-name="Charleston" &gt;Charleston, SC&lt;/option&gt;
 
 &lt;option value="charlotte-nc" data-col="98.2" data-name="Charlotte" &gt;Charlotte, NC&lt;/option&gt;
 
 &lt;option value="chattanooga-tn" data-col="92.5" data-name="Chattanooga" &gt;Chattanooga, TN&lt;/option&gt;
 
 &lt;option value="chesapeake-va" data-col="102.5" data-name="Chesapeake" &gt;Chesapeake, VA&lt;/option&gt;
 
 &lt;option value="cheyenne-wy" data-col="96.5" data-name="Cheyenne" &gt;Cheyenne, WY&lt;/option&gt;
 
 &lt;option value="chicago-il" data-col="110.8" data-name="Chicago" &gt;Chicago, IL&lt;/option&gt;
 
 &lt;option value="chula-vista-ca" data-col="138.5" data-name="Chula Vista" &gt;Chula Vista, CA&lt;/option&gt;
 
 &lt;option value="cincinnati-oh" data-col="92.8" data-name="Cincinnati" &gt;Cincinnati, OH&lt;/option&gt;
 
 &lt;option value="cleveland-oh" data-col="90.2" data-name="Cleveland" &gt;Cleveland, OH&lt;/option&gt;
 
 &lt;option value="colorado-springs-co" data-col="105.2" data-name="Colorado Springs" &gt;Colorado Springs, CO&lt;/option&gt;
 
 &lt;option value="columbia-sc" data-col="94.5" data-name="Columbia" &gt;Columbia, SC&lt;/option&gt;
 
 &lt;option value="columbus-oh" data-col="92.1" data-name="Columbus" &gt;Columbus, OH&lt;/option&gt;
 
 &lt;option value="corpus-christi-tx" data-col="92.5" data-name="Corpus Christi" &gt;Corpus Christi, TX&lt;/option&gt;
 
 &lt;option value="dallas-tx" data-col="101.3" data-name="Dallas" &gt;Dallas, TX&lt;/option&gt;
 
 &lt;option value="delft-nl" data-col="75" data-name="Delft" &gt;Delft, ZH&lt;/option&gt;
 
 &lt;option value="denver-co" data-col="128.5" data-name="Denver" &gt;Denver, CO&lt;/option&gt;
 
 &lt;option value="des-moines-ia" data-col="90.5" data-name="Des Moines" &gt;Des Moines, IA&lt;/option&gt;
 
 &lt;option value="detroit-mi" data-col="92.8" data-name="Detroit" &gt;Detroit, MI&lt;/option&gt;
 
 &lt;option value="durham-nc" data-col="98.5" data-name="Durham" &gt;Durham, NC&lt;/option&gt;
 
 &lt;option value="edinburgh-gb" data-col="105.8" data-name="Edinburgh" &gt;Edinburgh, SCT&lt;/option&gt;
 
 &lt;option value="edmonton-ca" data-col="97.4" data-name="Edmonton" &gt;Edmonton, AB&lt;/option&gt;
 
 &lt;option value="eindhoven-nl" data-col="74.5" data-name="Eindhoven" &gt;Eindhoven, NB&lt;/option&gt;
 
 &lt;option value="el-paso-tx" data-col="88.5" data-name="El Paso" &gt;El Paso, TX&lt;/option&gt;
 
 &lt;option value="elk-grove-ca" data-col="128.5" data-name="Elk Grove" &gt;Elk Grove, CA&lt;/option&gt;
 
 &lt;option value="eugene-or" data-col="104.2" data-name="Eugene" &gt;Eugene, OR&lt;/option&gt;
 
 &lt;option value="fargo-nd" data-col="90.5" data-name="Fargo" &gt;Fargo, ND&lt;/option&gt;
 
 &lt;option value="fayetteville-nc" data-col="90.5" data-name="Fayetteville" &gt;Fayetteville, NC&lt;/option&gt;
 
 &lt;option value="fort-wayne-in" data-col="86.5" data-name="Fort Wayne" &gt;Fort Wayne, IN&lt;/option&gt;
 
 &lt;option value="fort-worth-tx" data-col="98.5" data-name="Fort Worth" &gt;Fort Worth, TX&lt;/option&gt;
 
 &lt;option value="fremont-ca" data-col="178.5" data-name="Fremont" &gt;Fremont, CA&lt;/option&gt;
 
 &lt;option value="fresno-ca" data-col="102.5" data-name="Fresno" &gt;Fresno, CA&lt;/option&gt;
 
 &lt;option value="garland-tx" data-col="96.5" data-name="Garland" &gt;Garland, TX&lt;/option&gt;
 
 &lt;option value="glasgow-gb" data-col="88.4" data-name="Glasgow" &gt;Glasgow, SCT&lt;/option&gt;
 
 &lt;option value="glendale-az" data-col="98.5" data-name="Glendale" &gt;Glendale, AZ&lt;/option&gt;
 
 &lt;option value="grand-rapids-mi" data-col="94.5" data-name="Grand Rapids" &gt;Grand Rapids, MI&lt;/option&gt;
 
 &lt;option value="greensboro-nc" data-col="92.4" data-name="Greensboro" &gt;Greensboro, NC&lt;/option&gt;
 
 &lt;option value="greenville-sc" data-col="96.5" data-name="Greenville" &gt;Greenville, SC&lt;/option&gt;
 
 &lt;option value="groningen-nl" data-col="71" data-name="Groningen" &gt;Groningen, GR&lt;/option&gt;
 
 &lt;option value="halifax-ca" data-col="93.5" data-name="Halifax" &gt;Halifax, NS&lt;/option&gt;
 
 &lt;option value="henderson-nv" data-col="108.5" data-name="Henderson" &gt;Henderson, NV&lt;/option&gt;
 
 &lt;option value="hialeah-fl" data-col="108.5" data-name="Hialeah" &gt;Hialeah, FL&lt;/option&gt;
 
 &lt;option value="honolulu-hi" data-col="185.2" data-name="Honolulu" &gt;Honolulu, HI&lt;/option&gt;
 
 &lt;option value="houston-tx" data-col="95.8" data-name="Houston" &gt;Houston, TX&lt;/option&gt;
 
 &lt;option value="huntsville-al" data-col="94.5" data-name="Huntsville" &gt;Huntsville, AL&lt;/option&gt;
 
 &lt;option value="indianapolis-in" data-col="91.5" data-name="Indianapolis" &gt;Indianapolis, IN&lt;/option&gt;
 
 &lt;option value="irvine-ca" data-col="158.5" data-name="Irvine" &gt;Irvine, CA&lt;/option&gt;
 
 &lt;option value="irving-tx" data-col="100.5" data-name="Irving" &gt;Irving, TX&lt;/option&gt;
 
 &lt;option value="jackson-ms" data-col="88.5" data-name="Jackson" &gt;Jackson, MS&lt;/option&gt;
 
 &lt;option value="jacksonville-fl" data-col="96.8" data-name="Jacksonville" &gt;Jacksonville, FL&lt;/option&gt;
 
 &lt;option value="jersey-city-nj" data-col="142.5" data-name="Jersey City" &gt;Jersey City, NJ&lt;/option&gt;
 
 &lt;option value="kansas-city-ks" data-col="90.5" data-name="Kansas City" &gt;Kansas City, KS&lt;/option&gt;
 
 &lt;option value="kansas-city-mo" data-col="92.8" data-name="Kansas City" &gt;Kansas City, MO&lt;/option&gt;
 
 &lt;option value="key-west-fl" data-col="158.5" data-name="Key West" &gt;Key West, FL&lt;/option&gt;
 
 &lt;option value="knoxville-tn" data-col="92.5" data-name="Knoxville" &gt;Knoxville, TN&lt;/option&gt;
 
 &lt;option value="laredo-tx" data-col="88.5" data-name="Laredo" &gt;Laredo, TX&lt;/option&gt;
 
 &lt;option value="las-vegas-nv" data-col="102.4" data-name="Las Vegas" &gt;Las Vegas, NV&lt;/option&gt;
 
 &lt;option value="leeds-gb" data-col="91.7" data-name="Leeds" &gt;Leeds, ENG&lt;/option&gt;
 
 &lt;option value="leiden-nl" data-col="76" data-name="Leiden" &gt;Leiden, ZH&lt;/option&gt;
 
 &lt;option value="lexington-ky" data-col="94.2" data-name="Lexington" &gt;Lexington, KY&lt;/option&gt;
 
 &lt;option value="lincoln-ne" data-col="92.5" data-name="Lincoln" &gt;Lincoln, NE&lt;/option&gt;
 
 &lt;option value="little-rock-ar" data-col="88.5" data-name="Little Rock" &gt;Little Rock, AR&lt;/option&gt;
 
 &lt;option value="liverpool-gb" data-col="86.5" data-name="Liverpool" &gt;Liverpool, ENG&lt;/option&gt;
 
 &lt;option value="london-gb" data-col="135.2" data-name="London" &gt;London, ENG&lt;/option&gt;
 
 &lt;option value="long-beach-ca" data-col="142.5" data-name="Long Beach" &gt;Long Beach, CA&lt;/option&gt;
 
 &lt;option value="los-angeles-ca" data-col="173.3" data-name="Los Angeles" &gt;Los Angeles, CA&lt;/option&gt;
 
 &lt;option value="louisville-ky" data-col="91.2" data-name="Louisville" &gt;Louisville, KY&lt;/option&gt;
 
 &lt;option value="lubbock-tx" data-col="88.5" data-name="Lubbock" &gt;Lubbock, TX&lt;/option&gt;
 
 &lt;option value="maastricht-nl" data-col="74" data-name="Maastricht" &gt;Maastricht, LI&lt;/option&gt;
 
 &lt;option value="madison-wi" data-col="104.2" data-name="Madison" &gt;Madison, WI&lt;/option&gt;
 
 &lt;option value="manchester-gb" data-col="98.5" data-name="Manchester" &gt;Manchester, ENG&lt;/option&gt;
 
 &lt;option value="manchester-nh" data-col="108.5" data-name="Manchester" &gt;Manchester, NH&lt;/option&gt;
 
 &lt;option value="memphis-tn" data-col="88.5" data-name="Memphis" &gt;Memphis, TN&lt;/option&gt;
 
 &lt;option value="mesa-az" data-col="102.5" data-name="Mesa" &gt;Mesa, AZ&lt;/option&gt;
 
 &lt;option value="miami-fl" data-col="145.6" data-name="Miami" &gt;Miami, FL&lt;/option&gt;
 
 &lt;option value="milwaukee-wi" data-col="95.2" data-name="Milwaukee" &gt;Milwaukee, WI&lt;/option&gt;
 
 &lt;option value="minneapolis-mn" data-col="106.5" data-name="Minneapolis" &gt;Minneapolis, MN&lt;/option&gt;
 
 &lt;option value="mobile-al" data-col="90.5" data-name="Mobile" &gt;Mobile, AL&lt;/option&gt;
 
 &lt;option value="modesto-ca" data-col="108.5" data-name="Modesto" &gt;Modesto, CA&lt;/option&gt;
 
 &lt;option value="montgomery-al" data-col="90.5" data-name="Montgomery" &gt;Montgomery, AL&lt;/option&gt;
 
 &lt;option value="montreal-ca" data-col="98.3" data-name="Montreal" &gt;Montreal, QC&lt;/option&gt;
 
 &lt;option value="myrtle-beach-sc" data-col="96.5" data-name="Myrtle Beach" &gt;Myrtle Beach, SC&lt;/option&gt;
 
 &lt;option value="nashville-tn" data-col="100.5" data-name="Nashville" &gt;Nashville, TN&lt;/option&gt;
 
 &lt;option value="new-orleans-la" data-col="98.5" data-name="New Orleans" &gt;New Orleans, LA&lt;/option&gt;
 
 &lt;option value="nyc" data-col="187.2" data-name="New York City" &gt;New York City, NY&lt;/option&gt;
 
 &lt;option value="newark-nj" data-col="118.5" data-name="Newark" &gt;Newark, NJ&lt;/option&gt;
 
 &lt;option value="norfolk-va" data-col="98.5" data-name="Norfolk" &gt;Norfolk, VA&lt;/option&gt;
 
 &lt;option value="oakland-ca" data-col="158.4" data-name="Oakland" &gt;Oakland, CA&lt;/option&gt;
 
 &lt;option value="oklahoma-city-ok" data-col="88.2" data-name="Oklahoma City" &gt;Oklahoma City, OK&lt;/option&gt;
 
 &lt;option value="omaha-ne" data-col="91.5" data-name="Omaha" &gt;Omaha, NE&lt;/option&gt;
 
 &lt;option value="orlando-fl" data-col="98.5" data-name="Orlando" &gt;Orlando, FL&lt;/option&gt;
 
 &lt;option value="ottawa-ca" data-col="101.2" data-name="Ottawa" &gt;Ottawa, ON&lt;/option&gt;
 
 &lt;option value="oxnard-ca" data-col="138.5" data-name="Oxnard" &gt;Oxnard, CA&lt;/option&gt;
 
 &lt;option value="philadelphia-pa" data-col="108.5" data-name="Philadelphia" &gt;Philadelphia, PA&lt;/option&gt;
 
 &lt;option value="phoenix-az" data-col="108.2" data-name="Phoenix" &gt;Phoenix, AZ&lt;/option&gt;
 
 &lt;option value="pittsburgh-pa" data-col="94.5" data-name="Pittsburgh" &gt;Pittsburgh, PA&lt;/option&gt;
 
 &lt;option value="plano-tx" data-col="108.5" data-name="Plano" &gt;Plano, TX&lt;/option&gt;
 
 &lt;option value="portland-me" data-col="112.5" data-name="Portland" &gt;Portland, ME&lt;/option&gt;
 
 &lt;option value="portland-or" data-col="118.2" data-name="Portland" &gt;Portland, OR&lt;/option&gt;
 
 &lt;option value="providence-ri" data-col="118.5" data-name="Providence" &gt;Providence, RI&lt;/option&gt;
 
 &lt;option value="quebec-city-ca" data-col="87.2" data-name="Quebec City" &gt;Quebec City, QC&lt;/option&gt;
 
 &lt;option value="raleigh-nc" data-col="102.4" data-name="Raleigh" &gt;Raleigh, NC&lt;/option&gt;
 
 &lt;option value="reno-nv" data-col="108.5" data-name="Reno" &gt;Reno, NV&lt;/option&gt;
 
 &lt;option value="richmond-va" data-col="98.5" data-name="Richmond" &gt;Richmond, VA&lt;/option&gt;
 
 &lt;option value="riverside-ca" data-col="118.5" data-name="Riverside" &gt;Riverside, CA&lt;/option&gt;
 
 &lt;option value="rochester-ny" data-col="92.5" data-name="Rochester" &gt;Rochester, NY&lt;/option&gt;
 
 &lt;option value="rotterdam-nl" data-col="78.9" data-name="Rotterdam" &gt;Rotterdam, ZH&lt;/option&gt;
 
 &lt;option value="sacramento-ca" data-col="118.5" data-name="Sacramento" &gt;Sacramento, CA&lt;/option&gt;
 
 &lt;option value="saint-paul-mn" data-col="104.2" data-name="Saint Paul" &gt;Saint Paul, MN&lt;/option&gt;
 
 &lt;option value="salem-or" data-col="102.5" data-name="Salem" &gt;Salem, OR&lt;/option&gt;
 
 &lt;option value="salt-lake-city-ut" data-col="108.5" data-name="Salt Lake City" &gt;Salt Lake City, UT&lt;/option&gt;
 
 &lt;option value="san-antonio-tx" data-col="92.4" data-name="San Antonio" &gt;San Antonio, TX&lt;/option&gt;
 
 &lt;option value="san-bernardino-ca" data-col="108.5" data-name="San Bernardino" &gt;San Bernardino, CA&lt;/option&gt;
 
 &lt;option value="san-diego-ca" data-col="154.2" data-name="San Diego" &gt;San Diego, CA&lt;/option&gt;
 
 &lt;option value="san-francisco-ca" data-col="269.3" data-name="San Francisco" &gt;San Francisco, CA&lt;/option&gt;
 
 &lt;option value="san-jose-ca" data-col="214.5" data-name="San Jose" &gt;San Jose, CA&lt;/option&gt;
 
 &lt;option value="santa-ana-ca" data-col="142.8" data-name="Santa Ana" &gt;Santa Ana, CA&lt;/option&gt;
 
 &lt;option value="santa-fe-nm" data-col="112.5" data-name="Santa Fe" &gt;Santa Fe, NM&lt;/option&gt;
 
 &lt;option value="savannah-ga" data-col="96.5" data-name="Savannah" &gt;Savannah, GA&lt;/option&gt;
 
 &lt;option value="scottsdale-az" data-col="118.5" data-name="Scottsdale" &gt;Scottsdale, AZ&lt;/option&gt;
 
 &lt;option value="seattle-wa" data-col="172.1" data-name="Seattle" &gt;Seattle, WA&lt;/option&gt;
 
 &lt;option value="sioux-falls-sd" data-col="90.5" data-name="Sioux Falls" &gt;Sioux Falls, SD&lt;/option&gt;
 
 &lt;option value="spokane-wa" data-col="98.5" data-name="Spokane" &gt;Spokane, WA&lt;/option&gt;
 
 &lt;option value="st-petersburg-fl" data-col="102.5" data-name="St. Petersburg" &gt;St. Petersburg, FL&lt;/option&gt;
 
 &lt;option value="stockton-ca" data-col="112.5" data-name="Stockton" &gt;Stockton, CA&lt;/option&gt;
 
 &lt;option value="tacoma-wa" data-col="112.5" data-name="Tacoma" &gt;Tacoma, WA&lt;/option&gt;
 
 &lt;option value="tallahassee-fl" data-col="96.5" data-name="Tallahassee" &gt;Tallahassee, FL&lt;/option&gt;
 
 &lt;option value="tampa-fl" data-col="102.8" data-name="Tampa" &gt;Tampa, FL&lt;/option&gt;
 
 &lt;option value="the-hague-nl" data-col="75.6" data-name="The Hague" &gt;The Hague, ZH&lt;/option&gt;
 
 &lt;option value="tilburg-nl" data-col="73" data-name="Tilburg" &gt;Tilburg, NB&lt;/option&gt;
 
 &lt;option value="toledo-oh" data-col="88.5" data-name="Toledo" &gt;Toledo, OH&lt;/option&gt;
 
 &lt;option value="toronto-ca" data-col="128.4" data-name="Toronto" &gt;Toronto, ON&lt;/option&gt;
 
 &lt;option value="tucson-az" data-col="95.8" data-name="Tucson" &gt;Tucson, AZ&lt;/option&gt;
 
 &lt;option value="tulsa-ok" data-col="88.5" data-name="Tulsa" &gt;Tulsa, OK&lt;/option&gt;
 
 &lt;option value="utrecht-nl" data-col="76.5" data-name="Utrecht" &gt;Utrecht, UT&lt;/option&gt;
 
 &lt;option value="vancouver-ca" data-col="142.6" data-name="Vancouver" &gt;Vancouver, BC&lt;/option&gt;
 
 &lt;option value="victoria-ca" data-col="112.4" data-name="Victoria" &gt;Victoria, BC&lt;/option&gt;
 
 &lt;option value="virginia-beach-va" data-col="104.2" data-name="Virginia Beach" &gt;Virginia Beach, VA&lt;/option&gt;
 
 &lt;option value="washington-dc" data-col="152.1" data-name="Washington DC" &gt;Washington DC, DC&lt;/option&gt;
 
 &lt;option value="wichita-ks" data-col="86.8" data-name="Wichita" &gt;Wichita, KS&lt;/option&gt;
 
 &lt;option value="wilmington-nc" data-col="98.5" data-name="Wilmington" &gt;Wilmington, NC&lt;/option&gt;
 
 &lt;option value="winnipeg-ca" data-col="88.6" data-name="Winnipeg" &gt;Winnipeg, MB&lt;/option&gt;
 
 &lt;option value="winston-salem-nc" data-col="92.5" data-name="Winston-Salem" &gt;Winston-Salem, NC&lt;/option&gt;
 
 &lt;option value="worcester-ma" data-col="118.5" data-name="Worcester" &gt;Worcester, MA&lt;/option&gt;
 
 &lt;/select&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;button class="btn btn-primary btn-large" onclick="calculateSalary()"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/&gt;&lt;/svg&gt;
 Calculate Equivalent Salary
 &lt;/button&gt;

 &lt;div class="calc-result" id="salary-result" style="display:none;"&gt;
 &lt;div class="result-header"&gt;
 &lt;h4&gt;Equivalent Salary&lt;/h4&gt;
 &lt;span class="result-badge badge-neutral" id="salary-badge"&gt;Result&lt;/span&gt;
 &lt;/div&gt;

 &lt;div class="salary-cards"&gt;
 &lt;div class="salary-card from"&gt;
 &lt;div class="salary-card-label"&gt;Current&lt;/div&gt;
 &lt;div class="salary-card-city" id="from-city-display"&gt;City A&lt;/div&gt;
 &lt;div class="salary-card-amount" id="from-salary-display"&gt;$100,000&lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="salary-arrow"&gt;
 &lt;svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;
 &lt;line x1="5" y1="12" x2="19" y2="12"/&gt;
 &lt;polyline points="12 5 19 12 12 19"/&gt;
 &lt;/svg&gt;
 &lt;div class="salary-arrow-label" id="salary-change-pct"&gt;0%&lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="salary-card to"&gt;
 &lt;div class="salary-card-label"&gt;You Need&lt;/div&gt;
 &lt;div class="salary-card-city" id="to-city-display"&gt;City B&lt;/div&gt;
 &lt;div class="salary-card-amount" id="needed-salary"&gt;$100,000&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;div class="result-summary" id="salary-difference"&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
 const salaryCalcI18n = {
 needMore: 'Need more',
 saveMoney: 'Save money',
 same: 'Same',
 saveMsg: 'You would save \\u003cstrong\\u003e%AMOUNT%\/year\\u003c\/strong\\u003e by moving to %CITY%. Your current salary goes further there.',
 needMsg: 'You would need \\u003cstrong\\u003e%AMOUNT%\/year more\\u003c\/strong\\u003e in %CITY% to maintain your current lifestyle.',
 sameMsg: 'Cost of living is roughly the same. Your salary would have similar purchasing power.',
 };
 
 Object.keys(salaryCalcI18n).forEach(function(k) {
 salaryCalcI18n[k] = salaryCalcI18n[k].replace(/\\u003c/g, '&lt;').replace(/\\u003e/g, '&gt;');
 });

function calculateSalary() {
 const salary = parseFloat(document.getElementById('current-salary').value);
 const optFrom = document.getElementById('from-city').selectedOptions[0];
 const optTo = document.getElementById('to-city').selectedOptions[0];

 const colFrom = parseFloat(optFrom.dataset.col) || 100;
 const colTo = parseFloat(optTo.dataset.col) || 100;
 const nameFrom = optFrom.dataset.name;
 const nameTo = optTo.dataset.name;

 const neededSalary = Math.round(salary * (colTo / colFrom));
 const diff = salary - neededSalary;
 const pct = Math.round(((neededSalary - salary) / salary) * 100);

 const settings = window.URCitySettings;
 const currencySymbol = settings ? settings.getCurrencySymbol(settings.getState().currency) : '$';

 document.getElementById('from-city-display').textContent = nameFrom;
 document.getElementById('to-city-display').textContent = nameTo;
 document.getElementById('from-salary-display').textContent = currencySymbol + salary.toLocaleString();
 document.getElementById('needed-salary').textContent = currencySymbol + neededSalary.toLocaleString();

 
 const prefixEl = document.getElementById('salary-prefix');
 if (prefixEl) prefixEl.textContent = currencySymbol;

 const arrowLabel = document.getElementById('salary-change-pct');
 const badge = document.getElementById('salary-badge');

 if (pct &gt; 0) {
 arrowLabel.textContent = '+' + pct + '%';
 arrowLabel.className = 'salary-arrow-label negative';
 badge.textContent = salaryCalcI18n.needMore;
 badge.className = 'result-badge badge-warning';
 } else if (pct &lt; 0) {
 arrowLabel.textContent = pct + '%';
 arrowLabel.className = 'salary-arrow-label positive';
 badge.textContent = salaryCalcI18n.saveMoney;
 badge.className = 'result-badge badge-success';
 } else {
 arrowLabel.textContent = '0%';
 arrowLabel.className = 'salary-arrow-label';
 badge.textContent = salaryCalcI18n.same;
 badge.className = 'result-badge badge-neutral';
 }

 const diffEl = document.getElementById('salary-difference');
 const sym = currencySymbol;
 if (diff &gt; 0) {
 diffEl.innerHTML = '&lt;div class="summary-icon"&gt;🎉&lt;/div&gt;&lt;p&gt;' + salaryCalcI18n.saveMsg.replace('%AMOUNT%', sym + diff.toLocaleString()).replace('%CITY%', nameTo) + '&lt;/p&gt;</description></item></channel></rss>