<?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/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/tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Cost of Living Calculator</title><link>https://urcity.com/tools/cost-of-living-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://urcity.com/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="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="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="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="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="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="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="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="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="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="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="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="madison-wi" data-col="104.2" data-housing="112.5" data-name="Madison"&gt;Madison, WI&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="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="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="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="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="toledo-oh" data-col="88.5" data-housing="68.4" data-name="Toledo"&gt;Toledo, OH&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="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="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="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="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="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="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="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="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="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="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="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="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="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="madison-wi" data-col="104.2" data-housing="112.5" data-name="Madison"&gt;Madison, WI&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="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="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="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="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="toledo-oh" data-col="88.5" data-housing="68.4" data-name="Toledo"&gt;Toledo, OH&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="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="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 B&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-row"&gt;
 &lt;span class="comp-bar-label"&gt;Overall COL&lt;/span&gt;
 &lt;div class="comp-bar-track"&gt;
 &lt;div class="comp-bar-fill bar-a" id="bar-a-col"&gt;&lt;/div&gt;
 &lt;div class="comp-bar-fill bar-b" id="bar-b-col"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;span class="comp-bar-diff" id="diff-col"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="comp-bar-row"&gt;
 &lt;span class="comp-bar-label"&gt;Housing&lt;/span&gt;
 &lt;div class="comp-bar-track"&gt;
 &lt;div class="comp-bar-fill bar-a" id="bar-a-housing"&gt;&lt;/div&gt;
 &lt;div class="comp-bar-fill bar-b" id="bar-b-housing"&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;span class="comp-bar-diff" id="diff-housing"&gt;&lt;/span&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;
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 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 maxCol = Math.max(colA, colB, 120);
 const maxHousing = Math.max(housingA, housingB, 120);

 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-a-col').style.width = (colA / maxCol * 100) + '%';
 document.getElementById('bar-b-col').style.width = (colB / maxCol * 100) + '%';
 document.getElementById('bar-a-housing').style.width = (housingA / maxHousing * 100) + '%';
 document.getElementById('bar-b-housing').style.width = (housingB / maxHousing * 100) + '%';

 const colDiff = Math.round(((colB - colA) / colA) * 100);
 const housingDiff = Math.round(((housingB - housingA) / housingA) * 100);

 document.getElementById('diff-col').textContent = (colDiff &gt; 0 ? '+' : '') + colDiff + '%';
 document.getElementById('diff-housing').textContent = (housingDiff &gt; 0 ? '+' : '') + housingDiff + '%';

 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 = cheaper + ' is cheaper';
 badge.className = 'result-badge badge-success';
 } else {
 badge.textContent = 'Same cost';
 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;&lt;strong&gt;' + cheaper + '&lt;/strong&gt; is &lt;strong&gt;' + savings + '% cheaper&lt;/strong&gt; than ' + moreExpensive + '. If you move, your money goes further on housing, groceries, utilities, and everyday expenses.&lt;/p&gt;</description></item><item><title>Home Ownership Calculator</title><link>https://urcity.com/tools/home-ownership-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://urcity.com/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'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;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="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 + interest + taxes + insurance + 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 + 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&gt;

&lt;script&gt;
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));
 document.getElementById('down-payment-hint').textContent = '$' + amount.toLocaleString() + ' down';
}
homePriceInput.addEventListener('input', updateDownHint);
downPaymentInput.addEventListener('input', updateDownHint);

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 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 = '$' + Math.round(totalMonthly).toLocaleString();
 document.getElementById('total-cost').textContent = '$' + Math.round(totalCost).toLocaleString();

 document.getElementById('val-mortgage').textContent = '$' + Math.round(totalMortgage).toLocaleString();
 document.getElementById('val-tax').textContent = '$' + Math.round(totalTax).toLocaleString();
 document.getElementById('val-insurance').textContent = '$' + Math.round(totalInsurance).toLocaleString();
 document.getElementById('val-hoa').textContent = '$' + Math.round(totalHoa).toLocaleString();
 document.getElementById('val-down').textContent = '$' + 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;A &lt;strong&gt;$' + price.toLocaleString() + '&lt;/strong&gt; home actually costs &lt;strong&gt;$' + Math.round(totalCost).toLocaleString() + '&lt;/strong&gt; over 30 years. That is &lt;strong&gt;' + extraPct + '% more&lt;/strong&gt; than the sticker price once you factor in interest, taxes, insurance, and fees.&lt;/p&gt;</description></item><item><title>Salary Equivalence Calculator</title><link>https://urcity.com/tools/salary-equivalence-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://urcity.com/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"&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="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="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="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="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="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="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="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="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="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="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="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="madison-wi" data-col="104.2" data-name="Madison" &gt;Madison, WI&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="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="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="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="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="toledo-oh" data-col="88.5" data-name="Toledo" &gt;Toledo, OH&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="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="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="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="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="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="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="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="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="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="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="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="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="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="madison-wi" data-col="104.2" data-name="Madison" &gt;Madison, WI&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="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="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="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="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="toledo-oh" data-col="88.5" data-name="Toledo" &gt;Toledo, OH&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="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="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;
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);

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

 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 = 'Need more';
 badge.className = 'result-badge badge-warning';
 } else if (pct &lt; 0) {
 arrowLabel.textContent = pct + '%';
 arrowLabel.className = 'salary-arrow-label positive';
 badge.textContent = 'Save money';
 badge.className = 'result-badge badge-success';
 } else {
 arrowLabel.textContent = '0%';
 arrowLabel.className = 'salary-arrow-label';
 badge.textContent = 'Same';
 badge.className = 'result-badge badge-neutral';
 }

 const diffEl = document.getElementById('salary-difference');
 if (diff &gt; 0) {
 diffEl.innerHTML = '&lt;div class="summary-icon"&gt;🎉&lt;/div&gt;&lt;p&gt;You would save &lt;strong&gt;$' + diff.toLocaleString() + '/year&lt;/strong&gt; by moving to ' + nameTo + '. Your current salary goes further there.&lt;/p&gt;</description></item></channel></rss>