diff --git a/admin/monthly_rental_process_README.md b/admin/monthly_rental_process_README.md index ed0264d..4929620 100644 --- a/admin/monthly_rental_process_README.md +++ b/admin/monthly_rental_process_README.md @@ -10,17 +10,26 @@ This directory contains the automated monthly rental data processing system for ## Monthly Process -### 1. Receive CSV File - put file in public folder and give Claude the filename. It will take it from there -Each month, you'll receive a Zillow MSA rental data CSV file with format: -- Columns: RegionID, SizeRank, RegionName, RegionType, StateName, 2015-01-31, 2015-02-28, ... -- Latest column contains the current month's data (e.g., 2025-08-31) +### 1. Prepare CSV File +Each month, you'll receive a Zillow MSA rental data CSV file with the following format: +``` +RegionID,SizeRank,City/State,Lat,Long,Monthly Average,Radius,YOY +394913,1,"New York, NY",40.7128,-74.006,3232,25.0,4.28% +... +``` ### 2. Run Processing Script ```bash cd /home/dan/Work/mfos/admin -python3 monthly_rental_data_processor.py /path/to/new_csv_file.csv +python3 monthly_rental_data_processor.py path/to/csv_file.csv ``` +The script will: +- Process the CSV data +- Add market tier assignments +- Generate SQL for database import +- Place output CSV in `/public/Monthly Rental Rates.csv` (if enabled) + ### 3. Review Generated Files The script automatically generates: - `rental_data_upsert_YYYY_MM_DD.sql` - SQL file for database import @@ -29,26 +38,26 @@ The script automatically generates: ### 4. Import to Database Execute the SQL file in your Supabase database to update the `market_rental_data` table. +**Note:** The map component now reads directly from the database via `/api/rental-data`, so once the SQL is executed, the map displays current data automatically. + ## Features -### βœ… Automated Processing -- **Auto-detects target month** from CSV columns -- **6-month lookback** for missing current data -- **YOY calculations** based on actual dates used (12 months back) -- **Market tier assignment** (1=Primary, 2=Secondary, 3=Tertiary) -- **Coordinate lookup** for 500+ cities +### βœ… Data Processing +- **Parses rental CSV data** with RegionID, City/State, rental values +- **Market tier assignment** (1=Primary, 51-100=Secondary, 101+=Tertiary) +- **Coordinate lookup** for 720+ MSAs +- **YOY parsing** from CSV year_over_year_growth column ### βœ… Data Quality - **Preserves existing coordinates** via COALESCE in UPSERT -- **Handles missing data** gracefully with fallback logic -- **Validates data types** and filters MSA-only records -- **Reports missing coordinates** for manual lookup +- **Validates coordinates** - reports missing coordinates +- **SQL conflict handling** - updates or inserts based on region_id +- **Reports processing statistics** - tier breakdown, coordinate coverage ### βœ… Business Rules - **Market Tiers**: 1-50=Tier 1, 51-100=Tier 2, 101+=Tier 3 -- **Default Radius**: T1=50mi, T2=35mi, T3=10mi -- **YOY Calculation**: Dynamic based on actual data dates -- **Missing Data**: 6-month lookback, preserves existing data +- **Default Radius**: Varies by market (typically 7.5-25 miles) +- **YOY Storage**: Stored as text (e.g., '4.28%') and numeric value ## Database Schema @@ -75,68 +84,82 @@ market_rental_data ( ### Summary Report ``` === MONTHLY RENTAL DATA PROCESSING SUMMARY === -Processing Date: 2025-10-01 15:49:43 -Target Month: 2025-08-31 -Total MSAs processed: 576 +Processing Date: 2026-03-15 11:00:44 +Target Month: 2026-01-31 +Total MSAs processed: 720 πŸ“Š MARKET TIER BREAKDOWN: - Tier 1 (Primary): 49 markets + Tier 1 (Primary): 50 markets Tier 2 (Secondary): 50 markets - Tier 3 (Tertiary): 477 markets + Tier 3 (Tertiary): 620 markets πŸ“ˆ YOY GROWTH STATISTICS: - MSAs with YOY data: 421 - MSAs missing YOY: 155 - Average YOY growth: 3.36% - -πŸš€ TOP 10 FASTEST GROWING MARKETS: - 1. Abilene, TX: 19.92% - 2. Mankato, MN: 14.00% - [...] + MSAs with YOY data: 720 + MSAs missing YOY: 0 + Average YOY growth: 2.14% πŸ—ΊοΈ COORDINATE COVERAGE: - Cities with coordinates: 538 (93.4%) - Cities missing coordinates: 38 + Cities with coordinates: 720 (100%) + Cities missing coordinates: 0 ``` ### SQL File Structure ```sql -- Auto-generated UPSERT for market rental data +-- Processed on 2026-03-15 11:00:44 +-- Total MSAs: 720 +-- Cities with coordinates: 720 + INSERT INTO public.market_rental_data - (region_id, size_rank, city_state, latitude, longitude, ...) + (region_id, size_rank, city_state, latitude, longitude, monthly_rental_average, radius, year_over_year_growth, yoy_growth_numeric, market_tier, updated_at) VALUES - (394913, 1, 'New York, NY', 40.7128, -74.006, 3555, 50.0, '5.03%', 5.03, 1, now()), + (394913, 1, 'New York, NY', 40.7128, -74.006, 3232, 25.0, '4.28%', 4.28, 1, now()), + (753899, 2, 'Los Angeles, CA', 34.0522, -118.2437, 2885, 25.0, '1.64%', 1.64, 1, now()), [...] ON CONFLICT (region_id) DO UPDATE -SET [updates with COALESCE protection] +SET + size_rank = EXCLUDED.size_rank, + city_state = EXCLUDED.city_state, + monthly_rental_average = EXCLUDED.monthly_rental_average, + year_over_year_growth = EXCLUDED.year_over_year_growth, + yoy_growth_numeric = EXCLUDED.yoy_growth_numeric, + market_tier = EXCLUDED.market_tier, + updated_at = now(); ``` +## Workflow + +### Complete Monthly Update Process +1. **Receive CSV** - Get monthly rental data from Zillow +2. **Process CSV** - Run `python3 monthly_rental_data_processor.py filename.csv` +3. **Review Output** - Check summary report for coordinate coverage and statistics +4. **Execute SQL** - Run the generated `rental_data_upsert_YYYY_MM_DD.sql` in Supabase +5. **Verify in App** - Map automatically shows updated data from `/api/rental-data` + +### How the App Uses This Data +- **Map Component** (`/discover` page) fetches from `/api/rental-data` +- **API Endpoint** queries `market_rental_data` table directly +- **Data displays** as rental circles with color-coded rent levels +- **Popup shows** city name, average rent, market rank, and YOY growth + ## Troubleshooting ### Missing Coordinates If new cities appear without coordinates: -1. Note the region IDs from the summary report +1. Note region IDs from the summary report 2. Look up coordinates manually -3. Add to the `get_coordinate_lookup()` function +3. Add to `get_coordinate_lookup()` function in the Python script 4. Re-run the processing script -### Data Issues -- Check CSV format matches expected structure -- Verify RegionType = 'msa' for proper filtering -- Ensure date columns follow YYYY-MM-DD format - -## Maintenance - -### Monthly Tasks -1. Run processing script with new CSV -2. Review summary for data quality -3. Execute SQL in Supabase -4. Verify import success +### Data Quality Issues +- Verify CSV column format: `RegionID,SizeRank,City/State,Lat,Long,Monthly Average,Radius,YOY` +- Check that rental values are numeric (not text) +- Ensure YOY column contains percentages (e.g., '4.28%') or blank -### Periodic Tasks -- Update coordinate lookup for new cities -- Monitor YOY calculation accuracy -- Review market tier assignments +### Map Not Updating +- Verify SQL was executed in Supabase (`market_rental_data` table) +- Check `/api/rental-data` endpoint in browser Network tab +- Hard refresh browser (Ctrl+Shift+R) to clear caches ## Support diff --git a/app/api/rental-data/route.ts b/app/api/rental-data/route.ts new file mode 100644 index 0000000..62f2752 --- /dev/null +++ b/app/api/rental-data/route.ts @@ -0,0 +1,51 @@ +/* + * CHARLIE2 V2 - Rental Data API + * Serves market rental data from database for map overlays + * Replaces CSV-based approach with real-time database queries + */ + +import { NextResponse } from 'next/server'; +import { createClient } from '@supabase/supabase-js'; + +const supabase = createClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.SUPABASE_SERVICE_ROLE_KEY! +); + +export async function GET() { + try { + // Fetch all rental data from database + const { data: rentalData, error } = await supabase + .from('market_rental_data') + .select('region_id, size_rank, city_state, latitude, longitude, monthly_rental_average, radius, year_over_year_growth, yoy_growth_numeric') + .order('size_rank', { ascending: true }); + + if (error) { + console.error('Error fetching rental data:', error); + return NextResponse.json({ error: 'Failed to fetch rental data' }, { status: 500 }); + } + + if (!rentalData) { + return NextResponse.json([], { status: 200 }); + } + + // Transform database format to CSV format for compatibility with RentDataProcessor + const csvContent = [ + 'RegionID,SizeRank,City/State,Lat,Long,Monthly Average,Radius,YOY %', + ...rentalData.map(row => + `${row.region_id},${row.size_rank},"${row.city_state}",${row.latitude},${row.longitude},${row.monthly_rental_average},${row.radius},"${row.year_over_year_growth || ''}"` + ) + ].join('\n'); + + return new NextResponse(csvContent, { + headers: { + 'Content-Type': 'text/csv; charset=utf-8', + 'Cache-Control': 'public, max-age=3600', // Cache for 1 hour + 'ETag': `"rental-data-${Date.now()}"` // Simple ETag for cache busting + } + }); + } catch (error) { + console.error('Error in rental data API:', error); + return NextResponse.json({ error: 'Internal server error' }, { status: 500 }); + } +} diff --git a/app/page.tsx b/app/page.tsx index 1f5334f..205b7ba 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -8,7 +8,7 @@ import { useState } from 'react'; import { useAuth } from '@/contexts/AuthContext'; -import { ChevronLeft, ChevronRight, TrendingUp, FileText, Mail, DollarSign, Building, Users, Target, Zap, Globe, Brain, BarChart3, MessageSquare, Calendar, CheckCircle, X, Crown, Play } from 'lucide-react'; +import { ChevronLeft, ChevronRight, TrendingUp, FileText, Mail, DollarSign, Building, Users, Target, Zap, Globe, Brain, BarChart3, MessageSquare, Calendar, CheckCircle, X, Crown, Play, AlertTriangle } from 'lucide-react'; import Image from 'next/image'; import { Dialog } from '@headlessui/react'; import TypewriterChatDemo from '@/components/ui/TypewriterChatDemo'; @@ -357,17 +357,44 @@ export default function Home() { ) : ( -
- -

