skills/asgard-ai-platform/skills/algo-social-virality

algo-social-virality

Installation
SKILL.md

Viral Spread Models

Overview

Compartmental models (SIR, SIS, SEIR) model how content/information spreads through populations. Susceptible → Infected → Recovered mirrors unaware → sharing → stopped sharing. Key metric: R0 (basic reproduction number). Solves as ODEs in O(T × N) for T timesteps, N compartments.

When to Use

Trigger conditions:

  • Modeling how content spreads through a social network
  • Estimating whether a campaign will achieve viral threshold
  • Analyzing post-hoc spread dynamics of viral events

When NOT to use:

  • When predicting individual user behavior (use influence scoring)
  • When measuring engagement metrics (use engagement rate calculator)

Algorithm

IRON LAW: Viral Spread Occurs ONLY When R0 > 1
R0 = transmission rate (β) / recovery rate (γ).
Below R0 = 1, content dies out regardless of initial seed size.
Above R0 = 1, exponential growth phase begins before saturation.
Design interventions (seeding, incentives) to push R0 above threshold.

Phase 1: Input Validation

Define: population size (N), initial seed size (I₀), transmission rate (β — probability of sharing upon exposure), recovery rate (γ — rate of losing interest). Gate: Parameters non-negative, β and γ estimated from historical data or assumed.

Phase 2: Core Algorithm

SIR Model: dS/dt = -βSI/N, dI/dt = βSI/N - γI, dR/dt = γI

  1. Initialize: S=N-I₀, I=I₀, R=0
  2. Iterate using Euler method or RK4 at discrete timesteps
  3. Track peak infected (maximum simultaneous sharers) and total ever-infected

SIS variant: No recovery to immune state — recovered become susceptible again (recurring content).

Phase 3: Verification

Check: S+I+R = N at all timesteps (conservation). Peak and final sizes plausible for given R0. Gate: Population conserved, dynamics consistent with R0.

Phase 4: Output

Return time series of compartments and summary metrics.

Output Format

{
  "time_series": [{"t": 0, "S": 9900, "I": 100, "R": 0}],
  "summary": {"R0": 2.5, "peak_infected": 3200, "peak_day": 12, "total_infected": 8500},
  "metadata": {"model": "SIR", "beta": 0.5, "gamma": 0.2, "population": 10000}
}

Examples

Sample I/O

Input: N=10000, I₀=10, β=0.3, γ=0.1 (R0=3.0) Expected: Exponential growth, peak ~4000 at day ~15, total infected ~9500

Edge Cases

Input Expected Why
R0 = 0.8 Rapid decay Below threshold, dies out
I₀ = 1 Slower start but same eventual dynamics Single seed takes longer to ignite
β = γ (R0=1) Linear, no growth Critical threshold, endemic equilibrium

Gotchas

  • Homogeneous mixing assumption: SIR assumes everyone interacts equally. Real networks have hubs, clusters, and weak ties. Use network-based models for realistic spread.
  • Parameter estimation: β and γ are hard to estimate for social content. Use early spread data to fit parameters, then project.
  • Content ≠ disease: Unlike diseases, content sharing is voluntary and influenced by content quality, platform algorithms, and trends. Models give rough dynamics, not precise predictions.
  • Platform algorithms: Social media algorithms amplify or suppress content. The "transmission rate" is partly determined by the platform, not just user behavior.
  • Temporal dynamics: Content virality often has a much shorter lifecycle than disease (hours-days vs weeks-months). Adjust timescales accordingly.

References

  • For network-based epidemic models, see references/network-sir.md
  • For parameter estimation from early data, see references/parameter-fitting.md
Weekly Installs
14
GitHub Stars
125
First Seen
6 days ago