diff --git a/tests/logic/metrics_test.py b/tests/logic/metrics_test.py
index 20e9b496..47702f10 100644
--- a/tests/logic/metrics_test.py
+++ b/tests/logic/metrics_test.py
@@ -3,19 +3,19 @@
 from __future__ import print_function
 from __future__ import unicode_literals
 
-from yelp_beans.logic.metrics import get_subscribed_users
+from yelp_beans.logic.metrics import get_subscribers
 from yelp_beans.models import MeetingSubscription
 
 
 def test_get_subscribed_users(database, fake_user):
-    subscribed_users = get_subscribed_users()
+    subscribed_users = get_subscribers()
     assert len(subscribed_users) == 1
     assert subscribed_users[database.sub.key.urlsafe()] == ['darwin@yelp.com']
 
 
 def test_get_subscribed_users_multiple(database, fake_user):
     subscription2 = MeetingSubscription(title='test1').put()
-    subscribed_users = get_subscribed_users()
+    subscribed_users = get_subscribers()
 
     assert len(subscribed_users) == 2
     assert subscribed_users[subscription2.urlsafe()] == []
diff --git a/tests/routes/api/v1/metrics_test.py b/tests/routes/api/v1/metrics_test.py
index 77e280aa..d58d1794 100644
--- a/tests/routes/api/v1/metrics_test.py
+++ b/tests/routes/api/v1/metrics_test.py
@@ -5,50 +5,82 @@
 
 import json
 
-from yelp_beans.models import MeetingSubscription
-from yelp_beans.routes.api.v1.metrics import metrics_api
+from yelp_beans.models import Meeting
+from yelp_beans.models import MeetingParticipant
+from yelp_beans.models import MeetingRequest
+from yelp_beans.models import User
+from yelp_beans.models import UserSubscriptionPreferences
+from yelp_beans.routes.api.v1.metrics import meeting_participants
+from yelp_beans.routes.api.v1.metrics import meeting_requests
+from yelp_beans.routes.api.v1.metrics import meeting_subscribers
 
 
-def test_get_metrics(app, minimal_database):
+def test_get_subscribers_none(app, minimal_database):
+    with app.test_request_context('/v1/metrics/subscribers'):
+        subscribed = json.loads(meeting_subscribers())
+        assert subscribed == []
 
-    with app.test_request_context('/v1/metrics'):
-        response = metrics_api()
-        assert response == '[]'
 
-    new_subscription = MeetingSubscription(title='test1')
-    new_subscription.put()
+def test_get_subscribers(app, database, subscription, fake_user):
+    with app.test_request_context('/v1/metrics/subscribers'):
+        subscribed = json.loads(meeting_subscribers())
+        assert subscribed == [{
+            'title': 'Yelp Weekly',
+            'subscriber': 'darwin@yelp.com'
+        }]
 
-    with app.test_request_context('/v1/metrics'):
-        response = json.loads(metrics_api())
-        assert response[0]["title"] == new_subscription.title
-        assert response[0]["key"] == new_subscription.key.urlsafe()
-        assert response[0]["week_participants"] == 0
-        assert response[0]["subscribed"] == []
 
+def test_get_meeting_participants(app, database):
+    pref = UserSubscriptionPreferences(subscription=database.sub.key, preference=database.prefs[0].key)
+    pref.put()
+    user1 = User(
+        email='a@yelp.com',
+        metadata={'department': 'dept'},
+        subscription_preferences=[pref.key]
+    )
+    user1.put()
+    user2 = User(
+        email='b@yelp.com',
+        metadata={'department': 'dept'},
+        subscription_preferences=[pref.key]
+    )
+    user2.put()
+    meeting1 = Meeting(meeting_spec=database.specs[0].key, cancelled=False).put()
+    MeetingParticipant(meeting=meeting1, user=user1.key).put()
+    MeetingParticipant(meeting=meeting1, user=user2.key).put()
+    with app.test_request_context('/v1/metrics/meeting_participants'):
+        participants = json.loads(meeting_participants())
+        assert participants == [
+            {
+                'date': '2017-10-27T23:00:00',
+                'meeting': 'agx0ZXN0YmVkLXRlc3RyDQsSB01lZXRpbmcYCgw',
+                'meeting_title': 'Yelp Weekly',
+                'participant': 'a@yelp.com',
+                'time': '04:00PM'
+            },
+            {
+                'date': '2017-10-27T23:00:00',
+                'meeting': 'agx0ZXN0YmVkLXRlc3RyDQsSB01lZXRpbmcYCgw',
+                'meeting_title': 'Yelp Weekly',
+                'participant': 'b@yelp.com',
+                'time': '04:00PM'
+            }
+        ]
 
-def test_get_metrics_multiple(app, database, subscription, fake_user):
-    with app.test_request_context('/v1/metrics'):
-        response = json.loads(metrics_api())
-        assert len(response) == 1
-        response = response[0]
-        assert response['key'] == database.sub.key.urlsafe()
-        assert response['subscribed'] == ['darwin@yelp.com']
-        assert response['title'] == database.sub.title
-        assert response['week_participants'] == 1
 