- Check your email for the confirmation link! -

-

- We've sent a login link to {signupEmail}. Click the link in your email to complete your registration and start your 7-day free trial. -

-

- Didn't receive the email? Check your spam folder. -

+
+ {/* Success Section */} +
+
+
+ +
+
+
+

Check Your Email

+

MultifamilyOS.ai

+

+ A confirmation link has been sent to {signupEmail} +

+
+
+ + {/* Warning Section */} +
+
+
+
+ +
+
+
+

Check Your Spam Folder

+

+ Our confirmation email often gets filtered. If you don't see it in your inbox, check: +

+
    +
  • β€’ Gmail: Check "Promotions" or "Spam" tabs
  • +
  • β€’ Outlook: Check your "Junk" folder
  • +
  • β€’ Other providers: Search for "MultifamilyOS"
  • +
+
+
+
)}
@@ -707,16 +734,44 @@ export default function Home() {

) : ( -
- -

Check Your Email

-

- A confirmation link has been sent to {email}. - Click the link to complete your registration and start your 7-day free trial. -

-

- Didn't receive the email? Check your spam folder. -

+
+ {/* Success Section */} +
+
+
+ +
+
+
+

Check Your Email

+

MultifamilyOS.ai

+

+ A confirmation link has been sent to {email} +

+
+
+ + {/* Warning Section */} +
+
+
+
+ +
+
+
+

Check Your Spam Folder

+

+ Our confirmation email often gets filtered. If you don't see it in your inbox, check: +

+
    +
  • β€’ Gmail: Check "Promotions" or "Spam" tabs
  • +
  • β€’ Outlook: Check your "Junk" folder
  • +
  • β€’ Other providers: Search for "MultifamilyOS"
  • +
+
+
+
)}
diff --git a/components/shared/PropertyMapWithRents.tsx b/components/shared/PropertyMapWithRents.tsx index 554e2ec..4b46ff1 100644 --- a/components/shared/PropertyMapWithRents.tsx +++ b/components/shared/PropertyMapWithRents.tsx @@ -30,24 +30,24 @@ export default function PropertyMapWithRents(props: PropertyMapWithRentsProps) { const [rentData, setRentData] = useState([]); const [isLoadingRentData, setIsLoadingRentData] = useState(true); - // Load rental data from CSV file on component mount (same as legacy version) + // Load rental data from API on component mount useEffect(() => { const loadRentData = async () => { try { setIsLoadingRentData(true); - - // Fetch rental data from CSV file (same as legacy my-properties) - const response = await fetch('/Monthly Rental Rates.csv?v=3'); + + // Fetch rental data from database API + const response = await fetch('/api/rental-data'); if (!response.ok) { - throw new Error(`Failed to fetch CSV: ${response.status}`); + throw new Error(`Failed to fetch rental data: ${response.status}`); } - + const csvText = await response.text(); - - // Use same RentDataProcessor as legacy version + + // Use same RentDataProcessor for CSV format compatibility const processor = new RentDataProcessor(csvText); const processedData = processor.processRentData(); - + setRentData(processedData); } catch (error) { console.error('Error loading rent data:', error); diff --git a/public/Monthly Rental Rates.csv b/public/Monthly Rental Rates.csv deleted file mode 100644 index 300d559..0000000 --- a/public/Monthly Rental Rates.csv +++ /dev/null @@ -1,657 +0,0 @@ -RegionID,SizeRank,City/State,Lat,Long,Monthly Average,Radius,YOY -394913,1,"New York, NY",40.7128,-74.006,3372,25.0,5.30% -753899,2,"Los Angeles, CA",34.0522,-118.2437,2676,25.0,1.59% -394463,3,"Chicago, IL",41.8781,-87.6298,1972,25.0,5.76% -394514,4,"Dallas, TX",32.7767,-96.797,1513,25.0,-0.84% -394692,5,"Houston, TX",29.7604,-95.3698,1423,25.0,-0.66% -395209,6,"Washington, DC",38.9072,-77.0369,2258,25.0,-0.16% -394974,7,"Philadelphia, PA",45.4647,-98.4865,1783,10.0,2.92% -394856,8,"Miami, FL",25.7617,-80.1918,2425,22.5,1.03% -394347,9,"Atlanta, GA",33.749,-84.388,1664,25.0,1.47% -394404,10,"Boston, MA",42.3601,-71.0589,2872,20.0,2.82% -394976,11,"Phoenix, AZ",33.4484,-112.074,1519,22.5,-2.25% -395057,12,"San Francisco, CA",37.7749,-122.4194,2877,22.5,5.87% -395025,13,"Riverside, CA",33.9806,-117.3755,2249,20.0,1.36% -394532,14,"Detroit, MI",42.3314,-83.0458,1384,22.5,1.81% -395078,15,"Seattle, WA",47.6062,-122.3321,2066,22.5,2.03% -394865,16,"Minneapolis, MN",44.9778,-93.265,1589,22.5,3.53% -395056,17,"San Diego, CA",32.7157,-117.1611,2702,20.0,1.22% -395148,18,"Tampa, FL",27.9506,-82.4572,1801,20.0,0.25% -394530,19,"Denver, CO",39.7392,-104.9903,1773,22.5,-3.55% -394358,20,"Baltimore, MD",39.2904,-76.6122,1790,17.5,1.73% -395121,21,"St. Louis, MO",38.627,-90.1994,1280,20.0,3.19% -394943,22,"Orlando, FL",28.5383,-81.3792,1785,20.0,-0.62% -394458,23,"Charlotte, NC",35.2271,-80.8431,1563,17.5,-0.57% -395055,24,"San Antonio, TX",29.4241,-98.4936,1243,22.5,-2.08% -394998,25,"Portland, OR",45.5051,-122.675,1699,20.0,0.29% -395045,26,"Sacramento, CA",38.5816,-121.4944,1972,20.0,1.09% -394982,27,"Pittsburgh, PA",40.4406,-79.9959,1389,17.5,2.83% -394466,28,"Cincinnati, OH",39.1031,-84.512,1368,17.5,2.49% -394355,29,"Austin, TX",30.2672,-97.7431,1441,17.5,-4.67% -394775,30,"Las Vegas, NV",36.1699,-115.1398,1512,15.0,0.07% -394735,31,"Kansas City, MO",39.0997,-94.5786,1336,17.5,3.37% -394492,32,"Columbus, OH",39.9612,-82.9988,1410,17.5,2.65% -394705,34,"Indianapolis, IN",39.7684,-86.1581,1341,17.5,2.62% -394475,35,"Cleveland, OH",41.4993,-81.6944,1191,17.5,4.47% -395059,36,"San Jose, CA",37.3382,-121.8863,3255,20.0,3.55% -394902,37,"Nashville, TN",36.1627,-86.7816,1644,20.0,-0.37% -395194,38,"Virginia Beach, VA",36.8529,-75.978,1621,17.5,4.37% -395005,39,"Providence, RI",41.824,-71.4128,2032,15.0,5.09% -394714,40,"Jacksonville, FL",30.3322,-81.6557,1491,17.5,-0.18% -394862,41,"Milwaukee, WI",43.0389,-87.9065,1343,17.5,4.43% -394935,42,"Oklahoma City, OK",35.4676,-97.5164,1112,17.5,2.47% -395012,43,"Raleigh, NC",35.7796,-78.6382,1469,17.5,-1.04% -394849,44,"Memphis, TN",35.1495,-90.049,1247,17.5,0.06% -395022,45,"Richmond, VA",37.5407,-77.436,1589,17.5,2.99% -394807,46,"Louisville, KY",38.2527,-85.7585,1235,17.5,1.36% -394910,47,"New Orleans, LA",29.9511,-90.0715,1459,17.5,-0.98% -395053,48,"Salt Lake City, UT",40.7608,-111.891,1520,20.0,-0.22% -394669,49,"Hartford, CT",41.7658,-72.6734,1790,15.0,3.56% -394425,50,"Buffalo, NY",42.8864,-78.8784,1310,15.0,3.13% -394388,51,"Birmingham, AL",33.5186,-86.8104,1254,15.0,-1.08% -395031,52,"Rochester, NY",43.1566,-77.6088,1410,15.0,5.51% -394640,53,"Grand Rapids, MI",42.9634,-85.6681,1412,15.0,2.85% -395167,54,"Tucson, AZ",32.2226,-110.9747,1225,17.5,-1.14% -753924,55,"Urban Honolulu, HI",21.3069,-157.8583,2312,15.0,4.82% -395169,56,"Tulsa, OK",36.1539,-95.9928,1102,17.5,0.83% -394619,57,"Fresno, CA",36.7378,-119.7871,1569,17.5,3.76% -395238,58,"Worcester, MA",42.2626,-71.8023,2047,15.0,4.51% -394938,59,"Omaha, NE",41.2565,-95.9345,1266,15.0,3.53% -394415,60,"Bridgeport, CT",41.1792,-73.1894,2718,12.5,4.45% -394653,61,"Greenville, SC",34.8526,-82.394,1419,15.0,1.60% -394312,62,"Albuquerque, NM",35.0844,-106.6504,1309,17.5,1.77% -394357,63,"Bakersfield, CA",35.3733,-119.0187,1436,17.5,4.13% -394308,64,"Albany, NY",42.6526,-73.7562,1546,15.0,4.45% -394753,65,"Knoxville, TN",35.9606,-83.9207,1565,15.0,0.33% -394367,66,"Baton Rouge, LA",30.4515,-91.1871,1209,15.0,0.55% -394843,67,"McAllen, TX",26.2034,-98.23,1005,15.0,0.77% -394908,68,"New Haven, CT",41.3083,-72.9279,1842,15.0,3.93% -394561,69,"El Paso, TX",31.7619,-106.485,1159,15.0,3.22% -394318,70,"Allentown, PA",40.6084,-75.4902,1625,15.0,2.56% -394952,71,"Oxnard, CA",34.1975,-119.1771,2672,12.5,2.07% -394486,72,"Columbia, SC",34.0007,-81.0348,1381,15.0,3.66% -753906,73,"North Port, FL",27.0442,-82.2359,1863,12.5,-4.54% -845158,74,"Dayton, OH",39.7589,-84.1916,1126,17.5,3.62% -394457,75,"Charleston, SC",32.7765,-79.9311,1794,15.0,-0.20% -394648,76,"Greensboro, NC",36.0726,-79.792,1222,15.0,2.12% -395134,77,"Stockton, CA",37.9577,-121.2908,1862,15.0,2.18% -394440,78,"Cape Coral, FL",26.5629,-81.9495,1671,12.5,-6.40% -394399,79,"Boise City, ID",43.615,-116.2023,1520,17.5,2.62% -394484,80,"Colorado Springs, CO",38.8339,-104.8214,1515,17.5,-3.43% -394798,81,"Little Rock, AR",34.7465,-92.2896,1017,15.0,0.43% -394766,82,"Lakeland, FL",28.0395,-81.9498,1603,12.5,2.68% -394304,83,"Akron, OH",41.0814,-81.519,977,15.0,5.18% -394531,84,"Des Moines, IA",41.5868,-93.625,1103,15.0,0.22% -395115,85,"Springfield, MA",42.1015,-72.5898,1787,15.0,5.66% -845159,86,"Poughkeepsie, NY",41.7004,-73.921,1955,12.5,2.00% -394931,87,"Ogden, UT",41.223,-111.9738,1421,12.5,1.11% -394816,88,"Madison, WI",43.0731,-89.4012,1704,15.0,4.08% -395235,89,"Winston, NC",36.0999,-80.2442,1273,15.0,2.31% -394528,90,"Deltona, FL",28.9005,-81.2637,1547,12.5,-0.16% -395143,91,"Syracuse, NY",43.0481,-76.1474,1496,15.0,4.73% -395006,92,"Provo, UT",40.2338,-111.6585,1483,15.0,1.18% -395160,93,"Toledo, OH",41.6528,-83.5379,957,15.0,4.99% -395224,94,"Wichita, KS",37.6872,-97.3301,975,15.0,5.50% -394549,95,"Durham, NC",35.994,-78.8986,1489,15.0,-0.44% -394352,96,"Augusta, GA",33.4735,-82.0105,1309,15.0,3.77% -394957,97,"Palm Bay, FL",28.0345,-80.5887,1664,12.5,0.11% -394711,98,"Jackson, MS",32.2988,-90.1848,1423,15.0,2.32% -394666,99,"Harrisburg, PA",40.2732,-76.8867,1253,15.0,5.23% -395113,100,"Spokane, WA",47.6588,-117.426,1390,15.0,1.48% -395075,101,"Scranton, PA",41.4089,-75.6624,1210,12.5,2.19% -394460,102,"Chattanooga, TN",35.0456,-85.3097,1285,15.0,-0.98% -394871,103,"Modesto, CA",37.6391,-120.9969,1734,15.0,0.78% -394768,104,"Lancaster, PA",40.0379,-76.3055,1315,12.5,5.04% -394997,105,"Portland, ME",43.6591,-70.2568,2140,15.0,3.93% -395245,106,"Youngstown, OH",41.0998,-80.6495,846,12.5,6.34% -394770,107,"Lansing, MI",42.7325,-84.5555,1081,12.5,2.77% -394590,108,"Fayetteville, AR",36.0822,-94.1719,1341,12.5,4.22% -394589,109,"Fayetteville, NC",35.0527,-78.8784,1327,12.5,2.17% -394792,110,"Lexington, KY",38.0406,-84.5037,1284,15.0,4.58% -394971,111,"Pensacola, FL",30.4213,-87.2169,1510,12.5,0.65% -395068,112,"Santa Rosa, CA",38.4405,-122.7144,2409,15.0,0.24% -395019,113,"Reno, NV",39.5296,-119.8138,1754,15.0,4.71% -394698,114,"Huntsville, AL",34.7304,-86.5861,1267,12.5,-0.29% -394995,115,"Port St. Lucie, FL",27.273,-80.3582,1948,12.5,2.44% -394761,116,"Lafayette, LA",30.2241,-92.0198,1174,12.5,3.66% -394898,117,"Myrtle Beach, SC",33.6891,-78.8867,1576,12.5,-3.04% -395116,118,"Springfield, MO",37.2089,-93.2923,979,12.5,3.41% -395195,119,"Visalia, CA",36.3302,-119.2921,1383,12.5,4.62% -394746,120,"Killeen, TX",31.1171,-97.7278,1056,12.5,2.19% -394338,121,"Asheville, NC",35.5951,-82.5515,1562,12.5,-3.07% -395244,122,"York, PA",39.9626,-76.7277,1169,12.5,3.96% -395183,123,"Vallejo, CA",38.1041,-122.2566,2233,12.5,0.37% -753917,124,"Santa Maria, CA",34.953,-120.4357,2792,12.5,0.74% -395050,125,"Salinas, CA",36.6777,-121.6555,2386,15.0,4.01% -395048,126,"Salem, OR",44.9429,-123.0351,1529,12.5,1.76% -394870,127,"Mobile, AL",30.6954,-88.0399,1120,15.0,3.77% -395015,128,"Reading, PA",40.3356,-75.9269,1308,12.5,2.57% -394502,129,"Corpus Christi, TX",27.8006,-97.3964,1222,17.5,0.48% -394421,130,"Brownsville, TX",25.9017,-97.4975,1168,15.0,2.34% -394820,131,"Manchester, NH",42.9956,-71.4548,2052,12.5,2.06% -394612,132,"Fort Wayne, IN",41.0793,-85.1394,1000,15.0,0.01% -394658,133,"Gulfport, MS",30.3674,-89.0928,1230,12.5,6.13% -395051,134,"Salisbury, MD",38.3607,-75.5994,1619,12.5,2.71% -394596,135,"Flint, MI",43.0125,-83.6875,1113,12.5,2.05% -394972,136,"Peoria, IL",40.6936,-89.589,968,12.5,4.16% -394439,137,"Canton, OH",40.7989,-81.3784,877,12.5,4.60% -395070,138,"Savannah, GA",32.0809,-81.0912,1681,12.5,0.43% -394327,139,"Anchorage, AK",61.2181,-149.9003,1571,17.5,3.52% -394372,140,"Beaumont, TX",30.0802,-94.1266,1099,15.0,6.48% -395096,141,"Shreveport, LA",32.5252,-93.7502,1237,12.5,3.16% -395164,142,"Trenton, NJ",40.2171,-74.7429,2431,12.5,1.14% -394875,143,"Montgomery, AL",32.3792,-86.3077,1240,12.5,2.08% -394520,144,"Davenport, IA",41.5236,-90.5776,879,15.0,0.63% -395146,145,"Tallahassee, FL",30.4383,-84.2807,1337,12.5,0.88% -394576,146,"Eugene, OR",44.0521,-123.0868,1713,12.5,4.16% -394901,147,"Naples, FL",26.142,-81.7948,2253,12.5,-2.38% -394332,148,"Ann Arbor, MI",42.2808,-83.743,2109,12.5,0.42% -394927,149,"Ocala, FL",29.1872,-82.1401,1465,12.5,2.53% -394679,150,"Hickory, NC",35.7332,-81.3412,1334,12.5,8.45% -394697,151,"Huntington, WV",38.4193,-82.4452,928,12.5,7.89% -394602,152,"Fort Collins, CO",40.5853,-105.0844,1684,12.5,1.04% -395033,153,"Rockford, IL",42.2711,-89.0937,1039,12.5,6.02% -394796,154,"Lincoln, NE",40.8136,-96.7026,1150,12.5,4.10% -394622,155,"Gainesville, FL",29.6516,-82.3248,1566,12.5,2.21% -394405,156,"Boulder, CO",40.01499,-105.2705,2146,12.5,-0.26% -394646,157,"Green Bay, WI",44.5133,-88.0133,981,12.5,5.96% -394488,158,"Columbus, GA",32.46,-84.9877,1225,15.0,0.21% -395107,159,"South Bend, IN",41.6764,-86.252,1310,12.5,5.18% -395109,160,"Spartanburg, SC",34.9496,-81.932,1330,15.0,1.32% -394645,161,"Greeley, CO",40.4233,-104.7091,1501,12.5,-0.69% -394808,162,"Lubbock, TX",33.5779,-101.8552,921,12.5,0.56% -394471,163,"Clarksville, TN",36.5298,-87.3595,1158,12.5,-3.60% -395028,164,"Roanoke, VA",37.2709,-79.9414,1197,12.5,5.20% -394579,165,"Evansville, IN",37.9716,-87.5711,977,12.5,14.28% -394747,167,"Kingsport, TN",36.5484,-82.5618,1071,12.5,2.30% -394741,168,"Kennewick, WA",46.2112,-119.1372,1662,12.5,2.89% -395179,169,"Utica, NY",43.1009,-75.2327,1281,12.5,7.45% -394660,170,"Hagerstown, MD",39.6418,-77.719,1309,12.5,5.56% -394543,171,"Duluth, MN",46.7867,-92.1005,1192,12.5,5.19% -394937,172,"Olympia, WA",47.0379,-122.9007,1854,12.5,3.84% -394803,173,"Longview, TX",32.5007,-94.7405,991,10.0,3.82% -395229,174,"Wilmington, NC",34.2257,-77.9447,1563,12.5,0.64% -395061,175,"San Luis Obispo, CA",35.2828,-120.6596,2364,12.5,1.74% -753875,176,"Crestview, FL",30.7621,-86.5705,1764,10.0,-0.36% -394851,177,"Merced, CA",37.3022,-120.482,1484,12.5,5.71% -395197,178,"Waco, TX",31.5493,-97.1467,1313,12.5,-0.21% -394447,179,"Cedar Rapids, IA",34.5528,-84.9397,872,10.0,11.05% -394348,180,"Atlantic City, NJ",39.3643,-74.4229,1861,10.0,10.24% -394412,181,"Bremerton, WA",47.5673,-122.6326,1878,12.5,1.36% -395103,182,"Sioux Falls, SD",43.5446,-96.7311,1134,12.5,1.10% -395065,183,"Santa Cruz, CA",36.9741,-122.0308,2949,12.5,-1.16% -394572,184,"Erie, PA",42.1292,-80.0851,909,15.0,7.75% -394924,185,"Norwich, CT",41.5243,-72.0759,1700,10.0,3.08% -394323,186,"Amarillo, TX",35.221,-101.8313,945,15.0,2.56% -394772,187,"Laredo, TX",27.5306,-99.4803,1210,12.5,-1.13% -395171,188,"Tuscaloosa, AL",33.2098,-87.5692,1190,10.0,5.48% -394483,189,"College Station, TX",30.6279,-96.3344,1282,12.5,3.51% -394732,190,"Kalamazoo, MI",42.2917,-85.5872,1105,12.5,3.03% -394811,191,"Lynchburg, VA",37.4138,-79.1423,1059,10.0,5.25% -394455,192,"Charleston, WV",38.3498,-81.6326,1001,15.0,6.93% -395240,193,"Yakima, WA",46.6021,-120.5059,1162,10.0,2.42% -394585,194,"Fargo, ND",46.8772,-96.7898,1018,15.0,2.05% -394387,195,"Binghamton, NY",42.0987,-75.918,1325,12.5,4.91% -394609,196,"Fort Smith, AR",35.3859,-94.3986,793,12.5,3.17% -394334,197,"Appleton, WI",44.2619,-88.4154,1000,12.5,7.35% -845160,198,"Prescott Valley, AZ",34.61,-112.3157,1678,12.5,3.67% -395161,199,"Topeka, KS",39.0558,-95.689,1083,12.5,3.10% -394813,200,"Macon, GA",32.8407,-83.6324,1126,12.5,-0.97% -395174,201,"Tyler, TX",32.3513,-95.3011,1221,10.0,1.10% -394361,202,"Barnstable Town, MA",41.7003,-70.3002,2410,12.5,0.36% -394519,203,"Daphne, AL",30.6035,-87.9036,1507,10.0,0.63% -394378,205,"Bellingham, WA",48.7544,-122.4687,1757,12.5,2.43% -394429,206,"Burlington, VT",44.4759,-73.2121,2426,12.5,1.48% -395030,207,"Rochester, MN",44.0121,-92.4802,1570,12.5,1.90% -753895,208,"Lafayette, IN",40.4167,-86.8753,1300,10.0,1.87% -394454,209,"Champaign, IL",40.1164,-88.2434,1210,12.5,6.30% -394848,210,"Medford, OR",42.3265,-122.8756,1479,12.5,4.80% -845164,211,"Lebanon, NH",43.6423,-72.2518,1614,10.0,8.87% -394459,212,"Charlottesville, VA",38.0293,-78.4767,1806,12.5,3.69% -394763,213,"Lake Charles, LA",30.2266,-93.2174,1001,12.5,4.55% -394773,214,"Las Cruces, NM",32.3199,-106.7637,915,12.5,1.49% -394464,215,"Chico, CA",39.7285,-121.8375,1465,12.5,1.34% -394681,216,"Hilton Head Island, SC",32.2163,-80.7526,1860,7.5,-2.44% -394346,217,"Athens, GA",33.9519,-83.3576,1516,12.5,3.28% -394765,218,"Lake Havasu City, AZ",34.4839,-114.3225,1290,10.0,0.37% -394485,219,"Columbia, MO",38.9517,-92.3341,1031,15.0,4.08% -395114,220,"Springfield, IL",39.7817,-89.6501,962,12.5,5.30% -394691,221,"Houma, LA",29.5958,-90.7195,1198,10.0,6.49% -394872,222,"Monroe, LA",32.5093,-92.1193,907,12.5,8.60% -394565,223,"Elkhart, IN",41.6819,-85.9767,874,12.5,6.61% -394726,224,"Johnson City, TN",36.3134,-82.3535,1243,10.0,7.72% -395247,225,"Yuma, AZ",32.6927,-114.6277,1071,10.0,1.73% -394623,226,"Gainesville, GA",34.2979,-83.8241,1534,12.5,-2.28% -394716,227,"Jacksonville, NC",34.7541,-77.4302,1241,10.0,3.26% -394597,228,"Florence, SC",34.1954,-79.7626,1130,10.0,2.95% -394680,229,"Hilo, HI",19.707,-155.0885,2147,10.0, -395118,230,"St. Cloud, MN",45.5579,-94.1632,1137,12.5,2.90% -395011,231,"Racine, WI",42.7261,-87.7829,1204,10.0,6.85% -394380,232,"Bend, OR",44.0582,-121.3153,1885,10.0,1.52% -395047,233,"Saginaw, MI",43.4195,-83.9508,980,10.0,3.53% -395202,234,"Warner Robins, GA",32.613,-83.6242,1270,10.0,2.48% -395151,235,"Terre Haute, IN",39.4667,-87.4139,870,12.5,6.39% -395162,236,"Torrington, CT",41.8006,-73.1212,1595,10.0,5.89% -395009,237,"Punta Gorda, FL",26.9298,-82.0454,1607,10.0,-1.35% -394386,239,"Billings, MT",45.7833,-108.5007,1234,12.5,4.70% -395018,240,"Redding, CA",40.5865,-122.3917,1314,12.5,5.67% -394748,241,"Kingston, NY",41.927,-73.9974,1963,10.0,3.78% -394960,242,"Panama City, FL",30.1588,-85.6602,1548,12.5,-1.97% -394729,243,"Joplin, MO",37.0842,-94.5133,1037,10.0,9.69% -394539,244,"Dover, DE",39.1582,-75.5244,1587,10.0,4.06% -394559,245,"El Centro, CA",32.792,-115.5631,1325,7.5, -394712,246,"Jackson, TN",35.6145,-88.8139,1264,12.5,3.19% -395246,247,"Yuba City, CA",39.1404,-121.6169,1351,10.0,2.17% -394406,248,"Bowling Green, KY",36.9685,-86.4808,1046,12.5,3.36% -395119,249,"St. George, UT",37.0965,-113.5684,1588,12.5,3.16% -394896,250,"Muskegon, MI",43.2342,-86.2484,1161,10.0,6.96% -394299,251,"Abilene, TX",32.4487,-99.7331,1606,10.0,26.03% -394707,252,"Iowa City, IA",41.6611,-91.5302,1146,12.5,2.34% -394351,253,"Auburn, AL",32.6099,-85.4808,1248,12.5,4.74% -394860,254,"Midland, TX",31.9973,-102.0779,1491,12.5,0.58% -394671,255,"Hattiesburg, MS",31.3271,-89.2903,1231,10.0,1.97% -753869,255,"Bloomington, IL",40.4842,-88.9937,1081,12.5,2.25% -394944,257,"Oshkosh, WI",44.0247,-88.5426,1109,12.5,5.68% -394555,258,"Eau Claire, WI",44.8113,-91.4985,942,12.5,1.95% -394651,259,"Greenville, NC",35.6127,-77.3664,1323,12.5,5.47% -394428,260,"Burlington, NC",36.0957,-79.4378,1269,10.0,-1.32% -395210,261,"Waterloo, IA",42.4928,-92.3426,869,10.0,2.76% -394480,262,"Coeur d'Alene, ID",47.6777,-116.7805,1543,10.0,2.74% -394553,263,"East Stroudsburg, PA",41.0004,-75.18,1632,10.0,5.94% -395007,264,"Pueblo, CO",38.2544,-104.6091,1119,10.0,4.11% -394392,265,"Blacksburg, VA",37.2296,-80.4139,1420,7.5,9.38% -395215,266,"Wausau, WI",44.9591,-89.6301,848,10.0,3.98% -394731,267,"Kahului, HI",20.8895,-156.4743,2631,10.0,6.63% -394720,268,"Janesville, WI",42.6828,-89.0187,1058,10.0,7.10% -395170,269,"Tupelo, MS",34.2576,-88.7034,1181,10.0,8.45% -394393,270,"Bloomington, IN",39.1653,-86.5264,1639,10.0,5.42% -394930,271,"Odessa, TX",31.8457,-102.3676,1395,12.5,-0.62% -394710,272,"Jackson, MI",42.2459,-84.4014,927,10.0,6.16% -395125,273,"State College, PA",40.7934,-77.86,1706,10.0,6.52% -395079,274,"Sebastian, FL",27.8164,-80.4706,1843,10.0,6.28% -394814,275,"Madera, CA",36.9613,-120.0607,1745,10.0, -394523,276,"Decatur, AL",34.6059,-86.9833,888,7.5, -394453,277,"Chambersburg, PA",39.9376,-77.6611,1034,7.5,3.73% -395193,278,"Vineland, NJ",39.4864,-75.025,1612,12.5,2.97% -394703,279,"Idaho Falls, ID",43.4917,-112.0339,1072,12.5,0.23% -394639,280,"Grand Junction, CO",39.0639,-108.5506,1384,12.5,3.44% -394563,281,"Elizabethtown, KY",37.7031,-85.8649,1042,10.0,0.27% -394917,282,"Niles, MI",41.8295,-86.2542,1280,7.5,9.79% -394873,283,"Monroe, MI",41.9164,-83.3977,991,10.0,-2.74% -395066,284,"Santa Fe, NM",35.687,-105.9378,1791,12.5,-0.98% -394493,285,"Concord, NH",43.2081,-71.5376,1907,12.5,4.35% -394314,286,"Alexandria, LA",31.3112,-92.4426,776,7.5, -395163,287,"Traverse City, MI",44.7631,-85.6206,1696,10.0, -394359,288,"Bangor, ME",44.8012,-68.7778,1439,10.0,3.72% -394685,289,"Homosassa Springs, FL",28.8025,-82.5555,1270,7.5,3.45% -394662,290,"Hanford, CA",36.3275,-119.6457,1301,10.0,4.29% -394723,291,"Jefferson City, MO",38.5767,-92.1735,798,10.0,10.71% -394598,292,"Florence, AL",34.7998,-87.6773,834,10.0,1.27% -394537,293,"Dothan, AL",31.2232,-85.3905,859,10.0, -394802,294,"London, KY",37.1289000,-84.0833000,800,10.00,N/A -394306,295,"Albany, GA",31.5785,-84.1557,851,10.0,-2.39% -845167,296,"Ottawa, IL",41.3456000,-88.8426000,1024,7.50,4.99% -395102,297,"Sioux City, IA",42.4993,-96.4003,1148,12.5,6.82% -395223,298,"Wichita Falls, TX",33.9137,-98.4934,940,10.0,7.04% -395152,299,"Texarkana, TX",33.4357,-94.0672,1218,10.0, -395182,300,"Valdosta, GA",30.8327,-83.2785,1255,10.0,8.93% -394800,301,"Logan, UT",41.7355,-111.8344,1159,10.0, -394595,302,"Flagstaff, AZ",35.1983,-111.6513,1936,10.0,2.14% -395036,303,"Rocky Mount, NC",35.9382,-77.7905,832,10.0,2.47% -395000,304,"Pottsville, PA",40.6856,-76.195,967,7.5,3.08% -394515,305,"Dalton, GA",34.7698,-84.9702,1439,7.5, -394783,306,"Lebanon, PA",40.3409,-76.4113,1125,10.0,5.35% -394880,307,"Morristown, TN",36.214,-83.2949,1153,7.5, -395232,308,"Winchester, VA",39.1857,-78.1633,1537,10.0,4.75% -395221,309,"Wheeling, WV",40.063,-80.7214,821,10.0,3.37% -394879,310,"Morgantown, WV",39.6295,-79.9559,1038,10.0,1.65% -394756,311,"La Crosse, WI",43.8014,-91.2396,1031,10.0,1.82% -394900,312,"Napa, CA",38.2975,-122.2869,2599,10.0,-0.29% -395013,313,"Rapid City, SD",44.0805,-103.231,1237,12.5,2.51% -395139,314,"Sumter, SC",33.9204,-80.3415,955,10.0,2.54% -394577,315,"Eureka, CA",40.8021,-124.1637,1443,12.5,3.89% -395117,316,"Springfield, OH",39.9242,-83.8088,898,7.5, -394668,317,"Harrisonburg, VA",38.4496,-78.8689,1499,10.0,4.23% -394368,318,"Battle Creek, MI",42.3212,-85.1797,957,12.5,7.29% -395094,319,"Sherman, TX",33.6357,-96.6089,1320,10.0,-1.31% -394821,320,"Manhattan, KS",39.1836,-96.5717,949,7.5,4.40% -394442,321,"Carbondale, IL",37.7273,-89.2168,744,10.0,4.52% -394727,322,"Johnstown, PA",40.3267,-78.922,760,7.5, -394728,323,"Jonesboro, AR",35.8423,-90.7043,919,10.0,4.53% -394390,324,"Bismarck, ND",46.8083,-100.7837,1218,10.0,6.48% -394661,325,"Hammond, LA",30.5044,-90.4612,1117,10.0,5.74% -394983,326,"Pittsfield, MA",42.4501,-73.2454,1463,10.0,10.83% -394890,327,"Mount Vernon, WA",48.4212,-122.3341,1791,10.0,-0.56% -394719,328,"Jamestown, NY",42.097,-79.2353,952,7.5, -395153,329,"The Villages, FL",28.926,-81.985,1500,12.5,-0.32% -394307,330,"Albany, OR",44.6365,-123.1059,1478,10.0,-0.55% -394633,331,"Glens Falls, NY",43.3095,-73.644,1296,10.0, -394780,332,"Lawton, OK",34.6036,-98.3959,900,10.0,0.81% -394474,334,"Cleveland, TN",35.1595,-84.8766,1267,10.0,0.13% -395098,335,"Sierra Vista, AZ",31.5455,-110.2773,948,10.0,4.77% -394325,336,"Ames, IA",42.0308,-93.6319,949,10.0,3.54% -394824,337,"Mansfield, OH",40.7584,-82.5154,852,10.0,7.05% -395128,338,"Staunton, VA",38.1496,-79.0717,1237,10.0,3.31% -394353,339,"Augusta, ME",44.3106,-69.7795,1332,10.0,2.46% -394321,340,"Altoona, PA",40.5187,-78.3947,875,10.0, -394905,341,"New Bern, NC",35.1085,-77.0441,1416,10.0,8.17% -394588,342,"Farmington, NM",36.7281,-108.2187,913,10.0,13.25% -395120,343,"St. Joseph, MO",39.7675,-94.8467,812,10.0,7.97% -395054,344,"San Angelo, TX",31.4638,-100.437,1226,10.0,11.37% -395218,345,"Wenatchee, WA",47.4235,-120.3103,1656,10.0,1.57% -394949,346,"Owensboro, KY",37.7719000,-87.1133000,698,7.50,N/A -753890,347,"Holland, MI",42.7875,-86.1089,1263,10.0, -394810,348,"Lumberton, NC",34.6182,-79.0086,838,7.5, -394778,349,"Lawrence, KS",38.9717,-95.2353,1281,10.0,9.10% -394635,350,"Goldsboro, NC",35.3849,-77.9928,1180,10.0,10.95% -395213,351,"Watertown, NY",43.9748,-75.9108,1207,10.0,6.70% -395089,352,"Sheboygan, WI",43.7508,-87.7145,1129,10.0,13.59% -395217,353,"Weirton, WV",40.4184000,-80.5890000,725,7.50,2.24% -394867,354,"Missoula, MT",46.8721,-113.994,1349,10.0,1.46% -395237,355,"Wooster, OH",40.8051,-81.9351,1006,7.5,11.00% -394407,356,"Bozeman, MT",45.677,-111.0429,1867,12.5,-5.97% -394333,357,"Anniston, AL",33.6598,-85.8316,761,10.0,1.34% -394374,358,"Beckley, WV",37.7785,-81.1884,795,7.5, -395225,359,"Williamsport, PA",41.2412,-77.0011,880,10.0,3.54% -394423,360,"Brunswick, GA",31.1498,-81.4915,1461,10.0,3.15% -395173,361,"Twin Falls, ID",42.561,-114.4609,1254,10.0,4.20% -753872,361,"California, MD",38.3002,-76.5077,1725,10.0,6.85% -394495,363,"Cookeville, TN",36.1628,-85.5016,1062,10.0,3.45% -394893,364,"Muncie, IN",40.1934,-85.3864,855,7.5,4.82% -394857,365,"Michigan City, IN",41.7075,-86.8951,988,7.5,1.51% -395039,366,"Roseburg, OR",43.2165,-123.3417,1158,7.5,4.25% -394788,367,"Lewiston, ME",44.1004,-70.2148,1515,10.0,4.51% -394804,368,"Longview, WA",46.1382,-122.9382,1249,10.0,3.67% -394932,369,"Ogdensburg, NY",44.6934000,-75.4860000,1108,7.50,4.38% -394734,370,"Kankakee, IL",41.12,-87.8612,1229,7.5,7.57% -394396,371,"Bluefield, WV",37.2691,-81.2059,783,10.0, -395095,372,"Show Low, AZ",34.2544,-109.9987,1475,10.0, -395023,373,"Richmond, KY",37.7479,-84.2947,898,10.0,1.65% -395168,374,"Tullahoma, TN",35.362,-86.2094,1199,7.5, -395222,375,"Whitewater, WI",42.8339,-88.7326,1523,7.5,13.66% -394709,376,"Ithaca, NY",42.4439,-76.5019,2068,10.0,1.03% -394637,377,"Grand Forks, ND",47.9253,-97.0329,1002,10.0,9.18% -394524,378,"Decatur, IL",39.8403,-88.9548,765,10.0, -394762,379,"LaGrange, GA",33.0393,-85.0314,1329,10.0,-3.80% -394369,380,"Bay City, MI",43.648,-93.3683,1129,10.0,1.34% -394599,381,"Fond du Lac, WI",43.775,-88.4388,983,10.0,3.86% -394630,382,"Gettysburg, PA",39.8309,-77.2311,1015,7.5, -394733,384,"Kalispell, MT",48.191,-114.316,1621,10.0,-1.53% -394518,385,"Danville, VA",36.5860000,-79.3950000,792,7.50,N/A -394823,386,"Mankato, MN",44.1636,-93.9994,1055,10.0,10.56% -394794,387,"Lima, OH",40.7426,-84.1052,962,10.0, -395166,389,"Truckee, CA",39.3279,-120.1833,2055,7.5, -395080,390,"Sebring, FL",27.4956,-81.4409,1111,7.5,2.81% -394462,391,"Cheyenne, WY",41.1398,-104.8202,1150,10.0,4.87% -394689,392,"Hot Springs, AR",34.5037,-93.0552,947,10.0,3.83% -395090,394,"Shelby, NC",35.2924,-81.5356,950,10.0, -394542,396,"Dubuque, IA",42.5006,-90.6646,862,10.0,5.07% -394852,397,"Meridian, MS",32.3543,-88.7034,956,10.0, -753912,398,"Pinehurst, NC",35.1954,-79.4695,1499,7.5,-3.58% -394953,399,"Paducah, KY",37.0886,-88.6,1100,7.5, -395190,400,"Victoria, TX",28.8053,-97.0036,1058,10.0,3.36% -395038,401,"Rome, GA",34.257,-85.1647,1141,10.0,4.64% -395086,402,"Sevierville, TN",35.8681,-83.5618,1557,10.0,-4.61% -394882,403,"Moses Lake, WA",47.1301,-119.2781,1436,10.0,0.28% -394340,404,"Ashtabula, OH",40.7989,-81.3784,879,10.0, -394441,405,"Cape Girardeau, MO",37.3059,-89.5181,776,10.0,4.50% -394580,407,"Fairbanks, AK",64.8378,-147.7164,1600,10.0,0.20% -394410,408,"Brainerd, MN",46.358,-94.2008,960,7.5, -394513,409,"Cumberland, MD",39.6528,-78.7625,807,7.5,9.06% -394928,410,"Ocean City, NJ",39.2654000,-74.5938000,1868,10.00,N/A -394505,411,"Corvallis, OR",44.5646,-123.262,1699,7.5,1.62% -394988,412,"Pocatello, ID",42.8713,-112.4455,1037,10.0,6.40% -394501,413,"Corning, NY",42.1429,-77.0547,1362,7.5,3.41% -394911,414,"New Philadelphia, OH",40.4898,-81.4456,935,7.5, -395140,415,"Sunbury, PA",40.8634,-76.7944,850,7.5, -395175,416,"Ukiah, CA",39.1502,-123.2078,1473,7.5, -753887,417,"Hermiston, OR",45.8404,-119.2895,1488,7.5,3.07% -394469,418,"Clarksburg, WV",39.2806000,-80.3442000,864,10.00,N/A -394964,419,"Parkersburg, WV",39.2667,-81.5615,838,7.5, -394373,420,"Beaver Dam, WI",43.4575,-88.8373,1002,7.5,6.41% -394641,422,"Grants Pass, OR",42.439,-123.327,1388,10.0, -394511,424,"Cullman, AL",34.1748,-86.8436,1066,7.5, -394809,425,"Lufkin, TX",31.3382000,-94.7291000,918,7.50,N/A -395248,426,"Zanesville, OH",39.9403000,-82.0132000,1183,7.50,N/A -394907,427,"New Castle, PA",41.0037,-80.347,812,10.0, -394925,428,"Oak Harbor, WA",48.2932,-122.643,1634,10.0,2.61% -394942,429,"Orangeburg, SC",33.4918,-80.8556,1237,7.5, -395212,430,"Watertown, WI",43.1947,-88.7287,1171,7.5,9.51% -394847,431,"Meadville, PA",41.6412000,-80.1515000,862,7.50,N/A -394568,432,"Elmira, NY",42.0898,-76.8077,1141,7.5, -394644,433,"Great Falls, MT",47.4942,-111.2833,1153,10.0,3.12% -395042,435,"Russellville, AR",35.2784,-93.1338,750,7.5, -394704,436,"Indiana, PA",40.6142,-79.1003,1373,10.0, -394859,437,"Midland, MI",43.6156,-84.2472,1105,10.0, -394755,438,"Kokomo, IN",40.4864,-86.1336,794,10.0, -394395,439,"Bloomsburg, PA",41.0048,-76.4438,1006,10.0,8.72% -394941,440,"Opelousas, LA",44.0896,-93.2258,625,10.0, -394675,441,"Helena, MT",46.5884,-112.0245,1413,10.0,4.54% -394744,442,"Key West, FL",24.5551,-81.78,2914,7.5,5.63% -395133,444,"Stillwater, OK",36.1156,-97.0584,928,7.5,2.05% -394489,445,"Columbus, IN",33.4959,-88.4281,1227,10.0,11.43% -394345,446,"Athens, TX",32.2042,-95.3011,1087,10.0, -394452,447,"Centralia, WA",46.716,-122.9543,1414,10.0,7.06% -394822,448,"Manitowoc, WI",44.0886,-87.6575,1014,10.0, -394682,449,"Hinesville, GA",31.847,-81.5964,1516,7.5,5.27% -395205,451,"Warsaw, IN",41.2381,-85.853,996,7.5,4.05% -395126,453,"Statesboro, GA",32.4488,-81.7832,1051,7.5,6.10% -394445,454,"Casper, WY",42.8666,-106.3131,1259,10.0,1.44% -395231,455,"Wilson, NC",35.7212,-77.9155,1126,7.5, -753881,456,"Glenwood Springs, CO",39.5505,-107.3248,2492,10.0,-0.29% -395085,457,"Seneca, SC",34.6834000,-82.9521000,1314,10.00,N/A -394866,458,"Minot, ND",48.2325,-101.295,944,10.0,7.00% -394936,459,"Olean, NY",42.0776,-78.4297,1000,7.5, -395077,461,"Searcy, AR",35.2506,-91.7362,762,7.5, -394638,462,"Grand Island, NE",40.9264,-98.342,1209,12.5,5.14% -394994,463,"Port Angeles, WA",48.1181,-123.4307,1442,10.0, -394350,464,"Auburn, NY",42.9300000,-76.5700000,1175,10.00,N/A -394699,465,"Huntsville, TX",30.7235,-95.5508,1070,10.0,-0.73% -394738,466,"Keene, NH",42.9337,-72.278,1754,7.5,4.63% -394674,467,"Heber, UT",40.5069,-111.4132,2264,7.5,1.68% -395010,468,"Quincy, IL",39.9356,-91.4099,900,10.0, -395062,469,"Sandusky, OH",41.46,-82.71,1147,10.0, -394593,470,"Findlay, OH",41.0442000,-83.6499000,1048,10.00,N/A -394614,471,"Frankfort, KY",38.2009,-84.8733,979,10.0,8.76% -394516,472,"Danville, IL",40.1245,-87.63,684,10.0,7.18% -394298,473,"Aberdeen, WA",46.9759,-123.8157,1204,10.0,3.72% -753928,476,"Wisconsin Rapids, WI",44.3836000,-89.8173000,817,7.50,N/A -753893,477,"Jefferson, GA",34.1173,-83.5724,1426,7.5,2.88% -394736,478,"Kapaa, HI",22.0964000,-159.5261000,2650,10.00,N/A -394955,479,"Palatka, FL",29.6472,-81.6373,1264,10.0, -394683,481,"Hobbs, NM",32.7026,-103.136,1160,10.0, -395088,482,"Shawnee, OK",35.3273000,-96.9253000,775,10.00,N/A -395132,485,"Stevens Point, WI",44.5236,-89.5468,1210,10.0,4.69% -394647,486,"Greeneville, TN",36.1634,-82.8304,1017,10.0, -394655,488,"Greenwood, SC",34.1954,-82.1521,1019,10.0, -394764,489,"Lake City, FL",30.1896000,-82.6404000,1300,10.00,N/A -394752,490,"Klamath Falls, OR",42.225,-121.7817,1134,10.0, -394877,491,"Morehead City, NC",34.7143,-76.7302,1441,10.0, -394472,492,"Clearlake, CA",38.9582,-122.6264,1336,7.5, -394305,493,"Alamogordo, NM",32.8995,-105.9603,1401,10.0,11.11% -394587,495,"Farmington, MO",37.7917,-90.4921,831,7.5, -394826,497,"Marion, IN",40.5581,-85.6686,778,10.0, -394586,498,"Faribault, MN",44.2942,-93.2689,1222,10.0, -395021,499,"Richmond, IN",39.8289,-84.8902,732,7.5, -394829,500,"Marquette, MI",46.5436,-87.3954,1072,10.0,3.07% -394885,502,"Mount Pleasant, MI",43.5978000,-84.7675000,832,7.50,N/A -394827,504,"Marion, OH",40.5887000,-83.1285000,880,7.50,0 -394360,505,"Baraboo, WI",43.4719,-89.7446,1064,7.5,2.75% -395016,506,"Red Bluff, CA",40.1696000,-122.2358000,1295,10.00,N/A -394825,507,"Marinette, WI",45.1072000,-87.6329000,992,7.50,N/A -845163,508,"Jasper, AL",33.8312,-87.2775,800,7.5, -395040,509,"Roswell, NM",28.0206,-97.0544,1038,10.0, -395092,510,"Shelton, WA",47.215,-123.1007,1455,7.5, -394540,511,"Dublin, GA",32.5404000,-82.9037000,825,7.50,N/A -394899,512,"Nacogdoches, TX",31.604,-94.6555,921,7.5,8.64% -394496,514,"Coos Bay, OR",43.3665,-124.2179,1260,10.0, -394600,515,"Forest City, NC",35.3340000,-81.8651000,1125,7.50,N/A -394836,516,"Martinsville, VA",36.6915,-79.8725,739,10.0, -395020,517,"Rexburg, ID",43.826,-111.7897,1103,7.5,1.97% -394787,518,"Lewiston, ID",46.4165,-117.0177,1180,7.5, -394759,519,"Laconia, NH",43.5279,-71.4703,1793,7.5, -394629,520,"Georgetown, SC",33.3571,-79.2948,1778,10.0, -394343,521,"Athens, OH",39.3292,-82.1013,847,7.5, -394570,523,"Enid, OK",36.3955,-97.8784,819,10.0, -394889,524,"Mount Vernon, OH",40.3900000,-82.4900000,1486,10.00,N/A -395199,525,"Walla Walla, WA",46.0646,-118.343,1332,7.5,2.59% -394701,527,"Hutchinson, KS",38.0608,-97.9298,661,10.0, -394693,528,"Hudson, NY",42.2529,-73.7905,1838,7.5,3.51% -395124,529,"Starkville, MS",33.4504,-88.8184,1078,7.5,6.00% -394631,531,"Gillette, WY",44.2911,-105.5022,1312,10.0,-1.46% -395044,533,"Rutland, VT",43.6106,-72.9726,1392,7.5, -845162,535,"Granbury, TX",32.4421,-97.7942,1491,7.5,4.46% -395071,536,"Sayre, PA",41.9453,-76.1855,950,10.0, -395049,537,"Salina, KS",38.8403000,-97.6114000,718,7.50,N/A -753903,538,"Marietta, OH",39.4154000,-81.4548000,885,7.50,0.00% -394591,539,"Fergus Falls, MN",46.2855,-96.0769,891,10.0, -394362,540,"Barre, VT",44.197,-72.502,1429,7.5,3.73% -394939,542,"Oneonta, NY",42.4529,-75.0638,1406,7.5, -394490,543,"Columbus, MS",33.47,-88.44,1286,10.0, -394923,544,"Norwalk, OH",41.2425000,-82.6157000,1213,7.50,0 -394365,545,"Batavia, NY",38.8606,-86.4872,981,10.0, -394336,546,"Ardmore, OK",34.1743000,-97.1436000,920,10.00,N/A -394956,547,"Palestine, TX",31.7621,-95.6308,1359,7.5, -394456,549,"Charleston, IL",39.4967000,-88.1762000,682,7.50,N/A -394592,550,"Fernley, NV",39.6074,-119.2518,1358,7.5, -394444,551,"Carson City, NV",39.1638,-119.7674,1617,7.5,2.80% -394551,552,"Eagle Pass, TX",28.7091000,-100.4995000,1464,10.00,-0.88% -394432,553,"Calhoun, GA",34.5000000,-84.9500000,1590,10.00,N/A -753877,554,"Cullowhee, NC",35.3132,-83.176,1100,7.5, -394737,555,"Kearney, NE",40.6994,-99.0817,1538,7.5, -394582,556,"Fairmont, WV",39.49,-80.14,833,10.0, -394940,557,"Ontario, OR",44.0265000,-116.9629000,1340,7.50,N/A -394621,558,"Gaffney, SC",35.07,-81.65,963,10.0, -395131,560,"Sterling, IL",41.7886,-89.6359,800,7.5, -394411,561,"Branson, MO",36.6437,-93.2185,973,10.0, -394446,562,"Cedar City, UT",37.6775,-113.0619,1186,10.0,-1.09% -395216,563,"Waycross, GA",31.2100000,-82.3500000,862,10.00,N/A -394951,564,"Oxford, MS",34.3665,-89.5192,1864,7.5,8.23% -394556,566,"Edwards, CO",39.6442,-106.5946,2990,7.5, -394547,567,"Durango, CO",37.2753,-107.8801,1712,10.0,-1.58% -753920,569,"Sonora, CA",37.9827,-120.3821,1338,7.5, -394566,573,"Elko, NV",40.8324000,-115.7631000,973,7.50,N/A -395122,576,"St. Marys, GA",30.75,-81.57,1417,10.0,2.57% -395204,578,"Warrensburg, MO",38.7628,-93.7361,877,10.0,4.57% -394634,579,"Gloversville, NY",43.0534,-74.3274,1137,7.5, -394604,580,"Fort Leonard Wood, MO",37.7057,-92.157,993,7.5,8.57% -394562,582,"Elizabeth City, NC",36.2946,-76.2511,1295,7.5, -394967,583,"Payson, AZ",34.2309,-111.3251,1450,7.5, -394344,584,"Athens, TN",35.4428,-84.593,926,7.5, -394571,585,"Enterprise, AL",31.3152000,-85.8552000,1019,7.50,N/A -394339,586,"Ashland, OH",40.87,-82.32,843,10.0, -394861,588,"Milledgeville, GA",33.15,-83.24,1145,10.0, -394742,589,"Kerrville, TX",30.09,-99.46,1244,10.0, -394363,590,"Bartlesville, OK",36.7473000,-95.9808000,1049,10.00,7.30% -394985,591,"Platteville, WI",42.7300000,-90.4800000,1542,10.00,N/A -394503,592,"Corsicana, TX",32.0954,-96.4689,1151,10.0, -394717,599,"Jacksonville, TX",31.9600000,-95.2700000,1148,10.00,N/A -394954,601,"Pahrump, NV",36.2083,-115.9839,1282,7.5, -395234,603,"Winona, MN",44.0497,-91.6406,1158,7.5,13.09% -753905,604,"Newport, OR",44.6365000,-124.0532000,1728,7.50,N/A -394326,607,"Amsterdam, NY",42.9387000,-74.1882000,1233,7.50,N/A -394628,610,"Gardnerville Ranchos, NV",38.8946,-119.7513,2067,7.5, -394608,611,"Fort Polk South, LA",31.05,-93.2,928,10.0, -394437,612,"Ca-Β¦on City, CO",38.45,-105.23,1126,10.0, -394906,614,"New Castle, IN",39.4353,-85.3247,900,10.0, -394478,615,"Clovis, NM",34.4048,-103.2052,1045,10.0,8.53% -394919,616,"Norfolk, NE",42.03,-97.42,1166,10.0, -395043,618,"Ruston, LA",32.5232,-92.6379,1049,7.5,5.94% -395097,619,"Sidney, OH",44.7914,-106.9564,1110,10.0, -395008,620,"Pullman, WA",46.7313000,-117.1780000,1161,7.50,5.77% -394527,622,"Del Rio, TX",29.37,-100.9,1156,10.0, -394391,623,"Blackfoot, ID",43.1902,-112.3441,945,7.5, -395017,624,"Red Wing, MN",44.5627000,-92.5338000,1128,7.50,N/A -395144,626,"Tahlequah, OK",35.9200000,-94.9700000,1002,10.00,N/A -394876,628,"Montrose, CO",38.48,-107.88,1408,10.0, -394504,629,"Cortland, NY",42.6012,-76.1805,1066,7.5,1.17% -394887,630,"Mount Sterling, KY",38.0565,-83.9433,850,7.5, -753916,632,"Sandpoint, ID",48.2766000,-116.5535000,1495,7.50,N/A -753865,633,"Bardstown, KY",37.8100000,-85.4700000,875,10.00,N/A -394987,635,"Plymouth, IN",41.3381000,-86.3103000,950,7.50,N/A -394379,637,"Bemidji, MN",47.47,-94.88,1096,10.0, -394961,647,"Paragould, AR",36.05,-90.49,818,10.0, -394427,649,"Burlington, IA",40.8078000,-91.1126000,662,7.50,N/A -394850,651,"Menomonie, WI",44.88,-91.92,939,10.0,3.71% -753918,652,"Shawano, WI",44.7822000,-88.6118000,850,7.50,N/A -394375,654,"Bedford, IN",38.8600000,-86.4900000,775,10.00,N/A -394616,657,"Freeport, IL",42.3,-89.62,767,10.0, -395037,659,"Rolla, MO",37.9514,-91.7715,758,7.5,7.82% -394567,663,"Ellensburg, WA",46.9965,-120.5478,1186,7.5, -394842,666,"McAlester, OK",34.9334,-95.7697,775,7.5, -394886,667,"Mount Pleasant, TX",33.1568,-94.9683,1508,7.5, -395228,668,"Willmar, MN",45.1216000,-95.0431000,850,7.50,N/A -394785,671,"Lewisburg, PA",40.964,-76.8839,1298,10.0, -394349,672,"Auburn, IN",41.3672,-85.0586,887,10.0, -395081,674,"Sedalia, MO",38.7044000,-93.2282000,823,7.50,N/A -394448,675,"Cedartown, GA",34.0173000,-85.2555000,900,10.00,0 -394297,677,"Aberdeen, SD",45.46,-98.47,809,10.0, -395032,678,"Rock Springs, WY",41.5875,-109.2029,1060,7.5,1.16% -395129,680,"Stephenville, TX",32.2207,-98.2023,796,7.5,-1.45% -394891,686,"Mountain Home, AR",40.3934,-82.4858,938,10.0, -394845,690,"McMinnville, TN",35.6834,-85.765,724,7.5, -394341,691,"Astoria, OR",46.1879,-123.8313,1576,7.5,4.65% -394844,694,"McComb, MS",31.2440000,-90.4531000,1350,7.50,0 -394833,696,"Marshalltown, IA",36.6915,-79.8725,934,10.0, -394384,697,"Big Rapids, MI",43.6983,-85.4833,991,10.0, -394354,698,"Austin, MN",43.6666,-92.9746,869,7.5, -395082,699,"Selinsgrove, PA",40.7984000,-76.8619000,1000,7.50,0.00% -394934,701,"Okeechobee, FL",27.2439000,-80.8248000,1400,10.00,N/A -394690,702,"Houghton, MI",47.1211000,-88.5693000,1950,7.50,N/A -394881,703,"Moscow, ID",46.7324,-117.0002,1197,7.5, -395026,705,"Riverton, WY",43.0200000,-108.3800000,899,10.00,N/A -394981,708,"Pittsburg, KS",37.4109,-94.7047,784,7.5, -395203,710,"Warren, PA",41.8434,-79.1445,792,7.5, -394315,711,"Alexandria, MN",45.8836000,-95.3776000,762,7.50,N/A -395178,712,"Urbana, OH",40.11,-83.75,1097,10.0, -395227,715,"Williston, ND",48.1467,-103.617,1323,7.5,6.52% -394300,720,"Ada, OK",34.7745,-96.6789,798,7.5, -394507,722,"Crawfordsville, IN",40.0412,-86.8744,894,7.5,6.01% -394799,727,"Lock Haven, PA",41.137,-77.4469,870,7.5, -394948,730,"Owatonna, MN",44.0900000,-93.2300000,1024,10.00,N/A -394771,733,"Laramie, WY",41.3114,-105.5911,1047,7.5,4.43% -394894,734,"Murray, KY",36.6103,-88.3148,953,7.5, -394617,735,"Fremont, NE",41.4333,-96.4981,1038,7.5, -394382,736,"Bennington, VT",42.8781,-73.1968,1600,7.5, -394603,737,"Fort Dodge, IA",42.4975,-94.168,695,7.5, -394550,740,"Dyersburg, TN",36.0342,-89.3856,625,10.0, -394370,751,"Bay City, TX",28.982,-95.9694,855,7.5,-2.56% -394920,752,"North Platte, NE",41.1239000,-100.7654000,825,7.50,0 -394973,753,"Peru, IN",40.7537,-86.0689,838,7.5, -395187,760,"Vernal, UT",40.4555000,-109.5287000,1200,7.50,0.00% -394430,764,"Butte, MT",46.0038,-112.5347,1083,7.5, -394569,767,"Emporia, KS",38.4039,-96.1817,712,7.5, -394713,768,"Jackson, WY",43.48,-110.76,2781,10.0, -394331,774,"Angola, IN",41.6342000,-85.0008000,962,10.00,0.00% -394535,775,"Dixon, IL",41.8439,-89.4793,821,7.5, -395149,777,"Taos, NM",36.4072000,-105.5731000,2000,7.50,0 -394419,778,"Brookings, SD",44.3114000,-96.7984000,913,7.50,9.17% -394491,780,"Columbus, NE",41.4303,-97.3591,1670,7.5, -394533,785,"Dickinson, ND",46.8792,-102.7896,1178,7.5, -786262,786,"Pella, IA",41.4078,-92.9118,921,7.5,4.27% -394613,790,"Frankfort, IN",40.2792000,-86.5108000,825,7.50,N/A -394835,794,"Martin, TN",36.3434000,-88.8503000,900,7.50,0 -753878,797,"Dayton, TN",35.4937,-85.0122,1000,7.5, -394730,802,"Juneau, AK",58.3019,-134.4197,1660,7.5, -394749,809,"Kingsville, TX",27.5200000,-97.8600000,788,10.00,N/A -753871,811,"Breckenridge, CO",39.4817,-106.0384,2994,7.5, -394310,814,"Albert Lea, MN",43.6500000,-93.3700000,891,10.00,N/A -395093,815,"Sheridan, WY",44.8,-106.96,1100,10.0, -394751,821,"Kirksville, MO",27.5158,-97.8758,647,10.0, -394892,832,"Mountain Home, ID",43.1332,-115.6913,1198,7.5, -753923,849,"The Dalles, OR",45.6,-121.18,1618,10.0, -394758,852,"La Grande, OR",45.3200000,-118.0900000,1159,10.00,N/A -394791,856,"Lexington, NE",40.7808,-99.7418,1287,7.5, -395110,858,"Spearfish, SD",44.4906,-103.859,1269,7.5, -753884,866,"Hailey, ID",43.52,-114.32,2420,10.0, -753921,867,"Steamboat Springs, CO",40.4849,-106.8317,2370,7.5, -395004,872,"Prineville, OR",44.3009,-120.8342,1299,7.5, -845169,874,"Rockport, TX",28.0300000,-97.0500000,1070,10.00,N/A -394687,875,"Hood River, OR",45.7054,-121.5215,1895,7.5, -394868,878,"Mitchell, SD",43.7094,-98.0298,771,10.0, -395198,882,"Wahpeton, ND",46.2641,-96.6056,894,7.5,14.39% -395130,890,"Sterling, CO",40.6256,-103.2077,750,7.5, -394371,891,"Beatrice, NE",40.2686000,-96.7468000,1175,7.50,0.00% -394718,892,"Jamestown, ND",46.9105,-98.7084,1234,7.5,1.67% -394996,915,"Portales, NM",34.1862,-103.336,821,7.5, -753880,930,"Fairfield, IA",41.0089000,-91.9626000,724,7.50,N/A