Prototype

Pohjoinen AI Report Assistant

An evaluated AI-assisted marketing reporting prototype that turns editable monthly performance data into concise management commentary, surfacing changes, risks and recommended actions in one review flow.

Role
AI Product Prototyping & Full-stack Engineering
Period
2026—present
Categories
FrontendBackend
Stack
Next.jsReactTypeScriptTailwind CSSOpenAI SDKResponses APIVercel
Pohjoinen AI Report Assistant dashboard showing monthly marketing KPIs and a channel-level performance table.

Key metrics

Evaluation cases
100
Fixed cases in the private benchmark run.
Benchmark sample size; these are not production reports.
Median generation latency
≈6 s
End-to-end median across the 100-case private benchmark.
Observed for the documented model and configuration; not a latency guarantee.
Estimated API cost per report
≈$0.003/report
Token-based estimate for a completed benchmark report.
Uses benchmark token usage and the recorded model price; infrastructure and labour are excluded.
Grounded factual claims
98%+
Share of checkable claims supported by the supplied report data under the benchmark rubric.
Private evaluation result; not a general model-accuracy guarantee.

Overview

Pohjoinen AI Report Assistant is an evaluated reporting prototype for the analysis step between monthly performance data and a management-ready narrative. It brings headline KPIs, channel context, an analyst focus note and a structured AI report into one compact workspace.

The public demonstration deployment uses a replaceable dataset so the complete workflow can be evaluated without analytics or advertising credentials. Edited metrics are validated, sent through the report API and reflected in a newly generated management draft.

Challenge

Monthly reporting rarely ends when the figures are collected. Someone still has to interpret movements across revenue, spend, ROAS, conversion, email and organic acquisition, identify what matters and turn the result into language management can act on.

Generative AI only helps when its evidence and responsibility are constrained. Free-form prompts can omit weak channels, overstate causality or produce polished commentary that no longer matches the supplied figures.

Solution

I designed a focused reporting workspace around the commentary workflow. The dashboard keeps top-level KPIs and five channel narratives visible, while seven high-level metrics remain editable and an optional focus note lets the analyst direct attention before generation.

The browser and API route share the same bounded metric validation. The server builds a structured request with the validated dataset, adjusted-field context and analyst note, then calls the OpenAI Responses API through a configurable model boundary.

The output contract requires an executive summary, monthly changes, attention areas and recommended actions. The result remains inside the workspace as an editable review draft rather than being published or distributed automatically.

Responsibilities

  • Translate a recurring marketing-analysis workflow into a narrow, usable product surface.
  • Design and build the responsive KPI dashboard, channel table and report-generation form.
  • Implement editable metric state, decimal handling, reset behavior and clear validation feedback.
  • Create the shared input contract used by both the browser and the Next.js report API.
  • Design the structured model instructions and fixed management-report output format.
  • Integrate the OpenAI Responses API and isolate API credentials at the server boundary.
  • Deploy the application publicly on Vercel and keep the source available for inspection.

Architecture

Interface

  • Marketing reporting workspace

  • Management commentary draft

  • Human review and actions

Services

  • Bounded input validation

  • Next.js report API

  • Structured report contract

Data

  • Monthly metrics and channel context

Automation

  • OpenAI Responses API

Infrastructure

  • Vercel runtime

  1. Monthly KPIs and channel evidence

    Monthly metrics and channel context -> Marketing reporting workspace

  2. Edited metrics and analyst focus

    Marketing reporting workspace -> Bounded input validation

  3. Bounded report request

    Bounded input validation -> Next.js report API

  4. Validated data and adjustment context

    Next.js report API -> Structured report contract

  5. Structured generation request

    Structured report contract -> OpenAI Responses API

  6. Four-section management commentary

    OpenAI Responses API -> Management commentary draft

  7. Evidence, tone and priority review

    Management commentary draft -> Human review and actions

  8. Server-side generation runtime

    Next.js report API -> Vercel runtime

  9. Public responsive interface

    Marketing reporting workspace -> Vercel runtime

Technical decisions

Own the commentary step

Problem
Trying to reproduce analytics ingestion, warehousing, dashboards, slide export and commentary in one release would obscure the part of the workflow where language and judgement create the most friction.
Decision
Build a dedicated product around performance interpretation and management commentary.
Reason
A narrow workflow makes the value immediately testable and gives every interface element a direct role in the final draft.
Trade-off
The current public product starts from a supplied monthly dataset rather than operating as a full marketing data platform.

Let analysts adjust the decision-driving metrics

Problem
A fixed dataset cannot demonstrate how revised figures or late reporting corrections should affect the narrative.
Decision
Make seven headline metrics editable while preserving the channel table as stable supporting context.
Reason
The analyst can test a meaningful correction without rebuilding the complete channel model in the browser.
Trade-off
Top-level adjustments and channel details can diverge, so the prompt explicitly identifies which values were changed.

Validate before spending a model call

Problem
Missing, malformed or extreme numeric values could produce misleading commentary and unnecessary API usage.
Decision
Reuse one typed validation contract in the form and API route, with explicit ranges and safe defaults for missing fields.
Reason
Invalid input fails early and the server never has to trust the browser's validation alone.
Trade-off
The accepted ranges are deliberately product-specific and must evolve with future data sources.

Treat the prompt as a report contract

Problem
A generic instruction can return inconsistent structure, filler or claims that are difficult to trace back to the supplied evidence.
Decision
Send structured marketing data, adjusted-field context and the analyst note with exact output sections and explicit evidence rules.
Reason
Predictable sections make drafts faster to review and keep the model focused on decisions rather than presentation.
Trade-off
A fixed structure limits stylistic freedom in exchange for comparability and review speed.

Keep human review as the release gate

Problem
A fluent AI response can still misread causality, business context or priorities.
Decision
Present every response as a reviewable draft and provide no automatic publishing path.
Reason
The product accelerates synthesis while leaving judgement and accountability with the analyst.
Trade-off
The workflow saves drafting effort but intentionally does not remove the final editorial step.

Media

Gallery

Screenshot

01 / 04

Real Pohjoinen dashboard view with six monthly marketing KPI cards and a five-channel performance table.

The public prototype dashboard keeps revenue, spend, efficiency, conversion, email and SEO signals next to the channel evidence used for interpretation. Values shown are the demonstration dataset, not adoption metrics.

Outcomes

  • An evaluated end-to-end reporting workflow turns validated monthly inputs and an analyst focus note into structured management commentary.
  • One responsive surface connects KPI review, channel evidence, metric corrections and the generated narrative without switching tools.
  • The stateless report boundary keeps the model and data source replaceable without coupling them to the interface.

Verified highlights

  • Seven headline metrics can be edited, reset and validated before generation.
  • Five channel records provide revenue, spend, ROAS, sessions, conversion and analyst context.
  • Decimal values accept both comma and period input before normalization.
  • The API applies explicit numeric ranges and limits the optional focus note to 1,200 characters.
  • Model instructions require evidence from the supplied dataset and forbid unsupported live-platform claims.
  • Every report uses four fixed sections: executive summary, changes, attention areas and recommended actions.
  • Fewer than 10% of the 100 benchmark reports required a major edit under the documented review rubric.
  • The OpenAI model is configurable through the server environment without exposing credentials to the browser.
  • The application and source repository are both publicly accessible.

Learnings

  • An AI feature becomes a product workflow when users can control the evidence, see the boundary and review the result in context.
  • A smaller, explicit input contract is more useful than sending an unstructured dashboard dump to the model.
  • Fixed output sections improve review speed without forcing the model into rigid sentence templates.