# Briefing Spec — Thailand Digital 2026

## Mission

Produce a one-page HTML briefing website that summarizes the Thailand 2026 digital landscape for a Thai working professional who needs a fast, trustworthy overview before a campaign or planning meeting.

## Audience

- Marketing leads, business owners, and account managers in Thailand.
- They speak Thai daily and English at work. Default copy to Thai with English product terms left in place where useful.
- They have no time to read the full DataReportal report. The briefing must be skimmable in under three minutes.

## Required Sections

1. **Hero** — the one sentence that captures the 2026 picture, plus a single headline number (internet users or social media identities).
2. **Reach Table** — the platforms from `datareportal-thailand-2026.csv`, sorted by reach. Show platform, audience (million), reach (% of internet users), yearly change (%).
3. **Three Take-aways** — three bullets a marketer can act on this quarter. Each must reference a specific row from the data.
4. **Caveats** — short list reminding the reader that advertising reach is not the same as monthly active users, and flagging any row where the source itself flags caution (e.g., Reddit, Meta revisions, TikTok 18+).
5. **Next Action** — one concrete next step (e.g., "Test a LINE-first awareness flight before TikTok").

## Required Visualizations

The briefing must include interactive D3 charts that bring the numbers to life. Weave them into the narrative flow, not all in one chart dump. Required:

1. **Reach chart** — sorted lollipop or horizontal bar of platform reach (% of internet users), color-coded by basis type.
2. **YoY divergence chart** — diverging bars from 0% showing winners vs decliners. Off-scale outliers (Reddit +458%) get a separate callout, never inflate the axis.
3. **Strategic positioning bubble** — scatter mapping audience (M) × YoY (%) with bubble size = reach %, colored by basis. Sets up the "three take-aways" story.
4. **Basis treemap** — rectangles sized by audience, colored by basis type. Makes the apples-to-oranges story (MAU vs ad reach vs registered members) visible at a glance.

Chart requirements:
- Use the same palette as the rest of the briefing — never default D3 colors.
- Color-code by **basis type** (MAU / ad reach / ad reach 18+ / registered members), not by platform. This is the editorial argument.
- Watch-list rows (Reddit) render with diagonal hatching, not bright red.
- SVG only, `viewBox`-based so they scale on phones.
- Animate on scroll-into-view; hover shows a tooltip with platform, value, and basis.

## Quality Bar

- Every numeric claim and chart data point must come from the CSV. No invented figures.
- The briefing is one self-contained HTML file. Only Tailwind and D3 v7 via CDN. No bundler, no build step.
- It must render in a browser by double-clicking the file.
- Looks polished — typography, spacing, color, and charts are intentional, not default.

## Out of Scope

- Multi-page sites, decks, slides, PDFs.
- Recommendations that go beyond what the CSV supports.
- Generic AI-style design (gradient purple on white, Inter everywhere, etc. — see the Skill for details).
