diff --git a/doc/user/analytics/analytics_dashboards.md b/doc/user/analytics/analytics_dashboards.md
index 63f5b2812e997c711eda2d9b823aa3758e529406..860e4ca85d790a00d2d888c00125626bbb439727 100644
--- a/doc/user/analytics/analytics_dashboards.md
+++ b/doc/user/analytics/analytics_dashboards.md
@@ -154,9 +154,10 @@ To change the location of a group's dashboards:
 
 ### Project dashboards
 
-Dashboards are usually defined in the project where the analytics data is being retrieved from.
+By default custom dashboards are saved to the current project, because
+dashboards are usually defined in the project where the analytics data is retrieved from.
 However, you can also have a separate project for dashboards.
-This is recommended if you want to enforce specific access rules to the dashboard definitions or share dashboards across multiple projects.
+This setup is recommended if you want to enforce specific access rules to the dashboard definitions or share dashboards across multiple projects.
 
 NOTE:
 You can share dashboards only between projects that are located in the same group.
diff --git a/ee/app/helpers/analytics/analytics_dashboards_helper.rb b/ee/app/helpers/analytics/analytics_dashboards_helper.rb
index 6c318dc8f94286768667d0e5c428e1dd66836faa..ce29bb7d04016217c5b23e6feb8278e393ea028c 100644
--- a/ee/app/helpers/analytics/analytics_dashboards_helper.rb
+++ b/ee/app/helpers/analytics/analytics_dashboards_helper.rb
@@ -110,16 +110,20 @@ def managed_cluster_purchased?(project)
     end
 
     def project_dashboard_pointer(project)
-      project.analytics_dashboards_pointer.target_project
+      if project.analytics_dashboards_pointer.present?
+        project.analytics_dashboards_pointer.target_project
+      else
+        project
+      end
     end
 
     def group_dashboard_pointer(group)
+      return unless group.analytics_dashboards_pointer.present?
+
       group.all_projects.find_by_id(group.analytics_dashboards_pointer.target_project_id)
     end
 
     def analytics_dashboard_pointer_project(namespace)
-      return unless namespace.analytics_dashboards_pointer
-
       pointer_project = project?(namespace) ? project_dashboard_pointer(namespace) : group_dashboard_pointer(namespace)
 
       return unless pointer_project
diff --git a/ee/app/views/projects/settings/analytics/_custom_dashboard_projects.html.haml b/ee/app/views/projects/settings/analytics/_custom_dashboard_projects.html.haml
index 40aa7070f2c3b3a4ce7709af4354f8eaba99f6e4..2c69f852aebadf7c65c979f4034598d2bab50af4 100644
--- a/ee/app/views/projects/settings/analytics/_custom_dashboard_projects.html.haml
+++ b/ee/app/views/projects/settings/analytics/_custom_dashboard_projects.html.haml
@@ -13,7 +13,9 @@
       = link_to _('Learn more.'), help_page_path('user/analytics/analytics_dashboards', anchor: 'change-the-location-of-dashboards'), target: '_blank', rel: 'noopener noreferrer'
   .settings-content
     %h4= s_('ProjectSettings|Analytics Dashboards')
-    %p= safe_format(s_('ProjectSettings|Select the project containing %{link_start}Analytics Dashboards%{link_end} configuration files.'), tag_pair(dashboards_link, :link_start, :link_end))
+    %p
+      %span= safe_format(s_('ProjectSettings|Select the project containing %{link_start}Analytics Dashboards%{link_end} configuration files.'), tag_pair(dashboards_link, :link_start, :link_end))
+      %span= s_('ProjectSettings|By default the current project is used.')
     = gitlab_ui_form_for @project, url: project_settings_analytics_path(@project, anchor: 'js-analytics-dashboards-settings'), html: { class: 'fieldset-form', data: { testid: 'analytics-dashboards-settings' } } do |form|
       = form_errors(@project)
 
diff --git a/ee/spec/features/projects/product_analytics/dashboards_shared_examples.rb b/ee/spec/features/projects/product_analytics/dashboards_shared_examples.rb
index bca5b14b654c966d23e426abc5b73108d6b513a4..08a81ab9542050e7d6fc5dfb4e5ae9a30cbdccb5 100644
--- a/ee/spec/features/projects/product_analytics/dashboards_shared_examples.rb
+++ b/ee/spec/features/projects/product_analytics/dashboards_shared_examples.rb
@@ -74,16 +74,6 @@
     end
   end
 
