<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Gridiron Genie: an NFL matchup room powered by Databricks Genie Agent in Community Articles</title>
    <link>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166818#M1484</link>
    <description>&lt;P&gt;Well done! Should forward this to my favorite team (Tampa) to see if they can actually use it to not stink (not likely).&lt;/P&gt;</description>
    <pubDate>Sun, 30 Aug 2026 18:49:58 GMT</pubDate>
    <dc:creator>coolbeans201</dc:creator>
    <dc:date>2026-08-30T18:49:58Z</dc:date>
    <item>
      <title>Gridiron Genie: an NFL matchup room powered by Databricks Genie Agent</title>
      <link>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166816#M1483</link>
      <description>&lt;H1&gt;Gridiron Genie: an NFL matchup room powered by&amp;nbsp; Databricks Genie Agent&lt;/H1&gt;&lt;P&gt;&lt;EM&gt;Track B (Creative Thinking) entry for the Genie-Powered App Challenge, built and deployed on Databricks Free Edition.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dan_wiltse_0-1788113354511.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/30417i0281C49A361D92F5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="dan_wiltse_0-1788113354511.png" alt="dan_wiltse_0-1788113354511.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;EM&gt;The Week 1 slate: pick a matchup room.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;The premise&lt;/H2&gt;&lt;P&gt;You're an NFL analyst. A coach needs a Week 1 scouting report. You have 15 minutes before the next practice and he wants some data-driven insights to share with the team.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Gridiron Genie&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is a matchup room built on Databricks Apps where every user-facing analytical finding comes through Genie. Pick any of the 16 Week 1 matchups and the agent researches a full scouting brief, planning its own investigation, writing its own SQL, and generating its own charts. Drill deeper in Genie chat, and when you find something that matters, add it to the game report: Genie writes a new drill-down section using the brief conversation's earlier research as context, and the app appends it to the existing report. Print the finished report for the coach.&lt;/P&gt;&lt;P&gt;What can you ask? Whole-team and position-group edges, run-direction and pass-depth splits, red-zone and third-down performance, which players carry recent usage into the contest, exact season totals, and follow-ups on any of it, scoped to the matchup room you're in. Most answers come back in EPA (expected points added, the change in expected points a play produces) alongside success rates and sample counts.&lt;/P&gt;&lt;H2&gt;Architecture&lt;/H2&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dan_wiltse_1-1788113354513.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/30418iB8EB0A970DFF4FA0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="dan_wiltse_1-1788113354513.png" alt="dan_wiltse_1-1788113354513.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;EM&gt;The architecture in three layers: what happens when you ask a question (top), how the data was built (middle), and the Databricks services underneath (bottom).&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;One Databricks Automation Bundle manages the catalog and schemas, three Lakeflow Jobs, the Genie Agent definition, and the app as one versioned deployment.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Ingest (Bronze):&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;32 nflverse release assets — schedules, play-by-play, weekly player stats, rosters, snap counts — loaded idempotently into 13 raw tables with provenance columns (source URL, load time, SHA-256).&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Conform (Silver):&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;a 10-table contract covering matchups and teams, player identities, plays, team and player production, weekly snaps, rosters, depth charts, and Next Gen Stats enrichment.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Curate (Gold):&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;7 views built&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;for the agent&lt;/EM&gt;, not for dashboards.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Reason (Genie):&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;one source-controlled Genie space over those 7 views, queried through two different APIs.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Experience (Apps):&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;a React app on Databricks Apps that routes every finding through the agent.&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;The data layer is the prompt&lt;/H2&gt;&lt;P&gt;Each column in the seven Gold views has a Unity Catalog comment written to help Genie interpret the data correctly. The Gold build fails if any comment is missing. This metadata works alongside the source-controlled Genie instructions, example SQL, and knowledge-store configuration to provide a consistent semantic layer.&lt;/P&gt;&lt;P&gt;For example, when Genie reports a player’s yards per carry and qualifying attempts by run direction, it retrieves those values from the curated run-direction view. The schema defines what qualifies as a carry, how direction is categorized, and how missing data should be interpreted. Genie generates the explanation, but the data model determines what the numbers mean.&lt;/P&gt;&lt;H2&gt;Curating and evaluating the Genie Agent&lt;/H2&gt;&lt;P&gt;The Genie space is generated from source-controlled Python, including deterministic identifiers, ordered configuration, one instruction block, and twelve example SQL queries. As a result, changes to the space are reproducible and reviewable in Git.&lt;/P&gt;&lt;P&gt;We measured performance with Genie benchmark evaluations. The original five-question benchmark improved from 3/5 to 5/5. The failures showed that the agent was misreading the schema so we added better column comments, better example SQL queries and tighter instructions. After these updates, we expanded the suite to eleven questions, the final evaluation scored 11/11, showing that the added context had improved the agent's understanding across the whole data contract, not just on the questions we had previously fixed.&lt;/P&gt;&lt;P&gt;The most useful lesson:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;examples can outweigh prose when they conflict.&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;In this project, when an example SQL query contradicted a written instruction, Genie followed the example. A red-zone example phrased "in this game" silently pinned one suggested question to the wrong game because the example, not the instruction block, won the routing. Renaming the example and interpolating team names fixed it.&lt;/P&gt;&lt;H2&gt;Two workflows, one Genie Agent&lt;/H2&gt;&lt;P&gt;The app talks to the same curated space through two APIs:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Genie chat&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(/api/ask) uses the Conversation API for focused questions and follow-ups, returning the answer, generated SQL, and supporting results.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Agent research&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(/api/brief) uses the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Agent Mode API (Beta)&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to conduct a multi-query investigation from a single request. It streams its progress, SQL queries, findings, visualization references, and final report over server-sent events (SSE).&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;When Agent Mode generates a chart, the app retrieves the chart image through a separate backend endpoint and sends it to the browser.&lt;/P&gt;&lt;PRE&gt;POST /api/2.0/genie/agents/{space_id}/responsesAccept: text/event-streamContent-Type: application/json{  "input": [    { "type": "message", "role": "user",      "content": [{ "type": "input_text", "text": "..." }] }  ],  "enable_viz": true}&lt;/PRE&gt;&lt;P&gt;Follow-ups reuse the returned&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;conversation_id, which is what powers the app's best feature:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;add to game report&lt;/STRONG&gt;. A chat finding is sent as a follow-up in the brief's own conversation; Genie writes a new drill-down section using its earlier research as context, and the app appends it to the existing report. This turns chat from a separate question-and-answer panel into a collaborative game-planning workflow.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dan_wiltse_2-1788113354514.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/30416iE088B9258809FCCC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="dan_wiltse_2-1788113354514.png" alt="dan_wiltse_2-1788113354514.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;EM&gt;The agent plans the investigation, runs its own SQL, and charts what it finds.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;The app renders shapes, not questions&lt;/H2&gt;&lt;P&gt;The client inspects each Genie result's&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;shape&lt;/EM&gt;: if the rows carry run-direction or pass-depth members, the answer renders as a 2.5D football field with team-colored lanes, count-up deltas, and sample sizes. Everything else falls back to Genie's prose plus the SQL-receipted table. Because the renderer responds to the returned data, an unanticipated question can still produce the field visualization when its result matches a supported shape.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dan_wiltse_3-1788113354515.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/30420i5AEEC26A234032B1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="dan_wiltse_3-1788113354515.png" alt="dan_wiltse_3-1788113354515.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;EM&gt;When the answer has spatial shape, the app renders it as a 2.5D field&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dan_wiltse_4-1788113354516.png" style="width: 400px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/30419i47BB45496031E824/image-size/medium?v=v2&amp;amp;px=400" role="button" title="dan_wiltse_4-1788113354516.png" alt="dan_wiltse_4-1788113354516.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;EM&gt;The printed game report: the analyst’s ad-hoc drill-down, written by Genie.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;Built-in governance and auditability&lt;/H2&gt;&lt;P&gt;Genie requests run under the app’s service principal, so users receive access through the application rather than direct permissions on the SQL warehouse. The Genie Agent is configured with seven registered Gold views, while Unity Catalog governs access to the underlying data.&lt;/P&gt;&lt;P&gt;Databricks records Genie API activity in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;system.access.audit, providing a platform-level trail for space changes, evaluation activity, and API requests without requiring a custom audit-log implementation. These records capture operational events and response status — not complete conversations, generated SQL, or the agent’s internal reasoning.&lt;/P&gt;&lt;PRE&gt;SELECT event_time, action_name, request_params, response.status_codeFROM system.access.audit WHERE service_name = 'aibiGenie'  AND event_date &amp;gt;= current_date() - INTERVAL 30 DAYS ORDER BY event_time DESC&lt;/PRE&gt;&lt;P&gt;On Free Edition, that query surfaced this project's space updates, benchmark runs, and agent responses.&lt;/P&gt;&lt;P&gt;A deployment issue exposed an important grant behavior:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;CREATE OR REPLACE VIEW&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;wipes per-view grants on every rebuild. When a service principal should read every current and future view in a dedicated schema, grant&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;SELECT&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;at the schema level, or the app goes blank the next time a job rebuilds the views.&lt;/P&gt;&lt;H2&gt;Practical lessons learned&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;Invest in the data layer first. Curated views, clear metric definitions, and complete Unity Catalog comments gave Genie a stronger foundation than prompt changes alone.&lt;/LI&gt;&lt;LI&gt;Run benchmarks after every space change. Our original five-question suite improved from 3/5 to 5/5. We then expanded it to eleven questions and reached 11/11, making the suite our primary regression check.&lt;/LI&gt;&lt;LI&gt;Example SQL had a stronger influence than written instructions when the two conflicted. Keep examples narrowly scoped, name them clearly, and test the behavior they encourage.&lt;/LI&gt;&lt;LI&gt;The Agent Mode API (Beta) worked in Databricks Free Edition for multi-query research, streamed progress, generated SQL, visualization references, and conversation-aware follow-ups.&lt;/LI&gt;&lt;LI&gt;Give app service principals schema-level SELECT on dedicated schemas; per-view grants vanish when&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;CREATE OR REPLACE VIEW&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;rebuilds a view.&lt;/LI&gt;&lt;LI&gt;Preserve conversation context when moving between features. Reusing the brief’s conversation_id allowed chat findings to become report sections without repeating the original research or rebuilding the report.&lt;/LI&gt;&lt;LI&gt;Manage the Genie space like application code. Deterministic generation, source-controlled configuration, bundle deployment, and repeatable evaluations made changes reviewable and reduced drift between development and the deployed agent.&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;See it in action&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Demo video:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://youtu.be/qocXsQ7khaw" target="_blank" rel="noopener"&gt;https://youtu.be/qocXsQ7khaw&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;The app runs on Databricks Apps inside my Free Edition workspace (Apps require workspace login, so the video is the tour).&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;EM&gt;Gridiron Genie is a fan-built demo. It is not affiliated with or endorsed by the NFL or any team; marks belong to their owners. Data provided by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/nflverse/nflverse-data" target="_blank" rel="noopener"&gt;nflverse&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;under the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/nflverse/nflverse-data/blob/main/LICENSE.md" target="_blank" rel="noopener"&gt;CC-BY-4.0 license&lt;/A&gt;. Product icons in the architecture diagram via the community databricks-architecture-icons project.&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 30 Aug 2026 18:41:03 GMT</pubDate>
      <guid>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166816#M1483</guid>
      <dc:creator>dan_wiltse</dc:creator>
      <dc:date>2026-08-30T18:41:03Z</dc:date>
    </item>
    <item>
      <title>Re: Gridiron Genie: an NFL matchup room powered by Databricks Genie Agent</title>
      <link>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166818#M1484</link>
      <description>&lt;P&gt;Well done! Should forward this to my favorite team (Tampa) to see if they can actually use it to not stink (not likely).&lt;/P&gt;</description>
      <pubDate>Sun, 30 Aug 2026 18:49:58 GMT</pubDate>
      <guid>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166818#M1484</guid>
      <dc:creator>coolbeans201</dc:creator>
      <dc:date>2026-08-30T18:49:58Z</dc:date>
    </item>
    <item>
      <title>Re: Gridiron Genie: an NFL matchup room powered by Databricks Genie Agent</title>
      <link>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166928#M1492</link>
      <description>&lt;P&gt;This is great! Also appreciate you called out benchmarking.&lt;/P&gt;</description>
      <pubDate>Mon, 31 Aug 2026 14:36:08 GMT</pubDate>
      <guid>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166928#M1492</guid>
      <dc:creator>gnakan</dc:creator>
      <dc:date>2026-08-31T14:36:08Z</dc:date>
    </item>
    <item>
      <title>Re: Gridiron Genie: an NFL matchup room powered by Databricks Genie Agent</title>
      <link>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166939#M1494</link>
      <description>&lt;P&gt;This looks great! Great architecture stack with some up-and-coming new AI features from Databricks. I appreciated how you called out investing first in the data layer and enforcing standards there as the foundation. Very cool!&lt;/P&gt;</description>
      <pubDate>Mon, 31 Aug 2026 15:17:55 GMT</pubDate>
      <guid>https://community.databricks.com/t5/community-articles/gridiron-genie-an-nfl-matchup-room-powered-by-databricks-genie/m-p/166939#M1494</guid>
      <dc:creator>lurban</dc:creator>
      <dc:date>2026-08-31T15:17:55Z</dc:date>
    </item>
  </channel>
</rss>

