diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/basin/BasinData.java b/src/main/java/gov/usgs/earthquake/nshmp/www/basin/BasinData.java
index a0b213547d2b218240f4e7d8965894e0ed4af9d1..98b85caee03acb0de695c993b0f09e4db3a85c55 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/basin/BasinData.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/basin/BasinData.java
@@ -112,7 +112,7 @@ public class BasinData {
 
     double lat = Maths.round(loc.latitude, BASIN_DATA_SCALE);
     double lon = Maths.round(loc.longitude, BASIN_DATA_SCALE);
-    loc = Location.create(lat, lon);
+    loc = Location.create(lon, lat);
 
     BasinValues basinValues = basinRecords.get(loc);
     checkState(basinValues != null, "Location [%s] not found in basin [%s]", loc, basin.id);
@@ -178,7 +178,7 @@ public class BasinData {
         }
       }
 
-      return new BasinRecord(Location.create(lat, lon), z1p0, z2p5);
+      return new BasinRecord(Location.create(lon, lat), z1p0, z2p5);
     }
   }
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/basin/Basins.java b/src/main/java/gov/usgs/earthquake/nshmp/www/basin/Basins.java
index 6641de53eeb7c8a71ba45a24c9cc4409f31700c9..2c44d9647bf63d85c38d014642988f393f6f16f0 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/basin/Basins.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/basin/Basins.java
@@ -65,7 +65,7 @@ public class Basins implements Iterable<Basins.BasinRegion> {
    * @param longitude in degrees.
    */
   public BasinRegion findRegion(double latitude, double longitude) {
-    Location loc = Location.create(latitude, longitude);
+    Location loc = Location.create(longitude, latitude);
 
     return basinRegions.stream()
         .filter((basin) -> basin.region.contains(loc))
@@ -115,9 +115,9 @@ public class Basins implements Iterable<Basins.BasinRegion> {
 
     private BasinRegion(Feature feature) {
       Properties properties = feature.properties();
-      title = properties.getString("title");
-      basin = Basin.fromId(properties.getString("id"));
-      model = properties.getString("defaultModel");
+      title = properties.getString("title").orElseThrow();
+      basin = Basin.fromId(properties.getString("id").orElseThrow());
+      model = properties.getString("defaultModel").orElseThrow();
       region = Regions.create(
           title,
           feature.asPolygonBorder(),
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/services/BasinTermService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/services/BasinTermService.java
index b81b8522ab681ee97ed017112be41ac3d601c2c8..931e7f58f9490632d1f73ad3f02faa6edb354527 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/services/BasinTermService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/services/BasinTermService.java
@@ -33,7 +33,7 @@ import io.micronaut.http.HttpResponse;
 
 /**
  * Service handler for {@code BasinTermController}
- * 
+ *
  * @author U.S. Geological Survey
  */
 public class BasinTermService {
@@ -145,7 +145,7 @@ public class BasinTermService {
       return processNullResult(requestData, urlHelper);
     }
 
-    var loc = Location.create(requestData.latitude, requestData.longitude);
+    var loc = Location.create(requestData.longitude, requestData.latitude);
     var basin = Basin.fromId(requestData.basinRegion.id);
     var basinValues = BASIN_DATA.getBasinValues(basin, loc);
     var values = GSON.toJsonTree(basinValues, BasinValues.class);
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/site/NshmpSite.java b/src/main/java/gov/usgs/earthquake/nshmp/www/site/NshmpSite.java
index 275516027f4487241465770281ae91af6eb6f83e..d388c2c9025a1337cf7e5f3f319bdae60dca3cfd 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/site/NshmpSite.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/site/NshmpSite.java
@@ -324,7 +324,7 @@ public enum NshmpSite implements NamedLocation {
   private final String label;
 
   private NshmpSite(double lon, double lat) {
-    this.location = Location.create(lat, lon);
+    this.location = Location.create(lon, lat);
     this.state = UsRegion.valueOf(name().substring(name().lastIndexOf('_') + 1));
     this.label = createLabel();
   }
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/www/BasinTermControllerTests.java b/src/test/java/gov/usgs/earthquake/nshmp/www/BasinTermControllerTests.java
index fee0a634b658ab9ac0c15b3d209c3bf37baa648d..4f687b8deace4ad6c21c27d6345df415da5e9884 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/www/BasinTermControllerTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/www/BasinTermControllerTests.java
@@ -7,6 +7,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.lang.reflect.Type;
 import java.util.Map.Entry;
+import java.util.Optional;
+import java.util.OptionalDouble;
 
 import javax.inject.Inject;
 
@@ -72,7 +74,7 @@ public class BasinTermControllerTests {
   })
   public final void httpBasinValuesTests(
       Basin basin, double lon, double lat, Double z1p0, Double z2p5) {
-    var loc = Location.create(lat, lon);
+    var loc = Location.create(lon, lat);
 
     // Slash delimited HTTP GET test
     var httpSlash = controller.doGetBasinSlash(request, loc.longitude, loc.latitude);
@@ -147,20 +149,25 @@ public class BasinTermControllerTests {
       assertEquals(entry.getKey().latitude, feature.asPoint().latitude, 0);
       assertEquals(entry.getKey(), feature.asPoint());
 
-      assertTrue(props.containsKey(Key.BASIN.toString()));
-      assertEquals(basin.name(), props.get(Key.BASIN.toString(), String.class));
+      Optional<String> basinName = props.getString(Key.BASIN.toString());
+      assertTrue(basinName.isPresent());
+      assertEquals(basin.name(), basinName.get());
 
-      assertTrue(props.containsKey(Key.NAME.toString()));
-      assertEquals(basin.label, props.get(Key.NAME.toString(), String.class));
+      Optional<String> name = props.getString(Key.NAME.toString());
+      assertTrue(name.isPresent());
+      assertEquals(basin.label, name.get());
 
-      assertTrue(props.containsKey(Key.MODEL.toString()));
-      assertEquals(region.model, props.get(Key.MODEL.toString(), String.class));
+      Optional<String> model = props.getString(Key.MODEL.toString());
+      assertTrue(model.isPresent());
+      assertEquals(region.model, model.get());
 
-      assertTrue(props.containsKey(Key.Z1P0.toString()));
-      assertEquals(basinValue.z1p0.value, (Double) props.get(Key.Z1P0.toString()), 0);
+      OptionalDouble z1p0 = props.getDouble(Key.Z1P0.toString());
+      assertTrue(z1p0.isPresent());
+      assertEquals(basinValue.z1p0.value, z1p0.getAsDouble(), 0);
 
-      assertTrue(props.containsKey(Key.Z2P5.toString()));
-      assertEquals(basinValue.z2p5.value, (Double) props.get(Key.Z2P5.toString()), 0);
+      OptionalDouble z2p5 = props.getDouble(Key.Z2P5.toString());
+      assertTrue(z2p5.isPresent());
+      assertEquals(basinValue.z2p5.value, z2p5.getAsDouble(), 0);
     }
   }
 
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinDataTests.java b/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinDataTests.java
index 4738356ed5df9906bbe087f271425f26f53e8d5c..5815c38d47d5a153c46bef1b2cc17100ae609ec0 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinDataTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinDataTests.java
@@ -45,7 +45,7 @@ public class BasinDataTests {
   })
   public final void getBasinValuesTests(Basin basin, double lon, double lat,
       double z1p0, double z2p5) {
-    Location loc = Location.create(lat, lon);
+    Location loc = Location.create(lon, lat);
     BasinValues actual = BASIN_DATA.getBasinValues(basin, loc);
 
     assertEquals(z1p0, actual.z1p0.value, 0);
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinsTests.java b/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinsTests.java
index a085ec0c2161894cf2761c56e72b766ec472cf0e..11a83f1e7e4e9466593c15158eb0305bdc6e3ef5 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinsTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/www/basin/BasinsTests.java
@@ -18,10 +18,10 @@ import gov.usgs.earthquake.nshmp.www.basin.Basins.BasinRegion;
 public class BasinsTests {
 
   private static final Basins BASINS = Basins.getBasins();
-  private static final Location BAY_AREA = Location.create(38.53, -123.02);
-  private static final Location LA = Location.create(34.43, -119.96);
-  private static final Location PUGET = Location.create(48, -123.5);
-  private static final Location WASATCH = Location.create(41.5, -112.6);
+  private static final Location BAY_AREA = Location.create(-123.02, 38.53);
+  private static final Location LA = Location.create(-119.96, 34.43);
+  private static final Location PUGET = Location.create(-123.5, 48);
+  private static final Location WASATCH = Location.create(-112.6, 41.5);
 
   @Test
   public final void findRegionTests() {