Recommendation Methodology
DURUM.ai generates Insights (actionable recommendations) by analyzing your Meta Ads campaigns, sales data, recorded calls, and objectives. Here's exactly how it works -- and what it doesn't do.
Seven Non-Negotiable Principles
Every recommendation follows these rules. If a rule can't be satisfied, no recommendation is generated rather than risking misleading you.
1. Reliability Before Volume
If your sales attribution is insufficient (less than 50% of sales have an identifiable UTM tag), campaign-level recommendations are automatically disabled. You'd rather see fewer recommendations than receive ones based on partial data.
2. Never a Fixed Number Promise
Every impact estimate is presented as a range (e.g., $30K - $60K) accompanied by a disclaimer:
Estimate based on recent data. Depends on execution and market conditions.
This is never a guaranteed result. It's an illustrative scenario to help prioritize.
3. Full Context or Nothing
The engine doesn't flag "creative fatigue" on a simple CTR drop. It cross-references:
- CTR + 14-day trend
- CVR (conversion rate) + trend
- CPM + trend
- Frequency (impressions / reach)
- Ad age
- Seasonality (Black Friday, Boxing Day, Valentine's Day, quarter-ends, back-to-school)
And returns a nuanced diagnosis:
| Verdict | Suggested Action |
|---|---|
fatigue | Create new creatives |
saturation | Change audience (creative still works) |
budget_issue | Bidding problem, not creative |
landing_issue | Problem is downstream of the click |
seasonal | Nothing to do -- metrics are atypical |
healthy | Nothing to do |
4. Respect for People (Rep Coaching)
A rep who closes well is never flagged, even with an atypical style. The engine compares their close_rate to the team average. If they perform above, no intervention -- regardless of their talk ratio.
Minimum sample: 15 shows to conclude a pattern.
5. Flexibility by Business Profile
Your alert thresholds depend on your business type:
- B2C High-Ticket Services (coaching, training $2K-$10K) -- default profile
- B2C E-commerce (physical products $50-$500, high volumes)
- B2B Mid-Market ($5K-$50K, 30-90 day cycle)
- B2B Enterprise ($50K+, 6+ month cycle)
- SaaS PLG (freemium, self-serve, MRR)
- Professional Services (lawyer, accountant -- low volumes)
6. Dynamic Priority
A "negative ROAS for 3 days" recommendation doesn't have the same urgency as "negative ROAS for 14 days." The engine modulates priority based on:
- Duration of the problem
- Magnitude (% of budget impacted)
- Trend (worsening, stable, improving)
7. Modern Attribution
DURUM.ai supports 4 attribution models, switchable via the toggle in the header:
| Model | Description | Best For |
|---|---|---|
| Scientific (default) | First-touch < 30d, last-touch >= 30d | General balance |
| First-touch | All credit to the discovery source | Awareness campaigns |
| Last-touch | All credit to the closing source | Direct-response |
| Assisted | Distributed across all touchpoints | Journey understanding |
Additionally, DURUM.ai integrates:
- View-through attribution -- conversions after exposure without click (critical post-iOS 14)
- Modeled conversions separated -- Meta's estimated conversions (SKAdNetwork) are distinguished from confirmed conversions
- Cross-device stitching -- via email/phone hash, to link mobile -> desktop journeys
Thresholds & Formulas
Data Confidence
Before any recommendation, the engine calculates a dataConfidence between 0 and 1, weighted by:
- Spend history (35% weight) -- 28d+ = 1.0
- Event volume (35% weight) -- 30+ = 1.0
- UTM attribution quality (30% weight) -- 70%+ = 1.0
If dataConfidence < 0.3, no recommendation is generated. You'll see an empty state with an explanation.
Minimum Samples by Rule
| Rule | Minimum Required |
|---|---|
| Rep coaching | 15 shows per rep |
| Spend anomaly | 16 days of history (z-score > 2.5 vs 14-day average) |
| Creative fatigue | 1000 impressions + $50 spend per ad |
| Funnel recommendations | 15 leads or 10 bookings |
| Call coaching | 15 analyzed recordings (B2C high-ticket profile) |
These thresholds are automatically adjusted based on your business profile.
A/B Framework
Each recommendation marked as "Implemented" triggers a KPI snapshot at T0. KPIs are re-measured at T+7d, T+30d, and T+90d. The measured delta evaluates each rule's real impact. Rules with negative or insufficient average impact are recalibrated or disabled.
What DURUM.ai Doesn't Do
- No historical import. We track from the moment of connection. The first 30 days = learning, no recommendations.
- No offline attribution (inbound calls, walk-ins). We cover only digital journeys.
- No individual benchmarking without sufficient volume. If your industry has fewer than 10 DURUM clients, we don't display a public median (confidentiality).
- No recommendation without context. If your data is partial, we say so explicitly rather than recommending blindly.
How to Contest a Recommendation
Each recommendation has a "Dismiss" button with a dropdown of reasons:
- "Not relevant to my business"
- "Already done"
- "Sample too small"
- "Risk too high"
- "Other"
This feedback feeds our calibration. If 70%+ of clients dismiss a rule for a given reason, we disable or recalibrate it.
FAQ
Why Does a Recommendation Disappear?
Two cases:
- Conditions are no longer met -- the problem resolved itself (e.g., ROAS recovered)
- Expiration -- after 7 days without action, a recommendation expires automatically
You can always view the history in the "Past Recommendations" tab of your dashboard.
Why Do Numbers Change Between Visits?
Events sometimes arrive late (webhook retries). The dashboard always displays the last update date/time. Nothing is recalculated or altered after the fact -- only new events move the numbers.
Why Are Some Impacts Ranges?
Because the future isn't a promise. A $30K - $60K range reflects the real uncertainty of a projection based on recent history.
Contact
Questions about a specific recommendation? Write to support@durum.ai citing the recommendation ID (visible in the detail modal URL).