diff --git a/planet/cli/data.py b/planet/cli/data.py
index 46a9603..2591b32 100644
--- a/planet/cli/data.py
+++ b/planet/cli/data.py
@@ -418,19 +418,27 @@ async def search_run(ctx, search_id, sort, limit, pretty):
 @click.argument("item_types",
                 type=types.CommaSeparatedString(),
                 callback=check_item_types)
-@click.argument('interval', type=click.Choice(STATS_INTERVAL))
-@click.argument("filter", type=types.JSON())
-async def stats(ctx, item_types, interval, filter):
+@click.option(
+    '--filter',
+    type=types.JSON(),
+    required=True,
+    help="""Filter to apply to search. Can be a json string, filename,
+         or '-' for stdin.""")
+@click.option('--interval',
+              type=click.Choice(STATS_INTERVAL),
+              required=True,
+              help='The size of the histogram date buckets.')
+async def stats(ctx, item_types, filter, interval):
     """Get a bucketed histogram of items matching the filter.
 
     This function returns a bucketed histogram of results based on the
-    item_types, interval, and json filter specified (using file or stdin).
+    item_types, interval, and filter specified.
 
     """
     async with data_client(ctx) as cl:
         items = await cl.get_stats(item_types=item_types,
-                                   interval=interval,
-                                   search_filter=filter)
+                                   search_filter=filter,
+                                   interval=interval)
         echo_json(items)
 
 
diff --git a/planet/clients/orders.py b/planet/clients/orders.py
index 584df8d..e5e8334 100644
--- a/planet/clients/orders.py
+++ b/planet/clients/orders.py
@@ -265,8 +265,7 @@ class OrdersClient:
                              order_id: str,
                              directory: Path = Path('.'),
                              overwrite: bool = False,
