Skip to content
Follow up and measure

Follow up and measure

The last stage closes the loop. You work through a 30-day plan, report how each week went, and let PULSE recalculate the route. Then you check the numbers.

Follow-up cycles

Audience → Follow-up (/followup) tracks one 30-day cycle at a time. A Site Audit creates the first one from its 4-week plan, with one planner task per entry.

  • GetCycleProgress shows the current cycle: its number, the current week (1–4), tasks done out of total, and the prescription summary. Pass no cycle ID to get the active cycle.
  • GetPlanner returns the tasks for one week, or all weeks with week_number 0. Each task has a day, a channel, a content type (post, story, reel, article, engagement), and a due date.
  • UpdateTaskStatus moves a task to TODO, IN_PROGRESS, DONE, SKIPPED, or BLOCKED.

Weekly check-in

SaveCheckIn records a week: new followers, posts published, engagements, leads, a 1–10 satisfaction score, and three free-text fields for what happened, what did not work, and what worked.

Recalculate the route

RecalculateWithEvolution streams a revised plan for the cycle, based on how the check-ins evolved. GetEvolutionHistory returns the check-in history across cycles with a written trend analysis.

Insights

Overview → Insights (/insights) has two tabs.

Metrics tab

Reads MetricsService: a KPI summary, a daily time series, a per-channel breakdown, and an agent reading, which is the model’s interpretation of the current numbers with key insights and recommendations.

Nothing in PULSE writes per-channel social metrics yet. The KPI summary reads followers, impressions, engagements, clicks, leads, and reach from a metrics table that no connector fills, so those figures stay at zero. The count of published content is real: it is counted from your content. Campaign filtering is not supported, because metrics are not stored per campaign.

Trends tab

Reads AnalyticsService, which works from Google Analytics 4. Connect Google Analytics first. See Connections.

  1. SyncGaData pulls one GA4 metric’s daily values into a local cache. Use the GA4 API name, for example sessions, activeUsers, or conversions. It looks back 90 days by default.
  2. GetTrends reads the cached series.
  3. GetForecast forecasts the next 14 days by default, with a band of plus or minus two residual standard deviations. It also lists anomalies, changepoints, and any detected seasonality. It runs on the cache, so it works even when Google Analytics is unreachable.

A forecast needs at least four days of synced data. With fewer you get not enough synced GA data to forecast (N days, need at least 4) — sync more history first.

Impact Analytics and Content Gaps

Overview → Impact Analytics shows the metrics summary and the daily evolution chart, with the same data caveat as the Metrics tab.

Overview → Content Gaps runs InsightsService.AnalyzeContentGaps when you ask for it. You can narrow it with a focus area and a date range. It returns the topics and formats your audience wants but you under-serve. Each gap has a 0–100 demand score, a coverage score, and an opportunity score, plus a rationale. The response also has an overall coverage index. Gaps pass through the judging ladder.