Repository: wordpress-mobile/WordPress-Android (language: kotlin)

Issue:
Stats Insights: Remove social (publicize) subscribers
Total Subscribers number on Insights is calculated by adding: wpcom + email + publicize (Jetpack social) subscribers. However, it's been removed from the web.

1. Update Total Subscribers card on Insights not to add publicize numbers
2. Update Total Subscribers -> Details to remove "Social" from Subscribers table

![image](https://github.com/wordpress-mobile/WordPress-Android/assets/4062343/55099f86-4682-4f17-beaf-64098ee727ba)


Discussion hints:
Thanks for reporting! 👍 <!-- generated_by_dangermattic -->


Pull request: Remove social subscribers
Fixes #20714 

This removes social subribers from the detail screen of the Total Followers card and additionally, changes the endpoint for the "Total Followers" card from `/sites/$site/stats/summary/` → `stats/subscribers`. 

Additionally, this PR removes `FollowerTotalsUseCase`, which was already unused. This card was being used only on the WordPress app but then we removed stats from WP, now it's fine to remove the usecase as well. I haven't removed `InsightType.FOLLOWER_TOTALS` from FLuxC for now because it may cause crashes on a case when upgraded from a very old version since selected insight cards are stored in the db.

|after|
|-|
|<img src="https://github.com/wordpress-mobile/WordPress-Android/assets/2471769/9219d5a5-e864-48c6-9dbd-3044bb7b895a" width=320>|

-----

## To Test:

<!-- Test instructions per dependency update: https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/docs/test_instructions_per_dependency_update.md -->

1. Log in
2. Enable stats_traffic_subscribers_tab flag from "Me → Debug settings"
3. Navigate back.
4. Open the INSIGHTS tab from "My Site → Stats".
5. Tap the "VIEW MORE" button on the Total Followers card.

-----

## Regression Notes

1. Potential unintended areas of impact

    - None

2. What I did to test those areas of impact (or what existing automated tests I relied on)

    - N/A

3. What automated tests I added (or what prevented me from doing so)

    - Updated `FollowerTypesUseCaseTest` and `FollowerTotalsUseCaseTest`

-----

## PR Submission Checklist:

- [x] I have completed the Regression Notes.
- [x] I have considered adding accessibility improvements for my changes.
- [x] I have considered if this change warrants user-facing release notes and have added them to `RELEASE-NOTES.txt` if necessary.

-----

## Testing Checklist (strike-out the not-applying and unnecessary ones):

- [ ] ~WordPress.com sites and self-hosted Jetpack sites.~
- [ ] ~Portrait and landscape orientations.~
- [ ] ~Light and dark modes.~
- [ ] ~Fonts: Larger, smaller and bold text.~
- [ ] ~High contrast.~
- [ ] ~Talkback.~
- [ ] ~Languages with large words or with letters/accents not frequently used in English.~
- [ ] ~Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)~
- [ ] ~Large and small screen sizes. (Tablet and smaller phones)~
- [ ] ~Multi-tasking: Split screen and Pop-up view. (Android 10 or higher)~


Test command: ./gradlew :WordPress:testWordpressVanillaDebugUnitTest --tests "org.wordpress.android.ui.stats.refresh.lists.UiModelMapperTest" --tests "org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTypesUseCaseTest" --tests "org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.TotalFollowersUseCaseTest" --tests "org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTotalsUseCaseTest"

Fix patch:
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 70f9185bdb38..27b1202ae4ba 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -2,6 +2,7 @@
 
 24.9
 -----