-    new_subscription = MeetingSubscription(title='test1')
-    new_subscription.put()
-
-    with app.test_request_context('/v1/metrics'):
-        response = json.loads(metrics_api())
-        assert len(response) == 2
-
-        assert response[0]['key'] == database.sub.key.urlsafe()
-        assert response[0]['subscribed'] == [fake_user.email]
-        assert response[0]['title'] == database.sub.title
-        assert response[0]['week_participants'] == 1
-
-        assert response[1]['key'] == new_subscription.key.urlsafe()
-        assert response[1]['subscribed'] == []
-        assert response[1]['title'] == new_subscription.title
-        assert response[1]['week_participants'] == 0
+def test_get_meeting_requests(app, database):
+    pref = UserSubscriptionPreferences(subscription=database.sub.key, preference=database.prefs[0].key)
+    pref.put()
+    user = User(
+        email='a@yelp.com',
+        metadata={'department': 'dept'},
+        subscription_preferences=[pref.key]
+    )
+    user.put()
+    MeetingRequest(user=user.key, meeting_spec=database.specs[0].key).put()
+    with app.test_request_context('/v1/metrics/meeting_requests'):
+        requests = json.loads(meeting_requests())
+    assert requests == [{
+        'title': 'Yelp Weekly',
+        'user': 'a@yelp.com'
+    }]
diff --git a/yelp_beans/logic/metrics.py b/yelp_beans/logic/metrics.py
index f6e0c299..62d8884d 100644
--- a/yelp_beans/logic/metrics.py
+++ b/yelp_beans/logic/metrics.py
@@ -5,13 +5,16 @@
 
 from collections import defaultdict
 
+from yelp_beans.logic.meeting_spec import get_meeting_datetime
 from yelp_beans.logic.meeting_spec import get_specs_for_current_week
 from yelp_beans.logic.meeting_spec import get_users_from_spec
+from yelp_beans.models import MeetingParticipant
+from yelp_beans.models import MeetingRequest
 from yelp_beans.models import MeetingSubscription
 from yelp_beans.models import User
 
 
-def get_subscribed_users():
+def get_subscribers():
     users = User.query().fetch()
     subscriptions = MeetingSubscription.query().fetch()
 
@@ -37,3 +40,52 @@ def get_current_week_participation():
         ]
 
     return participation
+
+
+def get_meeting_participants():
+    meetings = defaultdict(list)
+    participants = MeetingParticipant.query().fetch()
+    for participant in participants:
+        try:
+            email = participant.user.get().email
+            meeting = participant.meeting
+            meetings[meeting].append(email)
+        except AttributeError:
+            pass
+
+    metrics = []
+    for meeting_key in meetings.keys():
+        meeting_spec = meeting_key.get().meeting_spec.get()
+        meeting_title = meeting_spec.meeting_subscription.get().title
+        participants = meetings[meeting_key]
+        for participant in participants:
+            metrics.append(
+                {
+                    'participant': participant,
+                    'meeting': meeting_key.urlsafe(),
+                    'meeting_title': meeting_title,
+                    'date': meeting_spec.datetime.isoformat(),
+                    'time': get_meeting_datetime(meeting_spec).strftime('%I:%M%p'),
+                }
+            )
+    return metrics
+
+
+def get_meeting_requests():
+    requests = []
+    for spec in get_specs_for_current_week():
+        users = [
+            request.user.get().email
+            for request
+            in MeetingRequest.query(
+                MeetingRequest.meeting_spec == spec.key
+            ).fetch()
+        ]
+        for user in users:
+            requests.append(
+                {
+                    'title': spec.meeting_subscription.get().title,
+                    'user': user,
+                }
+            )
+    return requests
diff --git a/yelp_beans/routes/api/v1/metrics.py b/yelp_beans/routes/api/v1/metrics.py
index 8b5b779d..5e1ba33a 100644
--- a/yelp_beans/routes/api/v1/metrics.py
+++ b/yelp_beans/routes/api/v1/metrics.py
@@ -7,31 +7,39 @@
 
 from flask import Blueprint
 
-from yelp_beans.logic.metrics import get_current_week_participation
-from yelp_beans.logic.metrics import get_subscribed_users
+from yelp_beans.logic.metrics import get_meeting_participants
+from yelp_beans.logic.metrics import get_meeting_requests
+from yelp_beans.logic.metrics import get_subscribers
 from yelp_beans.models import MeetingSubscription
 
 
 metrics_blueprint = Blueprint('metrics', __name__)
 
 
-@metrics_blueprint.route('/', methods=['GET'])
-def metrics_api():
+@metrics_blueprint.route('/subscribers', methods=['GET'])
+def meeting_subscribers():
     metrics = []
-    subscribed_users = get_subscribed_users()
-    participation = get_current_week_participation()
+    subscribed_users = get_subscribers()
     subscriptions = MeetingSubscription.query().fetch()
 
     for subscription in subscriptions:
-        metric = {
-            'key': subscription.key.urlsafe(),
-            'title': subscription.title,
-            'subscribed': subscribed_users[subscription.key.urlsafe()],
-            'total_subscribed': len(subscribed_users[subscription.key.urlsafe()]),
-            'week_participants': sum(
-                len(spec) for spec in
-                participation.get(subscription.key.urlsafe(), {}).values()
-            ),
-        }
-        metrics.append(metric)
+        subscribed = set(subscribed_users[subscription.key.urlsafe()])
+
+        for subscriber in subscribed:
+            metrics.append(
+                {
+                    'title': subscription.title,
+                    'subscriber': subscriber,
+                }
+            )
     return json.dumps(metrics)
+
+
+@metrics_blueprint.route('/meetings', methods=['GET'])
+def meeting_participants():
+    return json.dumps(get_meeting_participants())
+
+
+@metrics_blueprint.route('/requests', methods=['GET'])
+def meeting_requests():
+    return json.dumps(get_meeting_requests())