-                             progress_bar: bool = False,
-                             checksum: Optional[str] = None) -> List[Path]:
+                             progress_bar: bool = False) -> List[Path]:
         """Download all assets in an order.
 
         Parameters:

diff --git a/tests/integration/test_data_cli.py b/tests/integration/test_data_cli.py
index 3016472..3bddc70 100644
--- a/tests/integration/test_data_cli.py
+++ b/tests/integration/test_data_cli.py
@@ -771,16 +771,18 @@ def test_data_stats_invalid_filter(invoke, filter):
     interval = "hour"
     item_type = 'PSScene'
     runner = CliRunner()
-    result = invoke(["stats", item_type, interval, filter], runner=runner)
+    result = invoke(
+        ["stats", item_type, f'--interval={interval}', f'--filter={filter}'],
+        runner=runner)
     assert result.exit_code == 2
 
 
 @respx.mock
 @pytest.mark.parametrize("item_types",
                          ['PSScene', 'SkySatScene', 'PSScene, SkySatScene'])
-@pytest.mark.parametrize("interval, exit_code", [(None, 1), ('hou', 2),
+@pytest.mark.parametrize("interval, exit_code", [(None, 2), ('hou', 2),
                                                  ('hour', 0)])
-def test_data_stats_invalid_interval(invoke, item_types, interval, exit_code):
+def test_data_stats_interval(invoke, item_types, interval, exit_code):
     """Test for planet data stats. Test with multiple item_types.
     Test should succeed with valid interval, and fail with invalid interval."""
     filter = {
@@ -797,10 +799,11 @@ def test_data_stats_invalid_interval(invoke, item_types, interval, exit_code):
                                }]})
     respx.post(TEST_STATS_URL).return_value = mock_resp
 
-    runner = CliRunner()
-    result = invoke(["stats", item_types, interval, json.dumps(filter)],
-                    runner=runner)
+    args = ["stats", item_types, f'--filter={json.dumps(filter)}']
+    if interval:
+        args.append(f'--interval={interval}')
 
+    result = invoke(args)
     assert result.exit_code == exit_code
 
 
@@ -828,9 +831,12 @@ def test_data_stats_success(invoke, item_types, interval):
                                }]})
     respx.post(TEST_STATS_URL).return_value = mock_resp
 
-    runner = CliRunner()
-    result = invoke(["stats", item_types, interval, json.dumps(filter)],
-                    runner=runner)
+    result = invoke([
+        "stats",
+        item_types,
+        f'--interval={interval}',
+        f'--filter={json.dumps(filter)}'
+    ])
     assert result.exit_code == 0
 
 

Remove checksum argument from orders.download_order()
`orders.download_order()` has a `checksum` argument, which is never used, which may be misleading to a user if they mark `checksum=True`. 

- In the SDK, the checksum is done in a separate call (e.g., `orders.download_order()` then `orders.validate_checksum()`). 
- In the CLI, the checksum is just a flag baked into the CLI's functionality.

**To do:** Remove `checksum` argument from `orders.download_order()` to avoid confusion.
tests/integration/test_data_cli.py::test_data_stats_interval[hour-0-PSScene] tests/integration/test_data_cli.py::test_data_stats_interval[hour-0-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_interval[hour-0-PSScene, tests/integration/test_data_cli.py::test_data_stats_success[hour-PSScene] tests/integration/test_data_cli.py::test_data_stats_success[hour-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_success[hour-PSScene, tests/integration/test_data_cli.py::test_data_stats_success[day-PSScene] tests/integration/test_data_cli.py::test_data_stats_success[day-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_success[day-PSScene, tests/integration/test_data_cli.py::test_data_stats_success[week-PSScene] tests/integration/test_data_cli.py::test_data_stats_success[week-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_success[week-PSScene, tests/integration/test_data_cli.py::test_data_stats_success[month-PSScene] tests/integration/test_data_cli.py::test_data_stats_success[month-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_success[month-PSScene, tests/integration/test_data_cli.py::test_data_stats_success[year-PSScene] tests/integration/test_data_cli.py::test_data_stats_success[year-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_success[year-PSScene,
tests/integration/test_data_cli.py::test_data_command_registered tests/integration/test_data_cli.py::test_data_search_command_registered tests/integration/test_data_cli.py::test_data_filter_defaults tests/integration/test_data_cli.py::test_data_filter_permission tests/integration/test_data_cli.py::test_data_filter_std_quality tests/integration/test_data_cli.py::test_data_filter_asset[ortho_analytic_8b_sr-expected0] tests/integration/test_data_cli.py::test_data_filter_asset[ortho_analytic_8b_sr,ortho_analytic_4b_sr-expected1] tests/integration/test_data_cli.py::test_data_filter_asset[ortho_analytic_8b_sr tests/integration/test_data_cli.py::test_data_filter_date_range_success tests/integration/test_data_cli.py::test_data_filter_date_range_invalid tests/integration/test_data_cli.py::test_data_filter_geom[geom_geojson] tests/integration/test_data_cli.py::test_data_filter_geom[feature_geojson] tests/integration/test_data_cli.py::test_data_filter_geom[featurecollection_geojson] tests/integration/test_data_cli.py::test_data_filter_number_in_success tests/integration/test_data_cli.py::test_data_filter_number_in_badparam tests/integration/test_data_cli.py::test_data_filter_range tests/integration/test_data_cli.py::test_data_filter_string_in tests/integration/test_data_cli.py::test_data_filter_update tests/integration/test_data_cli.py::test_data_search_cmd_item_types[PSScene-True] tests/integration/test_data_cli.py::test_data_search_cmd_item_types[SkySatScene-True] tests/integration/test_data_cli.py::test_data_search_cmd_item_types[PSScene, tests/integration/test_data_cli.py::test_data_search_cmd_item_types[INVALID-False] tests/integration/test_data_cli.py::test_data_search_cmd_filter_invalid_json[{1:1}] tests/integration/test_data_cli.py::test_data_search_cmd_filter_invalid_json[{"foo"}] tests/integration/test_data_cli.py::test_data_search_cmd_filter_success tests/integration/test_data_cli.py::test_data_search_cmd_sort_success tests/integration/test_data_cli.py::test_data_search_cmd_sort_invalid tests/integration/test_data_cli.py::test_data_search_cmd_limit[None-100] tests/integration/test_data_cli.py::test_data_search_cmd_limit[0-102] tests/integration/test_data_cli.py::test_data_search_cmd_limit[1-1] tests/integration/test_data_cli.py::test_data_search_create_filter_invalid_json[PSScene-{1:1}] tests/integration/test_data_cli.py::test_data_search_create_filter_invalid_json[PSScene-{"foo"}] tests/integration/test_data_cli.py::test_data_search_create_filter_invalid_json[SkySatScene-{1:1}] tests/integration/test_data_cli.py::test_data_search_create_filter_invalid_json[SkySatScene-{"foo"}] tests/integration/test_data_cli.py::test_data_search_create_filter_invalid_json[PSScene, tests/integration/test_data_cli.py::test_data_search_create_filter_success[PSScene] tests/integration/test_data_cli.py::test_data_search_create_filter_success[SkySatScene] tests/integration/test_data_cli.py::test_data_search_create_filter_success[PSScene, tests/integration/test_data_cli.py::test_data_search_create_daily_email tests/integration/test_data_cli.py::test_data_search_list_basic[0-4] tests/integration/test_data_cli.py::test_data_search_list_basic[3-3] tests/integration/test_data_cli.py::test_data_search_list_sort[created tests/integration/test_data_cli.py::test_data_search_list_sort[notvalid--False] tests/integration/test_data_cli.py::test_data_search_list_searchtype[any--True] tests/integration/test_data_cli.py::test_data_search_list_searchtype[saved-?search_type=saved-True] tests/integration/test_data_cli.py::test_data_search_list_searchtype[notvalid--False] tests/integration/test_data_cli.py::test_data_search_run_basic[0-3-286469f0b27c476e96c3c4e561f59664-True] tests/integration/test_data_cli.py::test_data_search_run_basic[0-3-invalid-False] tests/integration/test_data_cli.py::test_data_search_run_basic[2-2-286469f0b27c476e96c3c4e561f59664-True] tests/integration/test_data_cli.py::test_data_search_run_basic[2-2-invalid-False] tests/integration/test_data_cli.py::test_data_search_run_sort[published tests/integration/test_data_cli.py::test_data_search_run_sort[acquired tests/integration/test_data_cli.py::test_data_search_run_sort[invalid--False] tests/integration/test_data_cli.py::test_data_stats_invalid_filter[{1:1}] tests/integration/test_data_cli.py::test_data_stats_invalid_filter[{"foo"}] tests/integration/test_data_cli.py::test_data_stats_interval[None-2-PSScene] tests/integration/test_data_cli.py::test_data_stats_interval[None-2-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_interval[None-2-PSScene, tests/integration/test_data_cli.py::test_data_stats_interval[hou-2-PSScene] tests/integration/test_data_cli.py::test_data_stats_interval[hou-2-SkySatScene] tests/integration/test_data_cli.py::test_data_stats_interval[hou-2-PSScene, tests/integration/test_data_cli.py::test_search_get tests/integration/test_data_cli.py::test_search_get_id_not_found tests/integration/test_data_cli.py::test_search_delete_success tests/integration/test_data_cli.py::test_search_delete_nonexistant_search_id tests/integration/test_data_cli.py::test_search_update_success[PSScene] tests/integration/test_data_cli.py::test_search_update_success[SkySatScene] tests/integration/test_data_cli.py::test_search_update_success[PSScene, tests/integration/test_data_cli.py::test_search_update_fail tests/integration/test_data_cli.py::test_asset_download_default[False-False] tests/integration/test_data_cli.py::test_asset_download_default[True-False] tests/integration/test_data_cli.py::test_asset_download_default[True-True] tests/integration/test_data_cli.py::test_asset_download_default[False-True] tests/integration/test_data_cli.py::test_asset_activate tests/integration/test_data_cli.py::test_asset_wait