Agentic Delivery  ·  15 Years Fortune-100 BI  ·  Self-Funded

MSOS Daily
Holdings
Tracker

A production-grade analytics product, built and run by one person directing a fleet of AI agents. An automated daily-capture pipeline feeds a 53-table Power BI model and an AI narrative layer that writes the plain-language read — reconciling more than fifty disagreeing data sources into one trustworthy picture, every trading day. The subject is a structurally complex, swap-based cannabis ETF — the hardest reporting target I could find.

A self-directed personal project, with no client. The fund is a public test case chosen to prove the method.

Power BI Semantic Model DAX Python Capture Pipeline Automated Testing Version Control AI Agent Orchestration AI Narrative Layer (Claude) Geospatial Mapping
50+
Data Sources Reconciled
31
Daily Pipeline Stages
503
DAX Measures · 72 Pages
33
States + DC Mapped
▶  Live Interactive Dashboard Powered by Microsoft Power BI
Self-funded personal project · no client · not investment advice
01

The Agentic Build

One person built this. Then the automation took over — every trading day it captures, reconciles, models, and refreshes itself, with no one at the keyboard. Under the hood: a 152-module Python pipeline, a 53-table Power BI model with 503 measures, a 50-source reconciliation engine, and an AI narrative layer. How one person built something this size in weeks is the point of this case study: I ran it like an enterprise delivery team, except the team was a fleet of AI agents and I was the orchestrator.

Parallel build agents. Each worked in an isolated workspace, building entire components of the reporting product simultaneously without stepping on each other — the capture pipeline, the semantic model, and the visual layer advancing at once.
Research agents. Ran the deep groundwork in parallel — tracking state and federal cannabis legislation, mapping each operator's regulatory status, and hunting down dispensary registries across 33 states and DC, each with its own regulator, format, and quirks — alongside reporting standards and edge cases, surfacing the swap-conversion behavior before it could surface as a wrong number.
Live model operations. I directed agents to inspect, build, and audit the Power BI semantic model directly — the same way you'd have an engineer review a production system, not a screenshot.
A 31-stage daily orchestration. Every trading day, a dozen fetch agents pull the sources in parallel; curate and reconcile run in sequence; then specialized AI agents write the daily read, the per-company briefs, and the weekly themes — with a separate validation subagent gating every number before it ships.
Grounded AI agents, for under $50 a year. Five daily language-model passes and a weekly one (Claude Sonnet and Opus) write the analysis — the daily read, Today's Take, the “why it moved,” per-company briefs, and more — run overnight through Anthropic's Batch API, which halves the cost. Every figure they cite is checked against the reconciled data; anything that can't be grounded is dropped rather than published. Total model cost: well under $50 a year.
02

Tying It Together

It starts with basic, public data — the kind anyone can pull. The fund's own daily file, SEC filings, market and short-interest data, dispensary registries across 33 states and DC, a hand-built federal and state legalization timeline, newswires: 50+ distinct sources, none of them built to agree. The value is in reconciling all of it into one model, where a plain holdings file becomes a complete, day-over-day view of the fund. Not new data: ordinary data, reconciled into a view no single feed delivers.

■  Fund Holdings & Facts
The fund's daily holdings file — which overwrites itself with no history — and its published fund facts, the anchor every other source is reconciled against.
■  SEC Filings
N-PORT monthly portfolios, 13F institutional holdings, XBRL company fundamentals, and 8-K / 10-K / 6-K / 40-F event feeds — pulled straight from EDGAR.
■  Market & Short Interest
Underlying and benchmark prices and quotes, plus short interest from FINRA, FINRA Reg SHO daily volumes, and Canada's CIRO — three regulators, two countries.
■  News & Sentiment
Three newswires — GlobeNewswire, PR Newswire, Business Wire — each targeting different holdings, plus a sentiment feed: the catalysts behind the moves.
■  Dispensary Registries — 33 States + DC
34 separate state regulators (33 states plus DC) — each scraped on its own, arriving as JSON, CSV, HTML, and even PDF — normalized into one footprint of where these companies actually do business.
■  Reference & Synthesis
Wikidata company demographics, historical shares outstanding recovered via the Internet Archive's Wayback Machine, and a Claude synthesis layer applied only to numbers already reconciled.
●  Where the Work Is
None of these were built to agree. The hard part isn't fetching them — it's the reconciliation: matching a swap leg to its equity leg, resolving CUSIP and issuer identity across sources, and tying every figure back to the fund's own facts, so one model holds and every number traces to where it came from.
03

The Discipline

