Cutting Notification Volume Without Hurting Engagement
Instagram’s notification stack has to balance two competing pressures: keep users informed about relevant activity, and avoid overwhelming them with messages they don’t care about. As notification types have multiplied, the team at Meta has turned to a combination of machine learning and causal inference to make smarter send/drop decisions — particularly for daily digest push notifications about stories.
These digests list stories shared by a user’s connections that are ready to view. Historically, a click-through rate (CTR) model predicted the likelihood of a user tapping the notification; low-probability notifications were dropped before reaching the device. That approach successfully raised average click rates, but it exposed a problem: a large share of digest notifications went to highly active users who would likely see those same stories organically anyway. Sending them the digest added little value and risked being perceived as noise.
The challenge was identifying those users without causing harm. Cutting notifications to users based purely on observed activity is risky — they might be active because they receive such notifications. The right approach needed to estimate the actual incremental value of sending versus dropping each notification.
Formulating Send Decisions as Budget Allocation
Meta framed the problem in economic terms. Assuming a fixed compute cost per notification and a total sending budget, the task becomes allocating that budget to maximize incremental value. For user i, incremental value is defined as:
ui=Pri(active|do(send notification)) – Pri(active|do(drop notification))
For some cohorts, activeness doesn’t depend on receiving the digest — their incremental values are small, and sending to them is both inefficient and potentially spammy. The optimal strategy is to rank notifications by incremental value in descending order and send only the top ones, constrained by the budget.
Estimating that increment before making a send/drop decision is the hard part. For any single notification, only one outcome is observable. This is a classic causal inference problem, solvable with uplift modeling. Meta designed a randomized experiment where each notification was randomly sent or dropped, generating the data needed to train an uplift model. The figure below outlines that experimental design.

Using that data, the team developed a neural network-based uplift model to predict the incremental impact of sending versus dropping a daily digest at the user level. If all notifications could be scored upfront, budget allocation would be trivial. In practice, notifications are generated and scored in real time online, so a different approach was needed.
Stabilizing Online Sending Rates
The online solution compares each notification’s uplift score against a fixed threshold — send if the score is above it. That maintains a target sending rate r (where 0 < r < 1). However, raw uplift estimates from ML models can drift over time, causing the actual sending rate to fluctuate during online tests.
To stabilize the rate, Meta routed uplift estimates through an online quantile computation service. This transforms the raw scores toward a standard uniform distribution while preserving their ordering. Since the transformed value Z~U(0,1), the condition Pr(Z >= 1 – r) = r holds, so comparing the transformed score against r reliably enforces the desired sending rate. The flow is shown below.

Results and Impact
With the uplift model targeting users and notifications with high incremental impact, Meta substantially reduced digest notification volume compared with the CTR-based approach — with no observed decline in user engagement. The outcome is twofold: a better notification experience for users and lower resource consumption from reduced sending.
The same combination of ML and statistical techniques is being applied across other areas of Instagram’s notification systems to refine how and when notifications are delivered.



