Notion works beautifully for your first 50 contacts. The dashboard loads instantly, filters snap into place, relation fields populate in milliseconds. By 200 contacts, you start noticing lag on the Kanban view. At 500, the system doesn't just slow down—entire workflows become unusable. We tested this with real data: a 500-contact database, 2,000 relation records linking contacts to deals and projects, and filters that founders actually use. What we found was a predictable degradation curve that catches most teams by surprise. The collapse starts with rollup calculations Rollup fields are where Notion CRM performance dies first. A rollup aggregates data across relations—counting opportunities per contact, summing deal value, averaging close dates. These seem free until you have hundreds of related records. We built a test database with: 500 contacts, each linked to an average of 4 deals A rollup calculating total pipeline value per contact A second rollup counting open opportunities A third rollup averaging deal age Load time for the main Contacts view: 3.2 seconds on first load, 2.1 seconds on refresh. Navigate to a single contact record to see their deal list: 4.7 seconds. Click to sort by pipeline value (which requires re-calculating the rollup): 6.8 seconds, then a hang of 2–3 seconds mid-sort. By contrast, a CRM built for scale recalculates these aggregations in the background and caches the result. Notion recalculates on every view, every filter change, every sort. The moment you add a third rollup field to a 300+ contact database, you've crossed the threshold where Notion CRM becomes a data warehouse instead of a tool. Every action costs 3–6 seconds. Relation field lookups degrade exponentially Relation fields let you link contacts to deals, projects, or custom objects. They're the skeleton of any working CRM. At 500 contacts with 2,000 active relations, the search and autocomplete in relation fields becomes painful. Open a deal record. Click into the "Related Contacts" relation field to add a new contact. Notion's autocomplete has to filter 500 contacts and search across your text. First keystroke: 0.8 seconds before results appear. Subsequent keystrokes add another 0.5–1.2 seconds each as Notion re-filters the list. Now add a filter. Many teams use a relation field filter ("show only deals linked to contacts in [specific region]"). With 2,000 relations to evaluate, that filter evaluation takes 2–4 seconds per page load. Stack two relation filters, and you're at 6–8 seconds. Three filters: the page becomes unresponsive. The problem: Notion doesn't index relation fields for fast lookup. It performs a full scan every time. Query speed collapses under combined filters Single filters work fine. A text search on contact name, a property filter on deal stage—both snap to results. But real CRM workflows use multiple filters at once: show me deals in "negotiation" stage, linked to contacts in North America, where deal size is over $50K, and the close date is within 30 days. We tested a 500-contact database with stacked filters: One filter: 0.3 seconds Two filters (one on relations): 1.2 seconds Three filters (two on relations): 3.8 seconds Four filters (three on relations, one on rollup): 7.4 seconds, with occasional timeouts Five filters: Timeout (request exceeds 30 seconds) The degradation is exponential, not linear. Each additional filter multiplies the work Notion has to do, especially when filters reference relations or rollup fields. By the fourth filter, the system is re-evaluating thousands of calculations for every view load. Formula fields amplify the problem Many teams use formula fields to compute deal score, days since last contact, or pipeline health indicators. These are useful—but they compound the performance hit because Notion recalculates formulas on every database change. In our 500-contact test with a formula field that calculated days since last contact (using NOW() and a date field), we saw: Adding one contact: 0.6 seconds (recalculates all 500 formulas) Bulk-importing 50 contacts: 18 seconds of background recalculation Editing a single date field on any contact: 1.2 seconds as formulas cascade Layer three formula fields, and a single contact edit can lock the database for 3–4 seconds. The visibility tax: Kanban, gallery, and timeline views die first Table view is Notion's most performant view. Kanban, gallery, and timeline views are slower because they reorganize data on the fly. At 500 contacts with relations and rollups, these views become nearly unusable. We tested a deal pipeline in Kanban view (grouping by deal stage, showing 250 deals): Initial load: 8.2 seconds Drag a deal between stages: 3–4 seconds to update the relation and refresh the view With filters applied: 12+ seconds to reload Timeline view was worse. A timeline of 200 deals with linked contacts took 14 seconds to load and became unresponsive when scrolling. Gallery view (showing deal cards with contact info) consiste