+* [*] [Jetpack-only] Removed Social section from the detail screen of Total Followers card [https://github.com/wordpress-mobile/WordPress-Android/pull/20763]
 * [***] [Jetpack-only] Reorganized Stats to include updated Traffic and Insights tabs, along with a newly added Subscribers tab to improve subscriber metrics analysis [https://github.com/wordpress-mobile/WordPress-Android/pull/20756]
 
 24.8
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsModule.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsModule.kt
index e3ae9fd3c3a7..4f1e0b036ecc 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsModule.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsModule.kt
@@ -46,7 +46,6 @@ import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.A
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.AnnualSiteStatsUseCase.AnnualSiteStatsUseCaseFactory
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.AuthorsCommentsUseCase
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.CommentsUseCase
-import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTotalsUseCase
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTypesUseCase
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowersUseCase.FollowersUseCaseFactory
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.LatestPostSummaryUseCase
@@ -63,9 +62,9 @@ import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.T
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.TotalLikesUseCase.TotalLikesUseCaseFactory
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.ViewsAndVisitorsUseCase.ViewsAndVisitorsUseCaseFactory
 import org.wordpress.android.ui.stats.refresh.lists.sections.subscribers.usecases.EmailsUseCase.EmailsUseCaseFactory
-import org.wordpress.android.ui.stats.refresh.lists.sections.subscribers.usecases.TotalSubscribersUseCase.TotalSubscribersUseCaseFactory
 import org.wordpress.android.ui.stats.refresh.lists.sections.subscribers.usecases.SubscribersChartUseCase
 import org.wordpress.android.ui.stats.refresh.lists.sections.subscribers.usecases.SubscribersUseCase.SubscribersUseCaseFactory
+import org.wordpress.android.ui.stats.refresh.lists.sections.subscribers.usecases.TotalSubscribersUseCase.TotalSubscribersUseCaseFactory
 import org.wordpress.android.ui.stats.refresh.utils.SelectedTrafficGranularityManager
 import org.wordpress.android.ui.stats.refresh.utils.StatsSiteProvider
 import org.wordpress.android.util.config.StatsTrafficSubscribersTabFeatureConfig
@@ -123,7 +122,6 @@ class StatsModule {
         tagsAndCategoriesUseCaseFactory: TagsAndCategoriesUseCaseFactory,
         publicizeUseCaseFactory: PublicizeUseCaseFactory,
         postingActivityUseCase: PostingActivityUseCase,
-        followerTotalsUseCase: FollowerTotalsUseCase,
         totalLikesUseCaseFactory: TotalLikesUseCaseFactory,
         totalCommentsUseCaseFactory: TotalCommentsUseCaseFactory,
         totalFollowersUseCaseFactory: TotalFollowersUseCaseFactory,
@@ -143,8 +141,6 @@ class StatsModule {
             useCases.add(actionCardGrowUseCase)
             useCases.add(actionCardReminderUseCase)
             useCases.add(actionCardScheduleUseCase)
-        } else {
-            useCases.add(followerTotalsUseCase)
         }
 
         useCases.addAll(
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/management/InsightsManagementMapper.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/management/InsightsManagementMapper.kt
index 751490f87e08..c6b9bd8e4007 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/management/InsightsManagementMapper.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/management/InsightsManagementMapper.kt
@@ -35,14 +35,8 @@ import org.wordpress.android.ui.utils.ListItemInteraction
 import javax.inject.Inject
 import javax.inject.Named
 
-private val POSTS_AND_PAGES_INSIGHTS = listOf(
-    LATEST_POST_SUMMARY, POSTING_ACTIVITY, TAGS_AND_CATEGORIES
-)
-private val ACTIVITY_INSIGHTS = mutableListOf(
-    FOLLOWERS,
-    FOLLOWER_TOTALS,
-    PUBLICIZE
-)
+private val POSTS_AND_PAGES_INSIGHTS = listOf(LATEST_POST_SUMMARY, POSTING_ACTIVITY, TAGS_AND_CATEGORIES)
+private val ACTIVITY_INSIGHTS = mutableListOf(FOLLOWERS, TOTAL_LIKES, TOTAL_COMMENTS, TOTAL_FOLLOWERS, PUBLICIZE)
 private val GENERAL_INSIGHTS = mutableListOf(
     ALL_TIME_STATS,
     MOST_POPULAR_DAY_AND_HOUR,
@@ -67,14 +61,6 @@ class InsightsManagementMapper @Inject constructor(@Named(BG_THREAD) private val
             }
             insightListItems += Header(R.string.stats_insights_management_activity)
 
-            if (ACTIVITY_INSIGHTS.contains(FOLLOWER_TOTALS)) {
-                // Replace FOLLOWER_TOTALS with Stats revamp v2 total insights
-                val followerTotalsIndex = ACTIVITY_INSIGHTS.indexOf(FOLLOWER_TOTALS)
-                ACTIVITY_INSIGHTS.remove(FOLLOWER_TOTALS)
-
-                val statsRevampV2TotalInsights = listOf(TOTAL_LIKES, TOTAL_COMMENTS, TOTAL_FOLLOWERS)
-                ACTIVITY_INSIGHTS.addAll(followerTotalsIndex, statsRevampV2TotalInsights)
-            }
             insightListItems += ACTIVITY_INSIGHTS.map { type ->
                 buildInsightModel(type, addedTypes, onClick)
             }
@@ -112,8 +98,6 @@ class InsightsManagementMapper @Inject constructor(@Named(BG_THREAD) private val
         TOTAL_FOLLOWERS -> R.string.stats_view_total_followers
         AUTHORS_COMMENTS -> R.string.stats_comments_authors
         POSTS_COMMENTS -> R.string.stats_comments_posts_and_pages
-        FOLLOWER_TOTALS -> R.string.stats_view_follower_totals
-        FOLLOWER_TYPES -> null
-        ACTION_REMINDER, ACTION_SCHEDULE, ACTION_GROW -> null
+        FOLLOWER_TYPES, ACTION_REMINDER, ACTION_SCHEDULE, ACTION_GROW, FOLLOWER_TOTALS -> null
     }
 }
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTotalsUseCase.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTotalsUseCase.kt
deleted file mode 100644
index 015acac27eff..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTotalsUseCase.kt
+++ /dev/null
@@ -1,176 +0,0 @@
-package org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases
-
-import android.view.View
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.async
-import org.wordpress.android.R
-import org.wordpress.android.fluxc.model.stats.LimitMode
-import org.wordpress.android.fluxc.model.stats.PagedMode
-import org.wordpress.android.fluxc.store.StatsStore.InsightType.FOLLOWER_TOTALS
-import org.wordpress.android.fluxc.store.stats.insights.FollowersStore
-import org.wordpress.android.fluxc.store.stats.insights.PublicizeStore
-import org.wordpress.android.modules.BG_THREAD
-import org.wordpress.android.modules.UI_THREAD
-import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.StatelessUseCase
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.Empty
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.ListItemWithIcon
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.Title
-import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTotalsUseCase.FollowerType
-import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTotalsUseCase.FollowerType.EMAIL
-import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTotalsUseCase.FollowerType.SOCIAL
-import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTotalsUseCase.FollowerType.WP_COM
-import org.wordpress.android.ui.stats.refresh.utils.ContentDescriptionHelper
-import org.wordpress.android.ui.stats.refresh.utils.ItemPopupMenuHandler
-import org.wordpress.android.ui.stats.refresh.utils.StatsSiteProvider
-import org.wordpress.android.ui.stats.refresh.utils.StatsUtils
-import javax.inject.Inject
-import javax.inject.Named
-
-class FollowerTotalsUseCase
-@Inject constructor(
-    @Named(UI_THREAD) private val mainDispatcher: CoroutineDispatcher,
-    @Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher,
-    private val followersStore: FollowersStore,
-    private val publicizeStore: PublicizeStore,
-    private val statsSiteProvider: StatsSiteProvider,
-    private val contentDescriptionHelper: ContentDescriptionHelper,
-    private val statsUtils: StatsUtils,
-    private val popupMenuHandler: ItemPopupMenuHandler
-) : StatelessUseCase<Map<FollowerType, Int>>(FOLLOWER_TOTALS, mainDispatcher, bgDispatcher) {
-    override fun buildLoadingItem(): List<BlockListItem> = listOf(Title(R.string.stats_view_follower_totals))
-
-    override fun buildEmptyItem(): List<BlockListItem> {
-        return listOf(buildTitle(), Empty())
-    }
-
-    override suspend fun loadCachedData(): Map<FollowerType, Int>? {
-        val wpComFollowers = followersStore.getWpComFollowers(statsSiteProvider.siteModel, LimitMode.Top(0))
-        val emailFollowers = followersStore.getEmailFollowers(statsSiteProvider.siteModel, LimitMode.Top(0))
-        val publicizeServices = publicizeStore.getPublicizeData(statsSiteProvider.siteModel, LimitMode.All)
-        if (wpComFollowers != null && emailFollowers != null && publicizeServices != null) {
-            val socialFollowers = publicizeServices.services.sumOf { it.followers }
-            return buildDataModel(wpComFollowers.totalCount, emailFollowers.totalCount, socialFollowers)
-        }
-        return null
-    }
-
-    private fun buildDataModel(wpComTotals: Int?, emailTotals: Int?, socialTotals: Int?): Map<FollowerType, Int> {
-        val map = HashMap<FollowerType, Int>()
-        wpComTotals?.let {
-            if (it > 0) {
-                map[WP_COM] = it
-            }
-        }
-        emailTotals?.let {
-            if (it > 0) {
-                map[EMAIL] = it
-            }
-        }
-        socialTotals?.let {
-            if (it > 0) {
-                map[SOCIAL] = it
-            }
-        }
-        return map
-    }
-
-    override suspend fun fetchRemoteData(
-        forced: Boolean
-    ): State<Map<FollowerType, Int>> {
-        return fetchData(forced, PagedMode(0, false))
-    }
-
-    private suspend fun fetchData(
-        forced: Boolean,
-        fetchMode: PagedMode
-    ): State<Map<FollowerType, Int>> {
-        val deferredWpComResponse = async(bgDispatcher) {
-            followersStore.fetchWpComFollowers(
-                statsSiteProvider.siteModel,
-                fetchMode,
-                forced
-            )
-        }
-        val deferredEmailResponse = async(bgDispatcher) {
-            followersStore.fetchEmailFollowers(
-                statsSiteProvider.siteModel,
-                fetchMode,
-                forced
-            )
-        }
-        val deferredPublicizeResponse = async(bgDispatcher) {
-            publicizeStore.fetchPublicizeData(
-                statsSiteProvider.siteModel,
-                LimitMode.All,
-                forced
-            )
-        }
-
-        val wpComResponse = deferredWpComResponse.await()
-        val emailResponse = deferredEmailResponse.await()
-        val publicizeResponse = deferredPublicizeResponse.await()
-
-        val wpComModel = wpComResponse.model
-        val emailModel = emailResponse.model
-        val socialTotals = publicizeResponse.model?.services?.sumOf { it.followers }
-
-        val error = wpComResponse.error ?: emailResponse.error ?: publicizeResponse.error
-        val data = buildDataModel(wpComModel?.totalCount, emailModel?.totalCount, socialTotals)
-        return when {
-            error != null -> State.Error(error.message ?: error.type.name)
-            data.isNotEmpty() -> State.Data(data)
-            else -> State.Empty()
-        }
-    }
-
-    private fun getIcon(type: FollowerType): Int {
-        return when (type) {
-            WP_COM -> R.drawable.ic_wordpress_white_24dp
-            EMAIL -> R.drawable.ic_mail_white_24dp
-            SOCIAL -> R.drawable.ic_share_white_24dp
-        }
-    }
-
-    private fun getTitle(type: FollowerType): Int {
-        return when (type) {
-            WP_COM -> R.string.stats_followers_wordpress_com
-            EMAIL -> R.string.email
-            SOCIAL -> R.string.stats_insights_social
-        }
-    }
-
-    override fun buildUiModel(domainModel: Map<FollowerType, Int>): List<BlockListItem> {
-        val items = mutableListOf<BlockListItem>()
-        items.add(buildTitle())
-
-        if (domainModel.isNotEmpty()) {
-            domainModel.entries.forEach {
-                val title = getTitle(it.key)
-                items.add(
-                    ListItemWithIcon(
-                        icon = getIcon(it.key),
-                        textResource = title,
-                        value = statsUtils.toFormattedString(it.value),
-                        showDivider = domainModel.entries.indexOf(it) < domainModel.size - 1,
-                        contentDescription = contentDescriptionHelper.buildContentDescription(
-                            title,
-                            it.value
-                        )
-                    )
-                )
-            }
-        } else {
-            items.add(Empty())
-        }
-        return items
-    }
-
-    private fun buildTitle() = Title(R.string.stats_view_follower_totals, menuAction = this::onMenuClick)
-
-    private fun onMenuClick(view: View) {
-        popupMenuHandler.onMenuClick(view, type)
-    }
-
-    enum class FollowerType { WP_COM, EMAIL, SOCIAL }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCase.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCase.kt
index a9ee52437c8a..08e2d0d87a4d 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCase.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCase.kt
@@ -7,7 +7,6 @@ import org.wordpress.android.fluxc.model.stats.LimitMode
 import org.wordpress.android.fluxc.model.stats.PagedMode
 import org.wordpress.android.fluxc.store.StatsStore.InsightType.FOLLOWER_TYPES
 import org.wordpress.android.fluxc.store.stats.insights.FollowersStore
-import org.wordpress.android.fluxc.store.stats.insights.PublicizeStore
 import org.wordpress.android.modules.BG_THREAD
 import org.wordpress.android.modules.UI_THREAD
 import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.StatelessUseCase
@@ -18,7 +17,6 @@ import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.PieCh
 import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.PieChartItem.Pie
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTypesUseCase.FollowerType
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTypesUseCase.FollowerType.EMAIL
-import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTypesUseCase.FollowerType.SOCIAL
 import org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases.FollowerTypesUseCase.FollowerType.WP_COM
 import org.wordpress.android.ui.stats.refresh.utils.ContentDescriptionHelper
 import org.wordpress.android.ui.stats.refresh.utils.StatsSiteProvider
@@ -31,7 +29,6 @@ class FollowerTypesUseCase @Inject constructor(
     @Named(UI_THREAD) private val mainDispatcher: CoroutineDispatcher,
     @Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher,
     private val followersStore: FollowersStore,
-    private val publicizeStore: PublicizeStore,
     private val statsSiteProvider: StatsSiteProvider,
     private val contentDescriptionHelper: ContentDescriptionHelper,
     private val statsUtils: StatsUtils,
@@ -44,19 +41,16 @@ class FollowerTypesUseCase @Inject constructor(
     override suspend fun loadCachedData(): Map<FollowerType, Int>? {
         val wpComFollowers = followersStore.getWpComFollowers(statsSiteProvider.siteModel, LimitMode.Top(0))
         val emailFollowers = followersStore.getEmailFollowers(statsSiteProvider.siteModel, LimitMode.Top(0))
-        val publicizeServices = publicizeStore.getPublicizeData(statsSiteProvider.siteModel, LimitMode.All)
-        if (wpComFollowers != null && emailFollowers != null && publicizeServices != null) {
-            val socialFollowers = publicizeServices.services.sumOf { it.followers }
-            return buildDataModel(wpComFollowers.totalCount, emailFollowers.totalCount, socialFollowers)
+        if (wpComFollowers != null && emailFollowers != null) {
+            return buildDataModel(wpComFollowers.totalCount, emailFollowers.totalCount)
         }
         return null
     }
 
-    private fun buildDataModel(wpComTotals: Int?, emailTotals: Int?, socialTotals: Int?): Map<FollowerType, Int> {
+    private fun buildDataModel(wpComTotals: Int?, emailTotals: Int?): Map<FollowerType, Int> {
         val map = mutableMapOf<FollowerType, Int>()
         wpComTotals?.let { map[WP_COM] = it }
         emailTotals?.let { map[EMAIL] = it }
-        socialTotals?.let { map[SOCIAL] = it }
         return map
     }
 
@@ -69,20 +63,15 @@ class FollowerTypesUseCase @Inject constructor(
         val deferredEmailResponse = async(bgDispatcher) {
             followersStore.fetchEmailFollowers(statsSiteProvider.siteModel, fetchMode, forced)
         }
-        val deferredPublicizeResponse = async(bgDispatcher) {
-            publicizeStore.fetchPublicizeData(statsSiteProvider.siteModel, LimitMode.All, forced)
-        }
 
         val wpComResponse = deferredWpComResponse.await()
         val emailResponse = deferredEmailResponse.await()
-        val publicizeResponse = deferredPublicizeResponse.await()
 
         val wpComModel = wpComResponse.model
         val emailModel = emailResponse.model
-        val socialTotals = publicizeResponse.model?.services?.sumOf { it.followers }
 
-        val error = wpComResponse.error ?: emailResponse.error ?: publicizeResponse.error
-        val data = buildDataModel(wpComModel?.totalCount, emailModel?.totalCount, socialTotals)
+        val error = wpComResponse.error ?: emailResponse.error
+        val data = buildDataModel(wpComModel?.totalCount, emailModel?.totalCount)
         return when {
             error != null -> State.Error(error.message ?: error.type.name)
             data.isNotEmpty() -> State.Data(data)
@@ -93,7 +82,6 @@ class FollowerTypesUseCase @Inject constructor(
     private fun getTitle(type: FollowerType) = when (type) {
         WP_COM -> R.string.stats_followers_wordpress_com
         EMAIL -> R.string.email
-        SOCIAL -> R.string.stats_insights_social
     }
 
     override fun buildUiModel(domainModel: Map<FollowerType, Int>): List<BlockListItem> {
@@ -167,7 +155,7 @@ class FollowerTypesUseCase @Inject constructor(
             Pie(label, it.value)
         }
 
-    enum class FollowerType { WP_COM, EMAIL, SOCIAL }
+    enum class FollowerType { WP_COM, EMAIL }
 
     companion object {
         private const val PERCENT_HUNDRED = 100.0
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCase.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCase.kt
index 28deb93cc99c..562c70d38738 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCase.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCase.kt
@@ -3,9 +3,12 @@ package org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases
 import kotlinx.coroutines.CoroutineDispatcher
 import org.wordpress.android.R
 import org.wordpress.android.analytics.AnalyticsTracker
+import org.wordpress.android.fluxc.model.stats.LimitMode
+import org.wordpress.android.fluxc.model.stats.subscribers.SubscribersModel
+import org.wordpress.android.fluxc.network.utils.StatsGranularity
 import org.wordpress.android.fluxc.store.StatsStore.InsightType
 import org.wordpress.android.fluxc.store.StatsStore.InsightType.TOTAL_FOLLOWERS
-import org.wordpress.android.fluxc.store.stats.insights.SummaryStore
+import org.wordpress.android.fluxc.store.stats.subscribers.SubscribersStore
 import org.wordpress.android.modules.BG_THREAD
 import org.wordpress.android.modules.UI_THREAD
 import org.wordpress.android.ui.stats.StatsViewType
@@ -32,7 +35,7 @@ import javax.inject.Named
 class TotalFollowersUseCase @Inject constructor(
     @Named(UI_THREAD) private val mainDispatcher: CoroutineDispatcher,
     @Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher,
-    private val summaryStore: SummaryStore,
+    private val subscribersStore: SubscribersStore,
     private val statsSiteProvider: StatsSiteProvider,
     private val resourceProvider: ResourceProvider,
     private val totalStatsMapper: TotalStatsMapper,
@@ -45,20 +48,37 @@ class TotalFollowersUseCase @Inject constructor(
 
     override fun buildEmptyItem() = buildUiModel(0)
 
-    override suspend fun loadCachedData() = summaryStore.getSummary(statsSiteProvider.siteModel)?.followers
+    override suspend fun loadCachedData(): Int {
+        val model = subscribersStore.getSubscribers(
+            statsSiteProvider.siteModel,
+            StatsGranularity.DAYS,
+            LimitMode.Top(1)
+        )
+        return getTotalSubscribersFromModel(model)
+    }
 
     override suspend fun fetchRemoteData(forced: Boolean): State<Int> {
-        val response = summaryStore.fetchSummary(statsSiteProvider.siteModel, forced)
-        val model = response.model?.followers
+        val response = subscribersStore.fetchSubscribers(
+            statsSiteProvider.siteModel,
+            StatsGranularity.DAYS,
+            LimitMode.Top(1),
+            forced
+        )
+        val model = response.model
         val error = response.error
 
         return when {
             error != null -> State.Error(error.message ?: error.type.name)
-            model != null -> State.Data(model)
+            model != null && model.dates.isNotEmpty() -> State.Data(getTotalSubscribersFromModel(model))
             else -> State.Empty()
         }
     }
 
+    private fun getTotalSubscribersFromModel(model: SubscribersModel?): Int {
+        val dates = model?.dates
+        return if (dates.isNullOrEmpty()) 0 else dates.first().subscribers.toInt()
+    }
+
     override fun buildUiModel(domainModel: Int): List<BlockListItem> {
         addActionCard(domainModel)
         val items = mutableListOf<BlockListItem>()
@@ -97,7 +117,7 @@ class TotalFollowersUseCase @Inject constructor(
     class TotalFollowersUseCaseFactory @Inject constructor(
         @Named(UI_THREAD) private val mainDispatcher: CoroutineDispatcher,
         @Named(BG_THREAD) private val backgroundDispatcher: CoroutineDispatcher,
-        private val summaryStore: SummaryStore,
+        private val subscribersStore: SubscribersStore,
         private val statsSiteProvider: StatsSiteProvider,
         private val resourceProvider: ResourceProvider,
         private val totalStatsMapper: TotalStatsMapper,
@@ -108,7 +128,7 @@ class TotalFollowersUseCase @Inject constructor(
         override fun build(useCaseMode: UseCaseMode) = TotalFollowersUseCase(
             mainDispatcher,
             backgroundDispatcher,
-            summaryStore,
+            subscribersStore,
             statsSiteProvider,
             resourceProvider,
             totalStatsMapper,
diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml
index f504750fa2ac..4d97e6aa8935 100644
--- a/WordPress/src/main/res/values/strings.xml
+++ b/WordPress/src/main/res/values/strings.xml
@@ -1323,7 +1323,6 @@
     <string name="stats_view_search_terms">Search Terms</string>
     <string name="stats_view_publicize">Jetpack Social Connections</string>
     <string name="stats_view_followers">Followers</string>
-    <string name="stats_view_follower_totals">Follower Totals</string>
     <string name="stats_view_total_likes">Total Likes</string>
     <string name="stats_view_total_comments">Total Comments</string>
     <string name="stats_view_total_followers">Total Followers</string>
@@ -1408,7 +1407,6 @@
     <string name="stats_insights_tumblr">Tumblr</string>
     <string name="stats_insights_google_plus">Google+</string>
     <string name="stats_insights_linkedin">LinkedIn</string>
-    <string name="stats_insights_social">Social</string>
     <string name="stats_insights_path">Path</string>
     <string name="stats_most_popular_percent_views">%1$s of views</string>
     <string name="stats_most_popular_percent_views_empty">Not enough activity. Check back later when your site\'s had more visitors!</string>


Test patch:
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/UiModelMapperTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/UiModelMapperTest.kt
index 894c3855afd3..c04d853e861a 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/UiModelMapperTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/UiModelMapperTest.kt
@@ -7,7 +7,7 @@ import org.junit.Test
 import org.mockito.Mock
 import org.wordpress.android.BaseUnitTest
 import org.wordpress.android.R
-import org.wordpress.android.fluxc.store.StatsStore.InsightType.FOLLOWER_TOTALS
+import org.wordpress.android.fluxc.store.StatsStore.InsightType.TOTAL_FOLLOWERS
 import org.wordpress.android.fluxc.store.StatsStore.ManagementType
 import org.wordpress.android.ui.stats.refresh.lists.StatsBlock.Success
 import org.wordpress.android.ui.stats.refresh.lists.StatsListViewModel.UiModel
@@ -31,7 +31,7 @@ class UiModelMapperTest : BaseUnitTest() {
         var error: Int? = null
         val uiModel = mapper.mapInsights(
             listOf(
-                UseCaseModel(FOLLOWER_TOTALS, data = listOf(), state = SUCCESS),
+                UseCaseModel(TOTAL_FOLLOWERS, data = listOf(), state = SUCCESS),
                 UseCaseModel(ManagementType.CONTROL, data = listOf(), state = SUCCESS)
             )
         ) {
@@ -40,7 +40,7 @@ class UiModelMapperTest : BaseUnitTest() {
 
         val model = uiModel as UiModel.Success
         assertThat(model.data).hasSize(2)
-        assertThat((model.data[0] as Success).statsType).isEqualTo(FOLLOWER_TOTALS)
+        assertThat((model.data[0] as Success).statsType).isEqualTo(TOTAL_FOLLOWERS)
         assertThat(model.data[0].type).isEqualTo(StatsBlock.Type.SUCCESS)
         assertThat(model.data[0].data).isEmpty()
         assertThat((model.data[1] as Success).statsType).isEqualTo(ManagementType.CONTROL)
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTotalsUseCaseTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTotalsUseCaseTest.kt
deleted file mode 100644
index 65e17d28a2df..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTotalsUseCaseTest.kt
+++ /dev/null
@@ -1,145 +0,0 @@
-package org.wordpress.android.ui.stats.refresh.lists.sections.insights.usecases
-
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import org.assertj.core.api.Assertions.assertThat
-import org.junit.Before
-import org.junit.Test
-import org.mockito.Mock
-import org.mockito.kotlin.any
-import org.mockito.kotlin.whenever
-import org.wordpress.android.BaseUnitTest
-import org.wordpress.android.R
-import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.fluxc.model.stats.FollowersModel
-import org.wordpress.android.fluxc.model.stats.LimitMode
-import org.wordpress.android.fluxc.model.stats.PagedMode
-import org.wordpress.android.fluxc.model.stats.PublicizeModel
-import org.wordpress.android.fluxc.model.stats.PublicizeModel.Service
-import org.wordpress.android.fluxc.store.StatsStore.OnStatsFetched
-import org.wordpress.android.fluxc.store.stats.insights.FollowersStore
-import org.wordpress.android.fluxc.store.stats.insights.PublicizeStore
-import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.UseCaseModel
-import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.UseCaseModel.UseCaseState.SUCCESS
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.ListItemWithIcon
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.Title
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.Type.LIST_ITEM_WITH_ICON
-import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.Type.TITLE
-import org.wordpress.android.ui.stats.refresh.utils.ContentDescriptionHelper
-import org.wordpress.android.ui.stats.refresh.utils.ItemPopupMenuHandler
-import org.wordpress.android.ui.stats.refresh.utils.StatsSiteProvider
-import org.wordpress.android.ui.stats.refresh.utils.StatsUtils
-
-@ExperimentalCoroutinesApi
-class FollowerTotalsUseCaseTest : BaseUnitTest() {
-    @Mock
-    lateinit var followersStore: FollowersStore
-
-    @Mock
-    lateinit var publicizeStore: PublicizeStore
-
-    @Mock
-    lateinit var statsSiteProvider: StatsSiteProvider
-
-    @Mock
-    lateinit var contentDescriptionHelper: ContentDescriptionHelper
-
-    @Mock
-    lateinit var popupMenuHandler: ItemPopupMenuHandler
-
-    @Mock
-    lateinit var statsUtils: StatsUtils
-
-    @Mock
-    lateinit var site: SiteModel
-    private lateinit var useCase: FollowerTotalsUseCase
-
-    private val emailModel = FollowersModel(7, emptyList(), false)
-    private val wpModel = FollowersModel(3, emptyList(), false)
-    private val socialModel = PublicizeModel(
-        listOf(
-            Service("Twitter", 10),
-            Service("FB", 5)
-        ),
-        false
-    )
-    private val contentDescription = "title, views"
-
-    @Before
-    fun setUp() {
-        useCase = FollowerTotalsUseCase(
-            testDispatcher(),
-            testDispatcher(),
-            followersStore,
-            publicizeStore,
-            statsSiteProvider,
-            contentDescriptionHelper,
-            statsUtils,
-            popupMenuHandler
-        )
-        whenever(statsSiteProvider.siteModel).thenReturn(site)
-
-        whenever(followersStore.getEmailFollowers(site, LimitMode.Top(0))).thenReturn(emailModel)
-        whenever(followersStore.getWpComFollowers(site, LimitMode.Top(0))).thenReturn(wpModel)
-        whenever(publicizeStore.getPublicizeData(site, LimitMode.All)).thenReturn(socialModel)
-        whenever(
-            contentDescriptionHelper.buildContentDescription(
-                any(),
-                any<Int>()
-            )
-        ).thenReturn(contentDescription)
-        whenever(statsUtils.toFormattedString(any<Int>(), any())).then { (it.arguments[0] as Int).toString() }
-    }
-
-    @Test
-    fun `maps follower totals to UI model`() = test {
-        val forced = false
-        val refresh = true
-
-        whenever(followersStore.fetchEmailFollowers(site, PagedMode(0))).thenReturn(OnStatsFetched(emailModel))
-        whenever(followersStore.fetchWpComFollowers(site, PagedMode(0))).thenReturn(OnStatsFetched(wpModel))
-        whenever(publicizeStore.fetchPublicizeData(site, LimitMode.All)).thenReturn(OnStatsFetched(socialModel))
-
-        val result = loadFollowerTotalsData(refresh, forced)
-
-        assertThat(result.state).isEqualTo(SUCCESS)
-        result.data!!.apply {
-            assertThat(this).hasSize(4)
-            assertTitle(this[0])
-
-            for (i in 1..3) {
-                assertThat(this[i].type).isEqualTo(LIST_ITEM_WITH_ICON)
-                assertItem(this[i] as ListItemWithIcon)
-            }
-        }
-    }
-
-    private fun assertItem(item: ListItemWithIcon) {
-        when (item.icon) {
-            R.drawable.ic_wordpress_white_24dp -> {
-                assertThat(item.value).isEqualTo(3.toString())
-            }
-            R.drawable.ic_mail_white_24dp -> {
-                assertThat(item.value).isEqualTo(7.toString())
-            }
-            R.drawable.ic_share_white_24dp -> {
-                assertThat(item.value).isEqualTo(15.toString())
-            }
-        }
-        assertThat(item.contentDescription).isEqualTo(contentDescription)
-    }
-
-    private fun assertTitle(item: BlockListItem) {
-        assertThat(item.type).isEqualTo(TITLE)
-        assertThat((item as Title).textResource).isEqualTo(R.string.stats_view_follower_totals)
-        assertThat(item.menuAction).isNotNull
-    }
-
-    private suspend fun loadFollowerTotalsData(refresh: Boolean, forced: Boolean): UseCaseModel {
-        var result: UseCaseModel? = null
-        useCase.liveData.observeForever { result = it }
-        useCase.fetch(refresh, forced)
-        advanceUntilIdle()
-        return checkNotNull(result)
-    }
-}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCaseTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCaseTest.kt
index 6e4462d9565b..65a733f3f16d 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCaseTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/FollowerTypesUseCaseTest.kt
@@ -14,11 +14,8 @@ import org.wordpress.android.fluxc.model.SiteModel
 import org.wordpress.android.fluxc.model.stats.FollowersModel
 import org.wordpress.android.fluxc.model.stats.LimitMode
 import org.wordpress.android.fluxc.model.stats.PagedMode
-import org.wordpress.android.fluxc.model.stats.PublicizeModel
-import org.wordpress.android.fluxc.model.stats.PublicizeModel.Service
 import org.wordpress.android.fluxc.store.StatsStore.OnStatsFetched
 import org.wordpress.android.fluxc.store.stats.insights.FollowersStore
-import org.wordpress.android.fluxc.store.stats.insights.PublicizeStore
 import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.UseCaseModel
 import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.UseCaseModel.UseCaseState.SUCCESS
 import org.wordpress.android.ui.stats.refresh.lists.sections.BlockListItem.ListItem
@@ -34,9 +31,6 @@ class FollowerTypesUseCaseTest : BaseUnitTest() {
     @Mock
     lateinit var followersStore: FollowersStore
 
-    @Mock
-    lateinit var publicizeStore: PublicizeStore
-
     @Mock
     lateinit var statsSiteProvider: StatsSiteProvider
 
@@ -55,12 +49,8 @@ class FollowerTypesUseCaseTest : BaseUnitTest() {
 
     private val wpModel = FollowersModel(3, emptyList(), false)
     private val emailModel = FollowersModel(7, emptyList(), false)
-    private val socialModel = PublicizeModel(
-        listOf(Service("Twitter", 10), Service("FB", 5)), false
-    )
     private val wpComTitle = "WordPress"
     private val emailTitle = "Email"
-    private val socialTitle = "Social"
     private val totalLabel = "Totals"
     private val contentDescriptionValue = "value, percentage of total followers"
     private val contentDescription = "title: $contentDescriptionValue"
@@ -71,7 +61,6 @@ class FollowerTypesUseCaseTest : BaseUnitTest() {
             testDispatcher(),
             testDispatcher(),
             followersStore,
-            publicizeStore,
             statsSiteProvider,
             contentDescriptionHelper,
             statsUtils,
@@ -81,7 +70,6 @@ class FollowerTypesUseCaseTest : BaseUnitTest() {
 
         whenever(followersStore.getEmailFollowers(site, LimitMode.Top(0))).thenReturn(emailModel)
         whenever(followersStore.getWpComFollowers(site, LimitMode.Top(0))).thenReturn(wpModel)
-        whenever(publicizeStore.getPublicizeData(site, LimitMode.All)).thenReturn(socialModel)
         whenever(contentDescriptionHelper.buildContentDescription(any(), any())).thenReturn(contentDescription)
         whenever(statsUtils.toFormattedString(any<Int>(), any())).then { (it.arguments[0] as Int).toString() }
         whenever(
@@ -93,7 +81,6 @@ class FollowerTypesUseCaseTest : BaseUnitTest() {
         ).then { contentDescriptionValue }
         whenever(resourceProvider.getString(R.string.stats_followers_wordpress_com)).then { wpComTitle }
         whenever(resourceProvider.getString(R.string.email)).then { emailTitle }
-        whenever(resourceProvider.getString(R.string.stats_insights_social)).then { socialTitle }
         whenever(resourceProvider.getString(eq(R.string.stats_value_percent), any<String>(), any<String>()))
             .then { "${it.arguments[1]} (${it.arguments[2]}%)" }
         whenever(resourceProvider.getString(R.string.stats_follower_types_pie_chart_total_label)).then { totalLabel }
@@ -106,16 +93,15 @@ class FollowerTypesUseCaseTest : BaseUnitTest() {
 
         whenever(followersStore.fetchEmailFollowers(site, PagedMode(0))).thenReturn(OnStatsFetched(emailModel))
         whenever(followersStore.fetchWpComFollowers(site, PagedMode(0))).thenReturn(OnStatsFetched(wpModel))
-        whenever(publicizeStore.fetchPublicizeData(site, LimitMode.All)).thenReturn(OnStatsFetched(socialModel))
 
         val result = loadFollowerTypesData(refresh, forced)
 
         assertThat(result.state).isEqualTo(SUCCESS)
         result.data!!.apply {
-            assertThat(this).hasSize(4)
+            assertThat(this).hasSize(3)
             assertThat(this[0].type).isEqualTo(PIE_CHART)
 
-            for (i in 1..3) {
+            for (i in 1..2) {
                 assertThat(this[i].type).isEqualTo(LIST_ITEM)
                 assertItem(this[i] as ListItem)
             }
@@ -124,9 +110,8 @@ class FollowerTypesUseCaseTest : BaseUnitTest() {
 
     private fun assertItem(item: ListItem) {
         when (item.text) {
-            wpComTitle -> assertThat(item.value).isEqualTo("3 (12%)")
-            emailTitle -> assertThat(item.value).isEqualTo("7 (28%)")
-            socialTitle -> assertThat(item.value).isEqualTo("15 (60%)")
+            wpComTitle -> assertThat(item.value).isEqualTo("3 (30%)")
+            emailTitle -> assertThat(item.value).isEqualTo("7 (70%)")
         }
         assertThat(item.contentDescription).isEqualTo(contentDescription)
     }
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCaseTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCaseTest.kt
index 93165d577ace..69a4b88caf9d 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCaseTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/lists/sections/insights/usecases/TotalFollowersUseCaseTest.kt
@@ -10,11 +10,13 @@ import org.mockito.kotlin.whenever
 import org.wordpress.android.BaseUnitTest
 import org.wordpress.android.R
 import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.fluxc.model.stats.SummaryModel
+import org.wordpress.android.fluxc.model.stats.LimitMode
+import org.wordpress.android.fluxc.model.stats.subscribers.SubscribersModel
+import org.wordpress.android.fluxc.network.utils.StatsGranularity
 import org.wordpress.android.fluxc.store.StatsStore.OnStatsFetched
 import org.wordpress.android.fluxc.store.StatsStore.StatsError
 import org.wordpress.android.fluxc.store.StatsStore.StatsErrorType.GENERIC_ERROR
-import org.wordpress.android.fluxc.store.stats.insights.SummaryStore
+import org.wordpress.android.fluxc.store.stats.subscribers.SubscribersStore
 import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.UseCaseMode
 import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.UseCaseModel
 import org.wordpress.android.ui.stats.refresh.lists.sections.BaseStatsUseCase.UseCaseModel.UseCaseState
@@ -32,7 +34,7 @@ import org.wordpress.android.viewmodel.ResourceProvider
 @ExperimentalCoroutinesApi
 class TotalFollowersUseCaseTest : BaseUnitTest() {
     @Mock
-    lateinit var insightsStore: SummaryStore
+    lateinit var subscribersStore: SubscribersStore
 
     @Mock
     lateinit var statsSiteProvider: StatsSiteProvider
@@ -58,14 +60,14 @@ class TotalFollowersUseCaseTest : BaseUnitTest() {
     @Mock
     lateinit var actionCardHandler: ActionCardHandler
     private lateinit var useCase: TotalFollowersUseCase
-    private val followers = 100
+    private val subscribers = 10L
 
     @Before
     fun setUp() {
         useCase = TotalFollowersUseCase(
             testDispatcher(),
             testDispatcher(),
-            insightsStore,
+            subscribersStore,
             statsSiteProvider,
             resourceProvider,
             totalStatsMapper,
@@ -82,9 +84,12 @@ class TotalFollowersUseCaseTest : BaseUnitTest() {
     fun `maps summary to UI model`() = test {
         val forced = false
         val refresh = true
-        val model = SummaryModel(0, 0, followers)
-        whenever(insightsStore.getSummary(site)).thenReturn(model)
-        whenever(insightsStore.fetchSummary(site, forced)).thenReturn(OnStatsFetched(model))
+        val periodData = SubscribersModel.PeriodData("2024-04-24", subscribers)
+        val modelPeriod = "2024-05-03"
+        val model = SubscribersModel(modelPeriod, listOf(periodData))
+        whenever(subscribersStore.getSubscribers(site, StatsGranularity.DAYS, LimitMode.Top(1))).thenReturn(model)
+        whenever(subscribersStore.fetchSubscribers(site, StatsGranularity.DAYS, LimitMode.Top(1)))
+            .thenReturn(OnStatsFetched(model))
 
         val result = loadSummary(refresh, forced)
 
@@ -101,9 +106,8 @@ class TotalFollowersUseCaseTest : BaseUnitTest() {
         val forced = false
         val refresh = true
         val message = "Generic error"
-        whenever(insightsStore.fetchSummary(site, forced)).thenReturn(
-            OnStatsFetched(StatsError(GENERIC_ERROR, message))
-        )
+        whenever(subscribersStore.fetchSubscribers(site, StatsGranularity.DAYS, LimitMode.Top(1), forced))
+            .thenReturn(OnStatsFetched(StatsError(GENERIC_ERROR, message)))
 
         val result = loadSummary(refresh, forced)
 
@@ -118,7 +122,7 @@ class TotalFollowersUseCaseTest : BaseUnitTest() {
     private fun assertValue(blockListItem: BlockListItem) {
         assertThat(blockListItem.type).isEqualTo(VALUE_WITH_CHART_ITEM)
         val item = blockListItem as ValueWithChartItem
-        assertThat(item.value).isEqualTo(followers.toString())
+        assertThat(item.value).isEqualTo(subscribers.toString())
     }
 
     private suspend fun loadSummary(refresh: Boolean, forced: Boolean): UseCaseModel {