diff --git a/common/djangoapps/student/views/dashboard.py b/common/djangoapps/student/views/dashboard.py
index af8a5fc5ecd4f84ea6f36804ee4ddc8a3c2fb8f0..9c7e1d0727ac7305abe0a1d8f0dde8bda24bfc6c 100644
--- a/common/djangoapps/student/views/dashboard.py
+++ b/common/djangoapps/student/views/dashboard.py
@@ -828,6 +828,14 @@ def student_dashboard(request):
             enr for enr in course_enrollments if entitlement.enrollment_course_run.course_id != enr.course_id
         ]
 
+    # Collect all program types the user is enrolled in
+    enrolled_program_types = []
+    if getattr(settings, 'ENABLE_DEMOGRAPHICS_COLLECTION', False):
+        enrolled_program_types = {
+            _program.get('type_attrs', {}).get('slug')
+            for _program in meter.engaged_programs
+            if _program.get('type_attrs', {}).get('slug') is not None
+        }
     context = {
         'urls': urls,
         'programs_data': programs_data,
@@ -878,6 +886,7 @@ def student_dashboard(request):
         'recovery_email_message': recovery_email_message,
         'recovery_email_activation_message': recovery_email_activation_message,
         'show_load_all_courses_link': show_load_all_courses_link(user, course_limit, course_enrollments),
+        'enrolled_program_types': enrolled_program_types,
         # TODO START: clean up as part of REVEM-199 (START)
         'course_info': get_dashboard_course_info(user, course_enrollments),
         # TODO START: clean up as part of REVEM-199 (END)
diff --git a/lms/static/sass/base/_build.scss b/lms/static/sass/base/_build.scss
index a36bffce87028edf1cea8926a93125ac70b4a6e2..3aa8501618dfc9ac4683dfe23780cf99365505f2 100644
--- a/lms/static/sass/base/_build.scss
+++ b/lms/static/sass/base/_build.scss
@@ -7,10 +7,20 @@
 @import 'bootstrap/variables';
 @import 'bootstrap/scss/functions';
 @import 'bootstrap/scss/variables';
+@import 'bootstrap/scss/mixins/background-variant';
 @import 'bootstrap/scss/mixins/box-shadow';
 @import 'bootstrap/scss/mixins/breakpoints';
+@import 'bootstrap/scss/mixins/float';
 @import 'bootstrap/scss/mixins/grid';
+@import 'bootstrap/scss/mixins/hover';
 @import 'bootstrap/scss/mixins/reset-text';
+@import 'bootstrap/scss/mixins/screen-reader';
+@import 'bootstrap/scss/mixins/text-truncate';
+@import 'bootstrap/scss/mixins/text-emphasis';
+@import 'bootstrap/scss/mixins/text-hide';
+@import 'bootstrap/scss/mixins/visibility';
+@import 'bootstrap/scss/utilities';
+
 
 // Bootstrap components
 @import 'bootstrap/scss/popover';
diff --git a/lms/static/sass/elements/_system-feedback.scss b/lms/static/sass/elements/_system-feedback.scss
index 07fd02912ef1b92cd3db38c9527ac9295b1995ac..27602c9460cd747fcb72bdfe4b6502ff66ad3aa6 100644
--- a/lms/static/sass/elements/_system-feedback.scss
+++ b/lms/static/sass/elements/_system-feedback.scss
@@ -120,7 +120,7 @@
       box-shadow: none;
       border-top: 1px solid #579cc5;
       padding: 20px 20px 20px 40px;
-      margin: -16px 0 5px 0;
+      margin: -16px 0 10px 0;
     }
 
     .fa-close {
diff --git a/lms/static/sass/multicourse/_dashboard.scss b/lms/static/sass/multicourse/_dashboard.scss
index f6551b2df979744574d473e221642f14d4bc0c4d..de7cc4ada3c3b9b8b6c8462685b668972319adc1 100644
--- a/lms/static/sass/multicourse/_dashboard.scss
+++ b/lms/static/sass/multicourse/_dashboard.scss
@@ -525,6 +525,8 @@
     order: 2;
 
     .wrapper-find-courses {
+      margin-bottom: $baseline * 0.5;
+
       .course-advertise {
         @include clearfix();
 
@@ -576,31 +578,9 @@
       }
     }
 
-    .wrapper-coaching {
-      border: 1px solid $border-color-l3;
-      margin: 20px 0;
-
-      .coaching-signup {
-        padding: 20px;
-
-        .coaching-prompt {
-          font-size: 20px;
-          line-height: 28px;
-          font-weight: bold;
-        }
-
-        .coaching-link .btn-neutral {
-          display: block;
-          text-align: center;
-          margin: 20px 20px 0;
-          border-radius: 20px;
-          padding: 10px;
-          border: 1px solid theme-color('primary');
-        }
-      }
-    }
-
     .profile-sidebar {
+      margin-bottom: $baseline * 0.5;
+
       ul {
         padding: 0;
         border: 1px solid theme-color("light");
@@ -609,7 +589,6 @@
 
     // Responsive behavior
     @include media-breakpoint-down(md) {
-      margin: 0 $baseline $baseline*2;
       padding: 0;
       max-width: 100%;
     }
diff --git a/lms/static/sass/shared/_forms.scss b/lms/static/sass/shared/_forms.scss
index 3dd8e52ec9ced009657ebc6363f92265b0c9b59a..777b6446e77c007a9b5950fe8f469c00448e6232 100644
--- a/lms/static/sass/shared/_forms.scss
+++ b/lms/static/sass/shared/_forms.scss
@@ -54,9 +54,14 @@ textarea {
   height: 60px;
 }
 
+/*
+Added :not(.btn-reset) because this selector is overly broad and adding an escape
+path is easier than actually resetting all the bits or testing the entire platform
+UI after making this code less upsetting.
+*/
 input[type="submit"],
 input[type="button"],
-button,
+button:not(.btn-reset),
 .button {
   border-radius: 3px;
 
diff --git a/themes/edx.org/lms/static/images/quote_prompt.png b/themes/edx.org/lms/static/images/quote_prompt.png
new file mode 100644
index 0000000000000000000000000000000000000000..d183adb69cf6db1b85a7cef4d37b08f5e5533fc3
Binary files /dev/null and b/themes/edx.org/lms/static/images/quote_prompt.png differ
diff --git a/themes/edx.org/lms/static/sass/partials/lms/theme/_dashboard.scss b/themes/edx.org/lms/static/sass/partials/lms/theme/_dashboard.scss
new file mode 100644
index 0000000000000000000000000000000000000000..be55b832a6b898bf16dcf66bba6cc5d019775920
--- /dev/null
+++ b/themes/edx.org/lms/static/sass/partials/lms/theme/_dashboard.scss
@@ -0,0 +1,51 @@
+.dashboard {
+  .demographics-banner {
+    background-color: #23419f;
+    border-radius: 12px;
+    @media (min-width: 1200px) {
+      height: 64px;
+    }
+    .demographics-banner-icon {
+      height: 140px;
+    }
+    .demographics-banner-prompt {
+      font-size: 24px;
+      line-height: 24px;
+    }
+    .demographics-banner-btn {
+      color: #23419f;
+      border-radius: 20px;
+      font-size: 14px;
+      min-width: 150px;
+      .fa-thumbs-up {
+        font-size: 24px;
+      }
+    }
+  }
+  .side-container {
+    .wrapper-coaching {
+      border: 1px solid $gray-500;
+      margin-bottom: $baseline * 0.5;
+
+      .coaching-signup {
+        padding: 20px;
+
+        .coaching-prompt {
+          font-size: 20px;
+          line-height: 28px;
+          font-weight: bold;
+        }
+
+
+        .coaching-link .btn-neutral {
+          display: block;
+          text-align: center;
+          margin: 20px 20px 0;
+          border-radius: 20px;
+          padding: 10px;
+          border: 1px solid theme-color('primary');
+        }
+      }
+    }
+  }
+}
diff --git a/themes/edx.org/lms/static/sass/partials/lms/theme/_extras.scss b/themes/edx.org/lms/static/sass/partials/lms/theme/_extras.scss
index c57107fe3707872ec0dd11f5627bbdfa99278ccf..1f104fa2e0a77224f4a2da1b2f75a692e9c8070a 100644
--- a/themes/edx.org/lms/static/sass/partials/lms/theme/_extras.scss
+++ b/themes/edx.org/lms/static/sass/partials/lms/theme/_extras.scss
@@ -7,6 +7,7 @@
 // rules into modular pieces.
 
 @import 'certificates';
+@import 'dashboard';
 
 
 // Ensure the header matches the edx.org marketing site header
diff --git a/themes/edx.org/lms/templates/dashboard.html b/themes/edx.org/lms/templates/dashboard.html
index bf9010e7831739d7fd9a99ff9a5b376747aedc9c..891392b3285614fa033e968678586b47e6759d05 100644
--- a/themes/edx.org/lms/templates/dashboard.html
+++ b/themes/edx.org/lms/templates/dashboard.html
@@ -140,6 +140,26 @@ from student.models import CourseEnrollment
 
 <section class="dashboard" id="dashboard-main">
 <main class="main-container" id="main" aria-label="Content" tabindex="-1">
+  <%
+    MB_SLUG = "microbachelors"
+    enrolled_in_mb_program = MB_SLUG in enrolled_program_types
+    account_mfe_url = getattr(settings, 'ACCOUNT_MICROFRONTEND_URL', '') or ''
+  %>
+  % if getattr(settings, 'ENABLE_DEMOGRAPHICS_COLLECTION', False) and enrolled_in_mb_program:
+    <a href="${account_mfe_url}#demographics">
+      <div
+        class="demographics-banner d-flex justify-content-left align-items-center flex-column flex-lg-row py-1 px-4 mb-2 mb-lg-4">
+        <img class="demographics-banner-icon d-none d-lg-inline-block" src="${static.url('edx.org/images/quote_prompt.png')}" alt="" aria-hidden="true">
+        <div class="demographics-banner-prompt d-inline-block font-weight-bold text-white py-4 px-2 px-lg-3">
+          ${_("Want to make edX better for everyone?")}
+        </div>
+        <button class="demographics-banner-btn btn-reset d-flex align-items-center bg-white font-weight-bold border-0 py-2 px-3 mx-2 mb-3 m-lg-0 shadow">
+          <span class="fa fa-thumbs-up px-2" aria-hidden="true"></span>
+          ${_("Get started")}
+        </button>
+      </div>
+    </a>
+  % endif
   <section class="my-courses" id="my-courses">
     <header class="wrapper-header-courses">
       <h2 class="header-courses">${_("My Courses")}</h2>