Feature Flag & Experiment Report Connection
One Flag, One Experiment?
The knowledge sources don't explicitly state whether a single Mixpanel Feature Flag can be connected to only one experiment report at a time. I can't confirm or deny this with certainty based on the available documentation.
Retrospective Corrections to an Experiment Report
The good news is that Mixpanel does allow you to change experiment settings mid-run, with some important caveats:
"Mixpanel analyzes your experiment on the fly, so you can adjust settings at any time if needed. If you notice a configuration mistake — like selecting Frequentist when you meant Sequential — feel free to correct it, even if the experiment has been running for weeks." [Changing Settings Mid-Experiment]
So for genuine configuration mistakes, you can fix them retroactively without the report being permanently "contaminated."
What You Should NOT Do
The key warning is around p-hacking — don't adjust settings because you don't like the current results:
"The one thing to avoid is changing settings because the current results aren't what you hoped for. If you adjust the confidence level, metrics, or duration in search of a significant result, you're more likely to find something that looks meaningful but is actually noise." [Changing Settings Mid-Experiment]
When to Start Fresh
If you want to test a fundamentally different configuration rather than correct a mistake, the recommended approach is to restart the experiment:
"If you want to test a different configuration, restart the experiment instead. This resets the data and ensures your analysis starts fresh." [Changing Settings Mid-Experiment]
In summary: Genuine mistakes can be corrected on the fly. The report won't be permanently contaminated as long as you're fixing real errors rather than chasing favorable results. For deeper reconfigurations, restarting is the clean path forward.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Unfortunately, Mixpanel does not currently support selectively disabling individual geolocation properties. The three properties — City, Region, and Country — are always derived and set together. As the documentation states:
"There is currently no means to selectively disable one or two of the three geolocation properties."
[Default Properties] Your options are:
Track all three or none — You can disable geolocation entirely (e.g., {"ip": false} in the JS SDK), but this removes all three properties.
Manually set only the country — You can disable automatic geolocation and then manually set only the country property yourself in your event/profile payloads:{ "event": "Signed Up", "properties": { "distinct_id": "13793", "token": "project_token", "mp_country_code": "US", "ip": "0" } }By setting ip to 0 (to suppress automatic geolocation) and only including mp_country_code (omitting $city and $region), you can effectively track only the country. [Manual Geolocation]
Hide unused properties in the UI — While City and Region would still be stored, you can choose not to use them in your reports and analyses.
The manual approach (option 2) is likely your best path if you only want country-level data.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Yes, there are a few ways to prevent the $city property from being sent, depending on your setup:
Option 1: Disable Geolocation Entirely
Since $city is derived from IP-based geolocation, the most straightforward approach is to disable geolocation tracking. Note that this will also disable $region and mp_country_code (Country) — there is currently no way to disable only one or two of the three geolocation properties. [Default Properties] Here's how to do it per SDK: JavaScript
mixpanel.init("YOUR_TOKEN", { ip: false });[JS SDK] iOS (Swift)
let options = MixpanelOptions(token: "YOUR_PROJECT_TOKEN", useIPAddressForGeoLocation: false)
Mixpanel.initialize(options: options)[Swift SDK] Android
<meta-data android:name="com.mixpanel.android.MPConfig.UseIpAddressForGeolocation" android:value="false" />[Android SDK] Node.js
const mp = Mixpanel.init('<YOUR_TOKEN>', { geolocate: false });[Node.js SDK] PHP
$mp = Mixpanel::getInstance("YOUR_PROJECT_TOKEN", array(
"events_endpoint" => "/track?ip=0"
));[PHP SDK]
Option 2: Blacklist the Property (JavaScript only)
If you're using the JavaScript SDK and want to prevent $city from being sent as a default property, you can use the property_blacklist config:
mixpanel.init("YOUR_TOKEN", {
property_blacklist: ['$city']
});Option 3: Block the Property in Lexicon
You can also block the $city property in Lexicon from the Mixpanel UI. This will prevent any new data for that property from being stored going forward (though previously ingested data will remain). Only project owners can do this. [Blocking Data]
Recommendation: If your goal is full privacy compliance, Option 1 (disabling geolocation at the SDK level) is the most thorough approach.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
I'm sorry, but the knowledge sources do not contain enough information to explain why a project Owner would be blocked from editing a shared custom event in Lexicon, even when it is used in multiple reports. This does not appear to be expected behavior based on the documented permissions. I'd recommend reaching out to Mixpanel Support directly, as this is likely either a bug or an edge case that isn't covered in the available documentation. When contacting support, it would be helpful to mention:
Your organization and project role (Owner in both)
That the custom event is shared and referenced in multiple reports
The specific action you're trying to perform (e.g., rename, change definition)
Any error message you're seeing
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
I'm sorry, but the knowledge sources do not contain enough information to explain why a project Owner would be unable to edit a custom event they created. Based on the permissions table, project Owners should have full Create/Edit Custom Events permissions. [Project Roles] Since your role shouldn't be the issue, here are a few things worth checking:
Are you trying to edit via Lexicon? Navigate to Lexicon → Custom Events, click the event name to edit it. Project Owners have full access to this. [Custom Events]
Is it actually a Custom Event? Make sure it's not a different type of definition (e.g., a Saved Behavior or Custom Property), which may have different editing flows.
Is it a shared vs. private event? There may be edge cases around ownership of shared events.
For a definitive answer on why an Owner cannot edit their own custom event, I'd recommend reaching out to Mixpanel Support directly, as this may be a bug or an edge case not covered in the available documentation.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Based on the knowledge sources, editing custom events in Lexicon requires at least a Project Admin role. Here's the relevant permission breakdown:
Action | Owner | Admin | Analyst | Consumer |
Create/Edit Custom Events | ✅ | ✅ | ✅ | ✅ Can save only for self |
Edit Descriptions in Lexicon | ✅ | ✅ | ❌ | ❌ |
Merge Data in Lexicon | ✅ | ❌ | ❌ | ❌ |
Drop Data in Lexicon | ✅ | ❌ | ❌ | ❌ |
The most likely reason you can't edit a custom event even as its creator is your project role. Specifically:
Analysts and Consumers can create custom events, but managing them fully (e.g., editing via Lexicon) requires Admin or Owner level access. [Project Roles]
Custom events are edited and deleted via Lexicon, and Lexicon editing permissions are restricted to Owners and Admins. [Custom Events]
What you can do:
If you are an Analyst or Consumer, you can create custom events but may be limited in editing them through Lexicon. Ask a project Owner or Admin to edit it on your behalf, or request a role upgrade.
If you believe you should have the right role, check with your project Owner or Admin to confirm your current project role under Project Settings > Project Users.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Measuring Form Success and Error Rates in Mixpanel
This is a perfect use case for Funnels combined with Formulas in Insights. Here are two approaches:
Option 1: Use a Funnel Report (Recommended)
Build a funnel with your three events to visualize the conversion and drop-off:
Open the Funnels report
Add your steps in this order:
Step 1: form_start
Step 2: form_submit (success path)
The funnel will automatically show you:
Conversion Rate = % of users who successfully submitted the form
Drop-off Rate = % of users who started but did NOT submit (which may include form_error_submit)
To also track the error path:
Use Event Comparison at Step 2 to compare both outcomes side by side:
Click the "…" menu on Step 2
Select "Event Comparison"
Add both form_submit and form_error_submit as comparison events
This will show you what percent of users who started the form ended up with a success vs. an error submission. [Comparison Events] docs.mixpanel.com/_next/image?w=3840&q=75
Option 2: Use Formulas in Insights
If you want a custom calculated percentage, use the Formula feature in Insights:
Open the Insights report
Add three metrics:
A = Unique Users who did form_start
B = Unique Users who did form_submit
C = Unique Users who did form_error_submit
Click Metrics → Formula and create:
Success Rate: B / A * 100
Error Rate: C / A * 100
Which Should You Use?
Scenario | Best Option |
Visualize the full user journey step by step | Funnel Report |
Get a single calculated % metric to track over time | Insights Formula |
Compare success vs. error side by side | Funnel + Event Comparison |
💡 Tip: You can save the Formula as a Saved Metric and add it to a Board so your team can monitor form success/error rates over time without rebuilding the report. [Saved Metrics]
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Formulas in Mixpanel Reports
What is the Formula Option?
Formulas allow you to make calculations using simple arithmetic operators across your metrics in the Insights report. Each metric in your report is assigned a letter (A, B, C...) which you can combine with operators to create more advanced queries. [Insights Formulas] Mixpanel supports the following operators:
+ : Add
- : Subtract
* : Multiply
/ : Divide
() : Parentheses to control order of operations
Numbers as constants (e.g., multiply by 100 to show a percentage)
Example use cases:
Calculate stickiness: DAU / MAU
Calculate bounce rate: A / B * 100
Calculate % active users: A / B
Can You Do an Addition or Record Count on a List?
Yes, partially! For list of objects properties, Mixpanel provides built-in property computations: [List of Objects]
1. Size (Record Count)
Returns the length/count of items in the list — equivalent to a record count.
2. Sum
Prompts you to select a numeric property within the objects of the list and returns the total sum across all items in the list.
3. Distinct Count
Returns the number of unique values for a selected property within the list.
How to Use List Computations
In your Insights report, click on the measurement dropdown
Select Aggregate Property
Choose your list of objects property
Mixpanel will prompt you to select a computation:
Size → for record count
Sum → for addition of a numeric property
Distinct Count → for unique value count
docs.mixpanel.com/_next/image?w=3840&q=75&… [List of Objects]
Additional Option: Custom Properties
If you need more complex calculations (e.g., combining price * quantity), you can use Custom Properties with numeric operators to compute new properties on the fly: [Custom Properties]
price * quantityThis creates a new computed property you can then use in your Insights report metrics.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Discrepancies Between Mixpanel and Your Database User Counts
There are several common reasons why user counts may differ between Mixpanel and your database:
1. Identity Management Issues
This is the most common cause. If the totals match but unique user counts differ, it likely points to an ID management issue. [Debugging Discrepancies]
If multiple users share the same device and reset() is not called on logout, the next user inherits the previous user's distinct_id, causing Mixpanel to merge them into one profile [Identity Management]
If different sources (web, mobile, third-party tools) assign different identifiers to the same user, Mixpanel may create duplicate profiles
If your backend sends events for different users using the same distinct_id, all events are attributed to a single user
2. Different Counting Methods
Is your database counting registered users while Mixpanel counts active users?
Are you comparing unique user count vs. total event count? [Data Discrepancies]
3. Ad Blockers & Client-Side Tracking
Client-side tracking can lose events for 30–50% of users due to ad blockers or Do Not Track settings [Data Discrepancies]
Users blocked by ad blockers won't appear in Mixpanel but will still exist in your database
4. Delayed or Late-Arriving Data
Mixpanel accepts late data via mobile SDKs or imports, which can cause temporary discrepancies
Events older than 5 days sent to the /track endpoint will not be ingested by Mixpanel [Delayed Ingestion]
5. Different Timezones
Mixpanel stores events in UTC but displays them in your project's timezone
Your database may use a different timezone, causing users to fall into different date buckets [Data Discrepancies]
How to Debug
Remove all filters from your Mixpanel report first, then re-add them one by one to identify the culprit [Data Discrepancies]
Compare total event count vs. unique user count — if totals match but uniques differ, focus on ID management [Debugging Discrepancies]
Drill down into a specific day with the biggest discrepancy to identify a pattern
Check specific distinct_ids that should exist in Mixpanel but may have been ingested under a different ID
Consider implementing server-side tracking as a source of truth to compare against both systems [Debugging Discrepancies]
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Here are the relevant resources on how to create a Borrowed Property in Mixpanel:
Documentation: [Borrowed Properties Docs] — covers step-by-step instructions, use cases, and borrowing mechanics (including the 7-day lookback window and the 20-property limit).
Blog post: [Borrowed Properties Blog] — explains the feature with real-world examples and links to a walkthrough video.
A few key things to keep in mind:
Borrowed property creation is limited to Admin & Owner roles only. [Roles & Permissions]
The feature is available on Growth and Enterprise plans. [Borrowed Properties Blog]
A project can have a maximum of 20 borrowed properties. [Borrowing Mechanics]
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
