diff --git a/src/penn_chime/model/parameters.py b/src/penn_chime/model/parameters.py
index 72f39e1..b15d559 100644
--- a/src/penn_chime/model/parameters.py
+++ b/src/penn_chime/model/parameters.py
@@ -137,6 +137,7 @@ VALIDATORS = {
     "ventilated": ValDisposition,
     "hospitalized": ValDisposition,
     "icu": ValDisposition,
+    "use_log_scale": OptionalValue
 }
 
 
@@ -161,6 +162,7 @@ HELP = {
     "relative_contact_rate": "Social distancing reduction rate: 0.0 - 1.0",
     "ventilated_days": "Average days on ventilator",
     "ventilated_rate": "Ventilated Rate: 0.0 - 1.0",
+    "use_log_scale": "Flag to use logarithmic scale on charts instead of linear scale."
 }
 
 
@@ -168,9 +170,9 @@ ARGS = (
     (
         "parameters",
         str,
-        None,
-        None,
-        False,
+        None, # Min value
+        None, # Max value
+        False, # Whether it is required or optional.
     ),
     (
         "current_hospitalized",
@@ -298,15 +300,24 @@ ARGS = (
         1.0,
         True,
     ),
+    (
+        "use_log_scale",
+        bool,
+        None,
+        None,
+        False
+    )
 )
 
 
 def to_cli(name):
     return "--" + name.replace('_', '-')
 
-
 class Parameters:
-    """Parameters."""
+    """
+    Object containing all of the parameters that can be adjusted by the user, either from the command line or using
+    the side bar of the web app.
+    """
 
     @classmethod
     def parser(cls):
@@ -315,11 +326,20 @@ class Parameters:
 
         for name, cast, min_value, max_value, required in ARGS:
             arg = to_cli(name)
-            parser.add_argument(
-                arg,
-                type=validator(arg, cast, min_value, max_value, required),
-                help=HELP.get(name),
-            )
+            if cast == bool:
+                # This argument is a command-line flag and does not need validation.
+                parser.add_argument(
+                    arg,
+                    action='store_true',
+                    help=HELP.get(name),
+                )
+            else:
+                # Use a custom validator for any arguments that take in values.
+                parser.add_argument(
+                    arg,
+                    type=validator(arg, cast, min_value, max_value, required),
+                    help=HELP.get(name),
+                )
         return parser
 
     @classmethod
@@ -396,6 +416,7 @@ class Parameters:
         self.relative_contact_rate = None
         self.recovered = None
         self.ventilated = None
+        self.use_log_scale = False
 
         passed_and_default_parameters = {}
         for key, value in kwargs.items():
diff --git a/src/penn_chime/view/charts.py b/src/penn_chime/view/charts.py
index 394f226..bb4eca2 100644
--- a/src/penn_chime/view/charts.py
+++ b/src/penn_chime/view/charts.py
@@ -1,6 +1,6 @@
 from typing import Dict, Optional
 
-from altair import Chart
+from altair import Chart, Scale
 import pandas as pd
 import i18n
 import numpy as np
@@ -9,12 +9,24 @@ from ..constants import DATE_FORMAT
 
 
 def build_admits_chart(
-    *, alt, admits_floor_df: pd.DataFrame, max_y_axis: Optional[int] = None
+    *, alt, admits_floor_df: pd.DataFrame, max_y_axis: Optional[int] = None, use_log_scale: bool = False
 ) -> Chart:
-    """Build admits chart."""
-    y_scale = alt.Scale()
-    if max_y_axis is not None:
-        y_scale.domain = (0, max_y_axis)
+    """
+    This builds the "New Admissions" chart, projecting daily admissions over time.
+
+    Args:
+        alt: Reference to Altair package.
+        admits_floor_df: Pandas data frame containing three columns: "admits_hospitalized", "admits_icu", and
+        "admits_ventilated".
+        max_y_axis: Optional maximum value for the Y axis of the chart.
+        use_log_scale: Set to true to use a logarithmic scale on the Y axis. Default is linear scale.
+
+    Returns: The newly created chart.
+
+    """
+
+    adjusted_admits_floor_df = __adjust_data_for_log_scale(admits_floor_df) if use_log_scale else admits_floor_df
+    y_scale = __build_y_scale(alt, max_y_axis, use_log_scale)
 
     x = dict(shorthand="date:T", title=i18n.t("charts-date"), axis=alt.Axis(format=(DATE_FORMAT)))
     y = dict(shorthand="value:Q", title=i18n.t("charts-daily-admissions"), scale=y_scale)
@@ -40,7 +52,7 @@ def build_admits_chart(
         .transform_filter(alt.datum.day == 0)
         .mark_rule(color="black", opacity=0.35, size=2)
     )
-    admits_floor_df_renamed = admits_floor_df.rename({
+    admits_floor_df_renamed = adjusted_admits_floor_df.rename({
         "admits_hospitalized": i18n.t("admits_hospitalized"),
         "admits_icu": i18n.t("admits_icu"),
         "admits_ventilated": i18n.t("admits_ventilated")
@@ -53,12 +65,24 @@ def build_admits_chart(
 
 
 def build_census_chart(
-    *, alt, census_floor_df: pd.DataFrame, max_y_axis: Optional[int] = None
+    *, alt, census_floor_df: pd.DataFrame, max_y_axis: Optional[int] = None, use_log_scale: bool = False
 ) -> Chart:
-    """Build census chart."""
-    y_scale = alt.Scale()
-    if max_y_axis:
-        y_scale.domain = (0, max_y_axis)
+    """
+    This builds the "Admitted Patients" census chart, projecting total number of patients in the hospital over time.
+
+    Args:
+        alt: Reference to Altair package.
+        census_floor_df: Pandas data frame containing three columns: "census_hospitalized", "census_icu", and
+        "census_ventilated".
+        max_y_axis: Optional maximum value for the Y axis of the chart.
+        use_log_scale: Set to true to use a logarithmic scale on the Y axis. Default is linear scale.
+
+    Returns: The newly created chart.
+
+    """
+
+    adjusted_census_floor_df = __adjust_data_for_log_scale(census_floor_df) if use_log_scale else census_floor_df
+    y_scale = __build_y_scale(alt, max_y_axis, use_log_scale)
 
     x = dict(shorthand="date:T", title=i18n.t("charts-date"), axis=alt.Axis(format=(DATE_FORMAT)))
     y = dict(shorthand="value:Q", title=i18n.t("charts-census"), scale=y_scale)
@@ -84,7 +108,7 @@ def build_census_chart(
         .transform_filter(alt.datum.day == 0)
         .mark_rule(color="black", opacity=0.35, size=2)
     )
-    census_floor_df_renamed = census_floor_df.rename({
+    census_floor_df_renamed = adjusted_census_floor_df.rename({
         "census_hospitalized": i18n.t("census_hospitalized"),
         "census_icu": i18n.t("census_icu"),
         "census_ventilated": i18n.t("census_ventilated")
@@ -97,12 +121,24 @@ def build_census_chart(
 
 
 def build_sim_sir_w_date_chart(
-    *, alt, sim_sir_w_date_floor_df: pd.DataFrame, max_y_axis: Optional[int] = None
+    *, alt, sim_sir_w_date_floor_df: pd.DataFrame, max_y_axis: Optional[int] = None, use_log_scale: bool = False
 ) -> Chart:
-    """Build sim sir w date chart."""
-    y_scale = alt.Scale()
-    if max_y_axis is not None:
-        y_scale.domain = (0, max_y_axis)
+    """
+    This builds the "Susceptible, Infected, and Recovered" chart, projecting the number of those individuals in the
+    hospital's region over time.
+
+    Args:
+        alt: Reference to the Altair package.
+        sim_sir_w_date_floor_df: A Pandas data frame with columns named "susceptible", "infected", and "recovered".
+        max_y_axis: Optional maximum value for the Y axis of the chart.
+        use_log_scale: Set to true to use a logarithmic scale on the Y axis. Default is linear scale.
+
+    Returns: The newly created chart.
+
+    """
+
+    adjusted_sim_sir_w_date_floor_df = __adjust_data_for_log_scale(sim_sir_w_date_floor_df) if use_log_scale else sim_sir_w_date_floor_df
+    y_scale = __build_y_scale(alt, max_y_axis, use_log_scale)
 
     x = dict(shorthand="date:T", title=i18n.t("charts-date"), axis=alt.Axis(format=(DATE_FORMAT)))
     y = dict(shorthand="value:Q", title=i18n.t("charts-count"), scale=y_scale)
@@ -128,7 +164,7 @@ def build_sim_sir_w_date_chart(
         .transform_filter(alt.datum.day == 0)
         .mark_rule(color="black", opacity=0.35, size=2)
     )
-    sim_sir_w_date_floor_df_renamed = sim_sir_w_date_floor_df.rename({
+    sim_sir_w_date_floor_df_renamed = adjusted_sim_sir_w_date_floor_df.rename({
         "susceptible": i18n.t("susceptible"),
         "infected": i18n.t("infected"),
         "recovered": i18n.t("recovered")
@@ -146,3 +182,37 @@ def build_table(
     table_df.date = table_df.date.dt.strftime(DATE_FORMAT)
     table_df_renamed = table_df.rename(labels, axis=1)
     return table_df_renamed
+
+
+def __adjust_data_for_log_scale(dataframe: pd.DataFrame) -> pd.DataFrame:
+    """
+    This will clean and adjust some of the data so that Altair can plot it using a logarithmic scale. Altair does not
+    allow zero values on the Y axis when plotting with a logarithmic scale, as log(0) is undefined.
+
+    Args:
+        dataframe: The data to plot on the chart.
+
+    Returns: A new data frame with the appropriate adjustments for plotting on a log scale.
+
+    """
+    return dataframe.replace(0, float('nan'))  # We use NaN so that the values will not appear at all on the chart.
+
+
+def __build_y_scale(alt, max_y_axis: Optional[int] = None, use_log_scale: bool = False) -> Scale:
+    """
+    Creates the Y axis of the chart, taking into account some of the configuration parameters set by the user.
+
+    Args:
+        alt: Reference to Altair package.
+        max_y_axis: The maximum value of the Y axis. This is optional.
+        use_log_scale: Whether to use a logarithmic scale instead of a linear scale.
+
+    Returns: A newly created Scale instance.
+
+    """
+    scale_type = 'log' if use_log_scale else 'linear'
+    y_scale = alt.Scale(type=scale_type)
+    if max_y_axis is not None:
+        y_scale.domain = (0, max_y_axis)
+
+    return y_scale
diff --git a/src/penn_chime/view/st_app.py b/src/penn_chime/view/st_app.py
index 26811d2..eade331 100644
--- a/src/penn_chime/view/st_app.py
+++ b/src/penn_chime/view/st_app.py
@@ -49,7 +49,8 @@ def main():
 
     st.subheader(i18n.t("app-new-admissions-title"))
     st.markdown(i18n.t("app-new-admissions-text"))
-    admits_chart = build_admits_chart(alt=alt, admits_floor_df=m.admits_floor_df, max_y_axis=p.max_y_axis)
+    admits_chart = build_admits_chart(alt=alt, admits_floor_df=m.admits_floor_df, max_y_axis=p.max_y_axis, use_log_scale=p.use_log_scale)
+
     st.altair_chart(admits_chart, use_container_width=True)
     display_download_link(
         st,
@@ -60,7 +61,8 @@ def main():
 
     st.subheader(i18n.t("app-admitted-patients-title"))
     st.markdown(i18n.t("app-admitted-patients-text"))
-    census_chart = build_census_chart(alt=alt, census_floor_df=m.census_floor_df, max_y_axis=p.max_y_axis)
+    census_chart = build_census_chart(alt=alt, census_floor_df=m.census_floor_df, max_y_axis=p.max_y_axis, use_log_scale=p.use_log_scale)
+
     st.altair_chart(census_chart, use_container_width=True)
     display_download_link(
         st,
@@ -93,7 +95,8 @@ def main():
 
     st.subheader(i18n.t("app-SIR-title"))
     st.markdown(i18n.t("app-SIR-text"))
-    sim_sir_w_date_chart = build_sim_sir_w_date_chart(alt=alt, sim_sir_w_date_floor_df=m.sim_sir_w_date_floor_df)
+    sim_sir_w_date_chart = build_sim_sir_w_date_chart(alt=alt, sim_sir_w_date_floor_df=m.sim_sir_w_date_floor_df, use_log_scale=p.use_log_scale)
+
     st.altair_chart(sim_sir_w_date_chart, use_container_width=True)
     display_download_link(
         st,
diff --git a/src/penn_chime/view/st_display.py b/src/penn_chime/view/st_display.py
index 86a734f..6f5a1ea 100644
--- a/src/penn_chime/view/st_display.py
+++ b/src/penn_chime/view/st_display.py
@@ -166,10 +166,10 @@ class CheckboxInput(Input):
 
 
 def display_sidebar(st, d: Parameters) -> Parameters:
-    # Initialize variables
-    # these functions create input elements and bind the values they are set to
-    # to the variables they are set equal to
-    # it's kindof like ember or angular if you are familiar with those
+    """
+    Initializes the UI in the sidebar. These function calls create input elements, and bind the values they are set to
+    to the appropriate variables. It's similar to Ember or Angular, if you are familiar with those frameworks.
+    """
 
     st_obj = st.sidebar
     # used_widget_key = st.get_last_used_widget_key ( )
@@ -361,7 +361,9 @@ def display_sidebar(st, d: Parameters) -> Parameters:
         max_y_axis = max_y_axis_input()
 
     current_date = current_date_input()
-    #Subscribe implementation
+    use_log_scale = st.sidebar.checkbox(label="Use logarithmic scale on charts instead of linear scale.", value=d.use_log_scale)
+
+    # Subscribe implementation
     subscribe(st_obj)
 
     return Parameters(
@@ -386,9 +388,10 @@ def display_sidebar(st, d: Parameters) -> Parameters:
         ventilated=Disposition.create(
             rate=ventilated_rate,
             days=ventilated_days),
+        use_log_scale=use_log_scale
     )
 
-#Read the environment variables and cteate json key object to use with ServiceAccountCredentials
+# Read the environment variables and create json key object to use with ServiceAccountCredentials
 def readGoogleApiSecrets():
     client_secret = {}
     os.getenv

[dash] Add log scale checkbox in sidebar
Put it at the bottom of the sidebar. When checked switch the y-axis scale to log scale. Equivalent to [`altair.ScaleType`](https://altair-viz.github.io/user_guide/generated/core/altair.ScaleType.html#altair.ScaleType)`== 'log'`
diff --git a/tests/penn_chime/view/test_charts.py b/tests/penn_chime/view/test_charts.py
index ce96e88..7419353 100644
--- a/tests/penn_chime/view/test_charts.py
+++ b/tests/penn_chime/view/test_charts.py
@@ -1,5 +1,6 @@
 import altair as alt
 import pytest
+import math
 import os
 import i18n
 
@@ -15,10 +16,18 @@ from penn_chime.view.charts import (
 
 DISPOSITION_KEYS = ("hospitalized", "icu", "ventilated")
 
+# These are the localized column names for the dataframe sent to the charting library.
+admits_icu_key = i18n.t("admits_icu")
+admits_hospitalized_key = i18n.t("admits_hospitalized")
+admits_ventilated_key = i18n.t("admits_ventilated")
+census_icu_key = i18n.t("census_icu")
+census_hospitalized_key = i18n.t("census_hospitalized")
+census_ventilated_key = i18n.t("census_ventilated")
+
 def test_admits_chart(admits_floor_df):
     chart = build_admits_chart(alt=alt, admits_floor_df=admits_floor_df)
     assert isinstance(chart, (alt.Chart, alt.LayerChart))
-    assert round(chart.data.iloc[40][i18n.t("admits_icu")], 0) == 38
+    assert round(chart.data.iloc[40][admits_icu_key], 0) == 38
 
     # test fx call with no params
     with pytest.raises(TypeError):
@@ -28,9 +37,60 @@ def test_admits_chart(admits_floor_df):
 def test_census_chart(census_floor_df):
     chart = build_census_chart(alt=alt, census_floor_df=census_floor_df)
     assert isinstance(chart, (alt.Chart, alt.LayerChart))
-    assert chart.data.iloc[1][i18n.t("census_hospitalized")] == 3
-    assert chart.data.iloc[49][i18n.t("census_ventilated")] == 365
+    assert chart.data.iloc[1][census_hospitalized_key] == 3
+    assert chart.data.iloc[49][census_ventilated_key] == 365
 
     # test fx call with no params
     with pytest.raises(TypeError):
         build_census_chart()
+
+def test_admits_chart_log_scale(admits_floor_df):
+    """
+    Verifies that if the log scale is used, then the values on the chart are adjusted appropriately.
+
+    Args:
+        admits_floor_df: Sample admission data.
+
+    """
+    chart = build_admits_chart(alt=alt, admits_floor_df=admits_floor_df, use_log_scale=True)
+
+    # We check a few values to verify that zero was replaced with NaN.
+    assert chart.data.iloc[1][admits_hospitalized_key] == 2
+    assert math.isnan(chart.data.iloc[1][admits_icu_key])
+    assert math.isnan(chart.data.iloc[1][admits_ventilated_key])
+
+    assert chart.data.iloc[2][admits_hospitalized_key] == 2
+    assert math.isnan(chart.data.iloc[2][admits_icu_key])
+    assert math.isnan(chart.data.iloc[2][admits_ventilated_key])
+
+    assert chart.data.iloc[3][admits_hospitalized_key] == 3
+    assert math.isnan(chart.data.iloc[3][admits_icu_key])
+    assert math.isnan(chart.data.iloc[3][admits_ventilated_key])
+
+    assert chart.data.iloc[4][admits_hospitalized_key] == 3
+    assert chart.data.iloc[4][admits_icu_key] == 1
+    assert math.isnan(chart.data.iloc[4][admits_ventilated_key])
+
+def test_census_chart_log_scale(census_floor_df):
+    """
+    Verifies that if the log scale is used, then the values on the chart are adjusted appropriately.
+
+    Args:
+        census_floor_df: Sample census data.
+
+    """
+    chart = build_census_chart(alt=alt, census_floor_df=census_floor_df, use_log_scale=True)
+
+    # We check a few values to verify that zero was replaced with NaN.
+    assert math.isnan(chart.data.iloc[0][census_hospitalized_key])
+    assert math.isnan(chart.data.iloc[0][census_icu_key])
+    assert math.isnan(chart.data.iloc[0][census_ventilated_key])
+
+    assert chart.data.iloc[1][census_hospitalized_key] == 3
+    assert chart.data.iloc[1][census_icu_key] == 1
+    assert chart.data.iloc[1][census_ventilated_key] == 1
+
+    assert chart.data.iloc[2][census_hospitalized_key] == 6
+    assert chart.data.iloc[2][census_icu_key] == 2
+    assert chart.data.iloc[2][census_ventilated_key] == 2
+

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
apt-get update apt-get install -y gcc
3.7
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
altair==5.0.1
attrs==24.2.0
backports.zoneinfo==0.2.1
black==23.3.0
blinker==1.6.3
cachetools==5.5.2
certifi @ file:///croot/certifi_1671487769961/work/certifi
charset-normalizer==3.4.1
click==8.1.8
dash==2.15.0
dash-bootstrap-components==1.5.0
dash-core-components==2.0.0
dash-html-components==2.0.0
dash-table==5.0.0
dash_daq==0.6.0
decorator==5.1.1
exceptiongroup==1.2.2
Flask==2.2.5
gitdb==4.0.12
GitPython==3.1.44
google-auth==2.38.0
google-auth-oauthlib==1.2.1
gspread==6.0.0
gunicorn==23.0.0
httplib2==0.22.0
idna==3.10
importlib-metadata==6.7.0
importlib-resources==5.12.0
iniconfig==2.0.0
itsdangerous==2.1.2
Jinja2==3.1.6
jsonschema==4.17.3
markdown-it-py==2.2.0
MarkupSafe==2.1.5
mdurl==0.1.2
mypy-extensions==1.0.0
nest-asyncio==1.6.0
numpy==1.21.6
oauth2client==4.1.3
oauthlib==3.2.2
packaging==23.2
pandas==1.3.5
pathspec==0.11.2
-e git+https://github.com/CodeForPhilly/chime.git@45aeb494a7bc3dd4dda6517a0cde75c2b6251ca8#egg=penn_chime
Pillow==9.5.0
pkgutil_resolve_name==1.3.10
platformdirs==4.0.0
plotly==5.18.0
pluggy==1.2.0
protobuf==4.24.4
pyarrow==12.0.1
pyasn1==0.5.1
pyasn1-modules==0.3.0
pydeck==0.8.1b1
Pygments==2.17.2
Pympler==1.1
pyparsing==3.1.4
pyrsistent==0.19.3
pytest==7.4.4
python-dateutil==2.9.0.post0
python-i18n==0.3.9
pytz==2025.2
pytz-deprecation-shim==0.1.0.post0
PyYAML==6.0.1
requests==2.31.0
requests-oauthlib==2.0.0
retrying==1.3.4
rich==13.8.1
rsa==4.9
six==1.17.0
smmap==5.0.2
streamlit==1.23.1
StrEnum==0.4.15
tenacity==8.2.3
toml==0.10.2
tomli==2.0.1
toolz==0.12.1
tornado==6.2
typed-ast==1.5.5
typing_extensions==4.7.1
tzdata==2025.2
tzlocal==4.3.1
urllib3==2.0.7
validators==0.20.0
watchdog==3.0.0
Werkzeug==2.2.3
zipp==3.15.0

name: chime
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - altair==5.0.1
      - attrs==24.2.0
      - backports-zoneinfo==0.2.1
      - black==23.3.0
      - blinker==1.6.3
      - cachetools==5.5.2
      - charset-normalizer==3.4.1
      - click==8.1.8
      - dash==2.15.0
      - dash-bootstrap-components==1.5.0
      - dash-core-components==2.0.0
      - dash-daq==0.6.0
      - dash-html-components==2.0.0
      - dash-table==5.0.0
      - decorator==5.1.1
      - exceptiongroup==1.2.2
      - flask==2.2.5
      - gitdb==4.0.12
      - gitpython==3.1.44
      - google-auth==2.38.0
      - google-auth-oauthlib==1.2.1
      - gspread==6.0.0
      - gunicorn==23.0.0
      - httplib2==0.22.0
      - idna==3.10
      - importlib-metadata==6.7.0
      - importlib-resources==5.12.0
      - iniconfig==2.0.0
      - itsdangerous==2.1.2
      - jinja2==3.1.6
      - jsonschema==4.17.3
      - markdown-it-py==2.2.0
      - markupsafe==2.1.5
      - mdurl==0.1.2
      - mypy-extensions==1.0.0
      - nest-asyncio==1.6.0
      - numpy==1.21.6
      - oauth2client==4.1.3
      - oauthlib==3.2.2
      - packaging==23.2
      - pandas==1.3.5
      - pathspec==0.11.2
      - pillow==9.5.0
      - pkgutil-resolve-name==1.3.10
      - platformdirs==4.0.0
      - plotly==5.18.0
      - pluggy==1.2.0
      - protobuf==4.24.4
      - pyarrow==12.0.1
      - pyasn1==0.5.1
      - pyasn1-modules==0.3.0
      - pydeck==0.8.1b1
      - pygments==2.17.2
      - pympler==1.1
      - pyparsing==3.1.4
      - pyrsistent==0.19.3
      - pytest==7.4.4
      - python-dateutil==2.9.0.post0
      - python-i18n==0.3.9
      - pytz==2025.2
      - pytz-deprecation-shim==0.1.0.post0
      - pyyaml==6.0.1
      - requests==2.31.0
      - requests-oauthlib==2.0.0
      - retrying==1.3.4
      - rich==13.8.1
      - rsa==4.9
      - six==1.17.0
      - smmap==5.0.2
      - streamlit==1.23.1
      - strenum==0.4.15
      - tenacity==8.2.3
      - toml==0.10.2
      - tomli==2.0.1
      - toolz==0.12.1
      - tornado==6.2
      - typed-ast==1.5.5
      - typing-extensions==4.7.1
      - tzdata==2025.2
      - tzlocal==4.3.1
      - urllib3==2.0.7
      - validators==0.20.0
      - watchdog==3.0.0
      - werkzeug==2.2.3
      - zipp==3.15.0
prefix: /opt/conda/envs/chime

tests/penn_chime/view/test_charts.py::test_admits_chart_log_scale tests/penn_chime/view/test_charts.py::test_census_chart_log_scale
tests/penn_chime/view/test_charts.py::test_admits_chart tests/penn_chime/view/test_charts.py::test_census_chart
src/penn_chime/view/st_app.py src/penn_chime/view/charts.py src/penn_chime/view/st_display.py src/penn_chime/model/parameters.py
src/penn_chime/view/st_app.py src/penn_chime/view/charts.py src/penn_chime/view/st_display.py src/penn_chime/model/parameters.py