This is the part most AI work skips, and it's the whole point. Speed without governance produces confident, wrong numbers. The tracker is built on enterprise-grade controls.

An idempotent pipeline. Re-running it produces byte-identical output, so a change in the numbers is a real change in the data — never an artifact of the pipeline itself.
1,700+ automated tests. Every parsing and classification rule is guarded, so a change in upstream behavior surfaces as a failing test rather than a silent error in the numbers.
Continuous audit-drift tracking. The live model is reconciled against its specification, and any drift is flagged and resolved before publish — so the documentation and the running system stay in sync.
A human in the loop on anything ambiguous. Borderline cases are flagged for review, never silently force-classified. A flagged item costs seconds; a wrong number costs a correction.
Defensive parsing. When an upstream file format shifts, the pipeline flags the drift instead of quietly mis-reading it.
An independent validation subagent. Before anything ships, a separate agent re-checks every number, name, color, and format on every page against ground truth and holds a go/no-go gate — the agent that builds a change never certifies its own work.
An 11-layer pre-publish gate. Capture, parsing, classification, source reconciliation, cross-file checks, fund-facts identities, and the headline numbers all have to pass green before a single figure goes out.
A three-date freshness tripwire. Each file's capture time, its server timestamp, and its internal as-of date are cross-checked — any divergence flags a stale or misdated source before it can poison a day. It has caught real missed captures.
04

The Product & What It Surfaces

A multi-page Power BI analytics suite — a daily, navigable view into a fund whose true position is otherwise scattered across dozens of disclosures — backed by an automated daily-capture pipeline, fully version-controlled, and refreshed on its own every trading day.

The portfolio manager's daily trades. Each day's buys and sells, reconstructed from the holdings change and surfaced as plain activity — what the PM actually did, the day they did it.
The swap book and its counterparties. Which exposures the fund holds synthetically rather than outright, and through which of its seven swap counterparties — the part of the fund that is hardest to see from the outside.
The cash position. Cash held alongside invested exposure, tracked day over day.
Swap-to-physical conversion tracking. The headline view — each position flagged as it migrates from a swap into directly-held shares, the exact event that breaks naive trackers, surfaced cleanly as it happens.
The daily portfolio change. Every company's share-count movement and fund-level flow, day over day — the reconstruction everything else is built on.
Manager vs. market vs. flow. Each day's change in value split three ways — what the manager chose to trade, what the market did to prices, and fund creations and redemptions — so intent shows up separately from noise.
The daily written read. A grounded, plain-language take on what moved and why — generated each day from the reconciled numbers, with sources and no invented figures — alongside per-company briefs and weekly themes.
Short interest & institutional ownership. Short-interest trends and the 13F institutional holder base behind each holding, tracked over time.
The real-world operator footprint. A 33-state-plus-DC map of where the fund's operators actually run dispensaries — the roughly 947 stores run by the fund's 14 multi-state operators, identified within a ~9,900-store national universe — tying paper exposure to physical reach.
05

Why This Topic

I picked this fund because I own it. As an investor in MSOS, I wanted transparency its own filings don't give you: where its swap-to-physical conversions actually stand, which companies are uplisting or changing exchanges, and what the broader U.S. cannabis market is doing day to day. Those exact questions surface constantly on social media, with no single good source for the answers — so I built the product I wanted to have.

It also happens to be one of the hardest reporting targets I could find. The fund holds U.S. cannabis operators, federally illegal under Schedule I, so the exchanges won't list them and U.S. custodians won't hold their shares — the fund rents their economic return through total-return swaps instead of owning shares outright. The same company can sit in a swap line and an equity line at once, so a naive day-over-day read misreads a conversion as two trades that never happened — all from a source file that overwrites itself with no history.

And it is a moving target. As federal rescheduling progresses and these operators uplist and become custody-eligible for U.S. institutions, the fund converts its swaps into directly-held shares, name by name. I expect the appetite for clear, trustworthy insight on all of it to grow right alongside the reform.

●  The Point
I built this because I wanted it to exist — real transparency on a fund I hold, in a market where the questions are only getting louder. It was also where I learned to direct a fleet of AI agents to build production Power BI at this depth — a capability barely a couple of months old. That it doubles as proof of a method that holds on a brutally hard target is the part that travels.
06

Why This Matters for Your Business

The fund is my problem to solve. The method behind it is what transfers to yours.

I can stand up trustworthy, automated reporting for your business — fast, to a standard you'd be comfortable putting your name on — because I deliver with a team of agents and the governance to keep them honest.

Book a Discovery Call →