AI-Powered Content Generation and Shot Commentary System for Live Golf Tournament Coverage
pga_tour · Media & Entertainment · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.4 (schema v2)
Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.
Problem
Domain: Live sports media and fan engagement
The PGA Tour needed to turn high-volume live golf data into timely, accurate, brand-safe commentary and content across tournaments, players, channels, and non-tournament days.
Constraints:
- A standard stroke-play tournament has 156 players and about 31,000 shots
- Live-sports content depends on fresh data that base LLMs do not know
- Generated output must preserve factual accuracy, player rights, and PGA Tour brand voice
Architecture
PGA Tour runs two Bedrock-backed media systems: shot commentary over TOURCast/ShotLink-style live data, and agentic article generation for repetitive tournament content. Article requests land in DynamoDB/SQS, AgentCore/Lambda invokes research and data agents over Tour APIs and media guides, writer/editor/validator agents iterate against brand style and facts, Nova helps image selection, and approved content publishes to digital channels.
Diagram confidence: reconstructed (reconstructed from prose).
flowchart LR tourcast-shot-data["tourcast-shot-data"] shot-commentary-generator["shot-commentary-generator"] dynamodb-request-store["dynamodb-request-store"] sqs-job-queue["sqs-job-queue"] agentcore-lambda-runner["agentcore-lambda-runner"] research-data-agents["research-data-agents"] writer-agent["writer-agent"] editor-agent["editor-agent"] validator-agent["validator-agent"] nova-image-selector["nova-image-selector"] publication-channels["publication-channels"] tourcast-shot-data --> shot-commentary-generator dynamodb-request-store --> sqs-job-queue sqs-job-queue --> agentcore-lambda-runner agentcore-lambda-runner --> research-data-agents agentcore-lambda-runner --> writer-agent agentcore-lambda-runner --> editor-agent agentcore-lambda-runner --> validator-agent agentcore-lambda-runner --> nova-image-selector research-data-agents --> writer-agent writer-agent --> editor-agent editor-agent --> validator-agent editor-agent --> nova-image-selector validator-agent --> research-data-agents validator-agent --> publication-channels
Components
| Component | Role | Interacts with |
|---|---|---|
tourcast-shot-data |
Live 3D tournament and shot data used for factual shot descriptions and contextual commentary. | shot-commentary-generator |
shot-commentary-generator |
Generates factual and contextual live commentary only when shot context adds value. | tourcast-shot-data |
dynamodb-request-store |
Records incoming article-generation workloads before queueing. | sqs-job-queue |
sqs-job-queue |
Buffers hundreds of article jobs to avoid token/usage limits and smooth generation work. | agentcore-lambda-runner |
agentcore-lambda-runner |
Runs the multi-agent article workflow and coordinates calls to Bedrock, Tour APIs, media guides, Getty, and image selection. | sqs-job-queue, research-data-agents, writer-agent, editor-agent, validator-agent, nova-image-selector |
research-data-agents |
Collect structured player/tournament data from Tour APIs and unstructured facts from PDF media guides. | agentcore-lambda-runner, writer-agent, validator-agent |
writer-agent |
Creates article drafts from work orders, research data, format requirements, and audience guidance. | research-data-agents, editor-agent |
editor-agent |
Checks style, brand, format, and image pairing; sends drafts back to the writer or forward to validation. | writer-agent, validator-agent, nova-image-selector |
validator-agent |
Extracts factual claims and checks them against authoritative Tour API data before publication. | editor-agent, research-data-agents, publication-channels |
nova-image-selector |
Evaluates image appropriateness for generated articles using a Nova model. | agentcore-lambda-runner, editor-agent |
publication-channels |
Digital destinations for validated AI-generated articles and live shot commentary. | validator-agent |
Data flow
A content request is stored in DynamoDB, transformed into an SQS job, and picked up by an AgentCore/Lambda worker. Research/data agents gather structured Tour API data and unstructured media-guide facts, a writer creates the article, an editor checks format, audience, style, brand, and image fit, and a validator extracts factual claims and compares them to Tour API data before publication. Shot commentary separately reads live shot and tournament context from TOURCast data to decide when context is useful.
3 supporting quotes
Why this architecture
PGA Tour separated research, writing, editing, validation, and image selection because sports content must be fast, brand-safe, and factually exact. Queueing protects token limits when hundreds of similar articles are generated together, while AgentCore fits the I/O-bound workflow because agents wait on Tour APIs, Getty, and Bedrock calls.
Models used: AWS Bedrock models · Nova model
Scale
- A standard stroke-play tournament has 156 players and about 31,000 shots.“We have 156 players, 31,000 shots in a standard golf tournament in stroke play.”transcript, stated
- PGA Tour gathers petabytes of event data.“So, we are gathering petabytes of data. If you come to a PGA TOUR event, which you should all come”transcript, stated
- The data estate includes shot data back to about 2012 and scoring/leaderboard data back to 1864.“We know every single shot back to, I think, 2012 is our shot data collection. Might be before then. We have scoring and leaderboard data back to 1864”transcript, stated
- The organization runs seven live video streams at a standard event.“So, on a given standard PGA TOUR event, we're running seven live video streams.”transcript, stated
- The content system targets close to 800 articles per week.“Soon, by the end of this year, they're going to write close to 800 articles per week using agentic AI.”transcript, stated
- Generative AI article cost is about $0.25 per article, producing a 95% cost reduction.“using generative AI for 25 cents per article. That resulted in 95% cost reduction.”transcript, stated
Alternatives considered (roads not taken)
Assigning human writers to produce 156 similar player articles for each tournament
Rejected because: The team viewed this as unrewarding repetitive work and used recipe-driven agentic generation instead.
Publishing generated articles without fact validation
Rejected because: The workflow extracts factual claims and checks them against Tour API data before publication.
Narrating every shot regardless of value
Rejected because: The commentary system distinguishes factual narration from meaningful commentary and may keep early low-context shots simple.
Patterns
multi-agent-orchestration (content-generation)
A work order moves through data, writer, editor, image, validation, and publication agents to generate articles and related assets.
llm-as-judge (content-validation)
Generated features are scored and validated with a mix of regex, LLM judging, source-data comparison, and human review during rollout.
rag-retrieval (sports-data-context)
The data agent retrieves structured statistics from Tour APIs and unstructured player context from media guides before generation.
structured-output-contract (brand-safe-generation)
The editor agent asks the writer for a specific article format, target audience, channel, and brand/style compliance before validation.
human-in-the-loop-gate (launch-quality)
New AI features can run in draft with human verification until the team is satisfied enough to enable automatic approval.
Tradeoffs
How much context to add to shot commentary.
Chose comment only when context matters over narrating every shot with generated context.
Rationale: The team preferred varied, meaningful commentary and accepted that some shots only need a factual description.
How to cover repetitive player-specific content.
Chose agentic article generation from a recipe over assigning content staff to write 156 similar betting profiles.
Rationale: AI made repetitive, high-volume Monday content feasible while keeping human effort focused on higher-value work.
Gotchas (what bit them)
Base LLMs do not know live sports state.
Root cause: Golf articles depend on how a player performed minutes ago, while model pretraining data is stale.
Resolution: The workflow feeds structured Tour data and media-guide context into agents before writing.
Factual and brand errors can damage a world-class sports brand.
Root cause: Generated content must match real scores and comply with PGA Tour style and brand guidelines.
Resolution: Editor and validation agents check style, facts, and source-data agreement before publication.
Golf has unusual edge cases that generic workflows miss.
Root cause: A live tournament includes non-uniform events, rules exceptions, and rare scoring situations across tens of thousands of shots.
Resolution: PGA Tour brings production-first edge-case thinking into scoring and validation before auto-approving output.
Evaluation
PGA Tour evaluates AI output with scoring and validation gates, fact extraction against source data, brand/style checks, draft human review, cost and throughput metrics, and engagement outcomes.
Metrics: validation pass rate · article cost · articles per week · time to publish · page views · fan engagement
Outcomes
- AI-generated articles cost about $0.25 each.
- Article-generation cost fell by 95%.
- Current generation is about 140 to 180 articles per week, with a plan to reach about 800.
- Generated articles can publish within five to ten minutes after tournament events.
- AI-generated content gets billions of annual page views.
PGA Tour combines about 31,000 shots per standard tournament, 156-player content sets, ShotLink data, Tour APIs, media guides, and publication workflows.