Generates unique, data-driven insights about the artist that reveal interesting patterns, surprising statistics, and distinctive characteristics. These insights power compelling storytelling by highlighting what makes the artist unique.

Migration-Ready: This function is designed to be moved to artutils in the future. It is a pure data function with no Shiny dependencies.

get_artist_unique_insights(artist_uuid, cn, max_insights = 8)

Arguments

artist_uuid

Character. Artist UUID (validated for proper format)

cn

Database connection object (from artcore::dbc())

max_insights

Integer. Maximum number of insights to generate (default: 8)

Value

A named list with the following elements:

insights

Character vector of human-readable insight statements

categories

Named list grouping insights by type: productivity, engagement, style, uniqueness

highlight_insight

Character. The single most compelling insight (for hero/featured display)

insight_metadata

Data frame with columns: insight, category, impact_score, data_points

Details

The function analyzes multiple dimensions to generate insights:

  • Productivity patterns: Seasonal trends, peak periods, consistency

  • Engagement dynamics: Growth trends, audience response, viral works

  • Creative style: Signature combinations, experimentation, evolution

  • Uniqueness factors: Rare characteristics, distinctive approaches

Each insight is scored for impact (0-100) based on:

  • Statistical significance (how unusual is the pattern?)

  • Storytelling value (how interesting is it to humans?)

  • Data confidence (how strong is the evidence?)

The highest-scoring insight becomes the highlight_insight for prominent display.

Insight Types

  • productivity: Creative output patterns and trends

  • engagement: Audience interaction and growth

  • style: Creative approach and signature elements

  • uniqueness: Distinctive characteristics and rare patterns

See also

get_artist_timeline for temporal data, get_artist_evolution for creative evolution, get_artist_career_stats for statistics

Examples

if (FALSE) { # \dontrun{
cn <- artcore::dbc()
artist_uuid <- "123e4567-e89b-12d3-a456-426614174000"
insights <- get_artist_unique_insights(artist_uuid, cn, max_insights = 6)

# Access insights
insights$insights # All insights as character vector
insights$highlight_insight # Most compelling insight
insights$categories$productivity # Productivity-specific insights
insights$insight_metadata # Full details with impact scores

artcore::dbd(cn)
} # }