Cloning & Versioning
Safe Model Experimentation Through Version Control
Overview
Cloning creates an exact copy of an existing model, allowing you to experiment with different specifications while preserving your original working model. This is essential for iterative model development, testing hypotheses, and maintaining version history.
Purpose: Create model copies for safe experimentation and version management
Access: Model Library → Select model → Click "Clone" button
What is Model Cloning?
What Gets Cloned
When you clone a model, MixModeler creates an exact duplicate including:
✅ All variables: Every independent variable in the model ✅ Variable transformations: Adstock rates, curve parameters ✅ Model specification: Which variables are included ✅ KPI selection: Same dependent variable ✅ Observation filters: If you filtered time periods ✅ Model type: OLS or Bayesian setting
What Doesn't Get Cloned
❌ Model name: You must provide a new unique name ❌ Export path: Clone starts with empty export path ❌ Last modified date: Clone gets current timestamp ❌ Regression results: Must re-run after cloning (automatically done)
Clone vs. Create New
Clone when:
Starting from existing working model
Testing variable additions/removals
Experimenting with transformations
Creating alternative specifications
Preserving model versions
Create new when:
Different KPI needed
Completely different modeling approach
Starting from scratch
No similar model exists
How to Clone a Model
Step 1: Select Model to Clone
In Model Library table:
Find the model you want to clone
Optional: Select its checkbox (not required)
Locate the Clone button in the Actions column
Step 2: Click Clone Button
Click the 📋 Clone button for the model.
A dialog appears prompting for the new model name.
Step 3: Enter New Model Name
Default suggestion: OriginalModelName_clone
Recommended naming:
Add version number:
Sales_Model_v2Add description:
Sales_Model_With_RadioAdd date:
Sales_Model_2024_12_15Add experiment type:
Sales_Model_Curves
Name requirements:
Must be unique (cannot duplicate existing model)
Can use letters, numbers, underscores, hyphens
Avoid special characters
Step 4: Confirm Clone
Click OK or Clone to create the copy.
What happens:
New model created with all specifications
Model appears in Model Library table
Regression automatically re-run
Ready for modifications in Model Builder
Cloning Strategies
Version Control Approach
Linear versioning:
Process:
Build v1 with core variables
Clone to v2, add more variables
Clone to v3, optimize transformations
Keep best performing version
Delete inferior versions
Benefits:
Clear progression
Easy to track changes
Can revert if needed
Experimental Branches
Branching for different approaches:
Process:
Create stable base model
Clone for each experiment
Test different approaches independently
Compare results
Select best approach
Benefits:
Parallel experimentation
Safe testing environment
Easy comparison
Feature Testing
Clone to test specific additions:
Process:
Clone base model
Add single new feature to each clone
Compare each to base
Keep features that improve model
Merge into final model
Benefits:
Isolate variable effects
Clear attribution of improvements
Systematic testing
Best Practices
Naming Conventions
Version-based naming:
ModelName_v1,ModelName_v2,ModelName_v3Clear progression
Easy sorting
Description-based naming:
ModelName_BaselineModelName_With_CurvesModelName_Digital_FocusDescribes key difference
Date-based naming:
ModelName_2024_12_15ModelName_Q4_2024Timestamps experiments
Hybrid approach (recommended):
Sales_Model_v2_Curves_2024_12Combines version, description, and date
Maximum clarity
When to Clone
✅ Before major changes:
Adding/removing multiple variables
Changing transformation strategy
Switching from OLS to Bayesian
Major specification changes
✅ For experimentation:
Testing hypotheses
Trying alternative approaches
Sensitivity analysis
What-if scenarios
✅ For documentation:
Preserving milestone versions
Creating reference models
Maintaining audit trail
❌ Don't clone for:
Minor tweaks (just modify original)
Single variable addition (compare first)
Fixing obvious errors
Temporary testing (use Model Builder)
Managing Clones
Keep it clean:
Delete failed experiments after comparison
Maintain 2-3 active versions maximum
Archive important milestones by exporting
Use consistent naming for easy identification
Documentation:
Note why you cloned in a separate document
Track key differences between versions
Record which version is "production"
Document decision rationale
Lifecycle management:
Typical model lifecycle:
Clone for experiment
Make modifications
Compare to original
Keep if better, delete if worse
Repeat
Common Cloning Workflows
Workflow 1: Incremental Improvement
Goal: Systematically improve model quality
Steps:
Start: Sales_Model_v1 (R² = 65%)
Clone: Sales_Model_v2
Add: Saturation curves to v2
Compare: v2 R² = 72%, keep v2
Clone v2: Sales_Model_v3
Add: Additional control variables to v3
Compare: v3 R² = 75%, keep v3
Delete: v1 and v2 (superseded)
Result: Final model = v3
Workflow 2: A/B Testing Specifications
Goal: Test two different approaches simultaneously
Steps:
Start: Sales_Model_Base
Clone: Sales_Model_A (linear)
Clone: Sales_Model_B (curves)
Develop A: Keep variables linear
Develop B: Apply saturation curves
Compare: A vs B in model comparison
Decision: B performs better (R² +7%)
Keep: Sales_Model_B
Delete: A and Base
Rename B: Sales_Model_Final
Workflow 3: Seasonal Analysis
Goal: Compare seasonal vs full-year models
Steps:
Start: Sales_Full_Year
Clone: Sales_Q4_Only
Filter Q4: In cloned model, filter observations to Q4
Compare: Coefficients between full-year and Q4
Analyze: Seasonal effects on channels
Keep both: For different purposes
Use Full_Year: For annual planning
Use Q4_Only: For holiday campaign optimization
Workflow 4: Transformation Testing
Goal: Find optimal transformation approach
Steps:
Start: Model_Raw (no transformations)
Clone: Model_Adstock_Only
Clone: Model_Curves_Only
Clone: Model_Both
Develop: Each clone with specified transformations
Compare: All four versions
Result: Model_Both has highest R² and best diagnostics
Keep: Model_Both
Delete: Other three versions
Rename: Model_Both → Model_Final
Version History Tracking
Why Track Versions
Benefits:
Understand model evolution
Justify final specification
Replicate analysis
Communicate changes to stakeholders
Learn from failed experiments
What to Document
For each version:
Version name and number
Creation date
Changes from previous version:
Variables added/removed
Transformations applied
Filters changed
Performance metrics:
R²
Key coefficients
Diagnostic results
Decision:
Keep or delete
Rationale
Documentation Example
Advanced Cloning Techniques
Cloning for Scenario Planning
Use case: Testing different budget allocation scenarios
Approach:
Clone base model
Filter to future period (if available)
Modify variables to reflect scenario
Run decomposition
Compare scenario outputs
Note: This is advanced use beyond typical cloning
Cloning for Sensitivity Analysis
Use case: Understanding parameter sensitivity
Approach:
Clone model multiple times
Vary one parameter systematically
Compare results across clones
Identify sensitive vs. robust parameters
Example:
Base model with adstock=70
Clone 1: adstock=60
Clone 2: adstock=80
Compare coefficient stability
Cloning for Collaboration
Use case: Multiple analysts working on same project
Approach:
Create base model (team agreed specification)
Each analyst clones with their name
Analysts experiment independently
Team meeting to compare and select best
Merge best features into final model
Example naming:
Sales_Model_Analyst_John
Sales_Model_Analyst_Sarah
Sales_Model_Team_Final
Troubleshooting
"Clone name already exists"
Cause: Name you entered is already used by another model
Solution:
Add version number or distinguishing suffix
Check Model Library for existing names
Use more descriptive name
"Clone failed"
Possible causes:
Original model has errors
Data issue in backend
Session timeout
Solutions:
Refresh page and try again
Verify original model works (run regression)
Check if you can create new model (tests data access)
Contact support if persists
Cloned model shows different R²
Cause: This is normal - regression is re-run
Explanation:
Small numerical differences possible
Random seed differences in Bayesian
Should be <0.1% different
Solution:
If difference >1%, investigate
Otherwise, ignore minor variation
Too many clones cluttering library
Cause: Not cleaning up experimental clones
Solution:
Delete failed experiments immediately after comparison
Keep only 2-3 active versions
Export important versions before deleting
Use descriptive names to identify keepers
Key Takeaways
Cloning creates exact copy for safe experimentation
Always clone before major changes to preserve working model
Use clear naming conventions for version tracking
Keep 2-3 active versions maximum, delete others
Compare clones to original to validate improvements
Document what changed and why for each version
Delete failed experiments after comparison
Export milestone versions before deletion for archival
Last updated