Skip to main content

Search Usage & UX Analytics Strategy

1. Current State

The system does not currently have a real-time audit log of search filter parameters. However, two potential data sources exist:

  • SavedSearch Table: Contains serialized search DTOs. Many records are marked IsForStatistic = true, implying standard operational searches.
  • Matomo Tagging: Frontend tracking exists for "Export" actions (OMGT.TAGGGING.PushEvent), but doesn't seem to capture the specific filters used.

2. Quantitative Discovery (Proposed)

A. Static Analysis of Saved Searches

Since we have SerializedSearchDto in the database, we can perform a one-time SQL script analysis to count category activation:

-- Conceptual Query to find most popular categories in saved searches
SELECT
COUNT(*) as UsageCount,
-- Parsing JSON logic to identify activated categories
JSON_VALUE(SerializedSearchDto, '$.SelectedCategories') as Category
FROM omgt.SavedSearch
GROUP BY Category
ORDER BY UsageCount DESC;

Expected Insight: Identify which of the 30 categories are "Essential" vs. "Edge-case".

B. Lightweight Telemetry (Implementation Proposal)

To capture real-time usage (not just saved searches), we can add a non-blocking interceptor in AdvancedSearchController.GetNavigateResult:

// Proposed Interceptor logic
var activatedCategories = searchDto.SelectedCategories;
AnalyticsService.LogSearchPattern(activatedCategories, response.Count);

Goal: Understand what users are really searching for on a daily basis, even if they don't save the search.

3. UX Mitigation Expectations

Based on the results, we could propose:

  • "Essential" vs "Advanced" Split: Hide the less-used categories (e.g., PEC, Compliance) behind an "Advanced" toggle to reduce visual noise.
  • Performance Tiering: Some filters are "Heavy" (require N+1 or complex joins). If they are rarely used, we can warn the user or restrict their execution to smaller date ranges.
  • Smart Defaults: Optimize the primary search view for the top 5 most used filter categories.

4. Next Steps

  1. Audit: Extract and analyze a sample of 100 SavedSearch records.
  2. Consult: Verify with Stakeholders if Matomo data can be enriched with filter IDs.