-  shared_examples 'does not render the new dashboard button' do
-    before do
-      visit_page
-    end
-
-    it do
-      expect(page).not_to have_content(s_('Analytics|New dashboard'))
-    end
-  end
-
   context 'with the required application settings' do
     before do
       stub_application_setting(product_analytics_enabled?: true)
@@ -288,7 +278,7 @@
               end
             end
 
-            context 'and custom dashboards is configured' do
+            context 'and a custom dashboard pointer is set' do
               before do
                 create(:analytics_dashboards_pointer, :project_based, project: project)
               end
@@ -296,8 +286,8 @@
               it_behaves_like 'renders the new dashboard button'
             end
 
-            context 'and custom dashboards is not configured' do
-              it_behaves_like 'does not render the new dashboard button'
+            context 'and the default custom dashboard location is used' do
+              it_behaves_like 'renders the new dashboard button'
             end
           end
         end
diff --git a/ee/spec/helpers/analytics/analytics_dashboards_helper_spec.rb b/ee/spec/helpers/analytics/analytics_dashboards_helper_spec.rb
index cede2bddece291cf26a3ab3a7a1007b4b3923d3c..98ff27883c7eb5377bb5b10e7839c3f539564ce0 100644
--- a/ee/spec/helpers/analytics/analytics_dashboards_helper_spec.rb
+++ b/ee/spec/helpers/analytics/analytics_dashboards_helper_spec.rb
@@ -8,7 +8,6 @@
   let_it_be_with_refind(:group) { create(:group) } # rubocop:disable RSpec/FactoryBot/AvoidCreate
   let_it_be_with_refind(:project) { create(:project, group: group) } # rubocop:disable RSpec/FactoryBot/AvoidCreate
   let_it_be(:user) { build_stubbed(:user) }
-  let_it_be(:pointer) { create(:analytics_dashboards_pointer, :project_based, project: project) } # rubocop:disable RSpec/FactoryBot/AvoidCreate
   let_it_be(:group_pointer) { create(:analytics_dashboards_pointer, namespace: group, target_project: project) } # rubocop:disable RSpec/FactoryBot/AvoidCreate
   let_it_be(:add_on) { create(:gitlab_subscription_add_on, :product_analytics) } # rubocop:disable RSpec/FactoryBot/AvoidCreate
 
@@ -56,16 +55,16 @@
 
         subject(:data) { helper.analytics_dashboards_list_app_data(project) }
 
-        def expected_data(has_permission)
+        def expected_data(has_permission, pointer_project = project)
           {
             is_project: 'true',
             is_group: 'false',
             namespace_id: project.id,
             dashboard_project: {
-              id: pointer.target_project.id,
-              full_path: pointer.target_project.full_path,
-              name: pointer.target_project.name,
-              default_branch: pointer.target_project.default_branch
+              id: pointer_project.id,
+              full_path: pointer_project.full_path,
+              name: pointer_project.name,
+              default_branch: pointer_project.default_branch
             }.to_json,
             can_configure_project_settings: user_can_admin_project.to_s,
             can_select_gitlab_managed_provider: 'false',
@@ -113,6 +112,14 @@ def expected_data(has_permission)
             expect(data).to include({ overview_counts_aggregation_enabled: "true" })
           end
         end
+
+        context 'with a dashboard pointer' do
+          let_it_be(:pointer) { create(:analytics_dashboards_pointer, :project_based, project: project) } # rubocop:disable RSpec/FactoryBot/AvoidCreate
+
+          it 'returns the pointer target project in the expected data' do
+            expect(data).to eq(expected_data(false, pointer.target_project))
+          end
+        end
       end
     end
 
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 0ac48d65e85cff6ae2929f7b30f22ae4552aea57..bed65d9ffe546244d1b6f7ca88494a6c44cb73bf 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -41426,6 +41426,9 @@ msgstr ""
 msgid "ProjectSettings|Build, test, and deploy your changes. Does not apply to project integrations."
 msgstr ""
 
+msgid "ProjectSettings|By default the current project is used."
+msgstr ""
+
 msgid "ProjectSettings|Checkbox is visible and selected by default."
 msgstr ""