Why this mattered (Product framing)
Problem
Formula creation was the main barrier to user autonomy. Analysts depended on Customer Success to set up and maintain formulas, which created an operational bottleneck and reduced the product’s self-serve value.
Success Definition
-
Analysts can create and adjust formulas without needing SQL knowledge
-
Users can select the right dimensions confidently (less fragile referencing)
-
Advanced users can still express complex logic via scoped conditions
The Process
Discovery
Inputs
- Reviewed Customer Success interview recordings and onboarding feedback
- Worked with CS and internal financial SMEs to understand common modeling patterns
- Assessed the formula workflow through internal usage and dogfooding
Risks and Constraints
-
Must map cleanly to SQL engine.
-
Large dataset recompute cost.
-
Multi-table workspaces.
Key insights
-
Language mismatch: Users thought in arithmetic and Excel patterns, not SQL commands.
-
Referencing friction: Selecting the correct rows/columns/dimensions was fragile and error-prone.
-
Hidden complexity: Some users “used SQL” without realizing it, leading to low confidence and frequent mistakes.
-
Performance risk: Editing formulas could trigger expensive recomputation on large datasets, impacting system stability.
Design principles
The Solution
1. Excel-aligned expression
layer (on top of SQL)
2. Autocomplete +
point-and-click
3. Explicit Apply/Cancel
interactions
Excel-aligned expression layer (on top of SQL)
We replaced SQL-style operations with familiar arithmetic operators and readable tokens so analysts could express intent without thinking like developers. Syntax highlighting helped users parse grouping and structure at a glance.
Autocomplete + point-and-click
To reduce fragile typing, users could reference fields/dimensions by:
This reduced reliance on recall and minimized syntax mistakes.
Guardrails for performance and error prevention
During internal testing, we found that “live” formula edits could trigger heavy calculation on large datasets, causing slowdowns and system instability. We introduced explicit "Apply" and Cancel controls, allowing users to review changes before running expensive processes.
Progressive complexity via scoped conditions (“Where”)
Basic formulas needed to be easy, but real modeling required context. We used a scope builder so formulas could apply to:
This kept the default path simple while supporting advanced logic when needed.
Formulas as reusable objects
As the product evolved into multi-table workspaces, formulas needed to behave like first-class objects, not ephemeral text inputs. A workspace could contain multiple tables, and each table could have multiple formulas attached. Naming made formulas:
More Context
Collaboration
-
PM led the initiative; I owned the end-to-end design work
-
Partnered with Engineering to ensure the Excel-like layer mapped cleanly to the underlying SQL engine
-
Used Customer Success and internal analysts as domain proxies for early validation
Key trade-off: robust conditions vs simplicity
We recognized the conditions system could feel complex, but it was necessary to support real-world financial modeling. We kept the system robust while making the default path lightweight and progressively revealing complexity.
Validation and outcomes
Validation approach
- Pre-launch validation was internal (CS + internal analysts) due to time/access constraints
- Post-launch feedback informed iteration.
- What we tracked: success rate, average task time.
Results
Better and shorter onboarding
-
Before: CS building formulas during onboarding
-
After: analysts can self-serve; CS shifts to enablement
-
Metric: 20% reduction first model implementation time + NPS improvement