Cost & Capital Analysis · 2021—
CAAT: Capital Program Benchmarking & Cost Analysis Platform
An R Shiny analytics platform backed by a SQL Server database (C2DB), supporting
cost benchmarking and performance evaluation of multi-billion dollar NNSA capital
acquisition programs. It serves 100+ federal cost estimators and program analysts.
I have worked on it for five years and have led the project since October.
The platform exists to do three things: consolidate dirty, disparate source data
into one accurate and documented store with business logic encoded in an automated
validation pipeline; replace siloed Excel models with interactive,
version-controlled tools inside the dashboard; and let analysts build and export
their own queries rather than waiting on someone else to pull the data. All three
serve the same end — trusted, tailored data that lets cost estimators reach
defensible conclusions faster.
In commercial terms
FP&A and capital planning infrastructure for a multi-billion dollar project
portfolio — the benchmarking data, variance analysis, and self-serve reporting that
the analysts supporting those programs work from.
- Role
- Project lead since Oct.; senior contributor prior
- Team
- 3–5, several part-time
- Stack
- R Shiny · SQL Server · bslib · DBI/dbplyr · pointblank · Azure
Led & owned
- Led the v4.0 production release: set release strategy through repeated engagement with stakeholders across teams, ran the delivery sprint, owned build of a new analytical model, and reviewed and approved the team's work into production
- Designed the SQL Server governance layer — triggers, change log, and SQL views — including a data dictionary maintained as an extended property, so documentation lives with the data rather than beside it
- Established version control practice for both CAAT and IIP: set up and connected the GitHub repositories, wrote the documentation covering account setup, cloning, and contribution workflow, and administer access permissions across both projects
- Built several of the dashboard's analytical visualizations and one of its models, designed against UI/UX best practice — consistent interaction patterns, deliberate information hierarchy, and layouts organized around how analysts work rather than how the data is stored
- Leading the ongoing migration of the database and Posit Connect server off on-premise hardware and onto Azure
- Wrote the in-depth training guide, ran dashboard trainings, and led custom demos built around each incoming stakeholder group's workflows
- Led onboarding and knowledge sharing across the team, including the technical documentation new contributors need to become productive
Built with the team
- Contributed to the database redesign into a snowflake schema
- Helped define business logic and built a portion of the automated validation suite using pointblank
- Wrote data cleaning and loading functions, and contributed to the custom R package behind the ETL pipeline
- Migrating the legacy Excel models onto the platform brought them under version control, added documentation, and let inputs flow in automatically rather than being keyed in by hand
- Adoption grew from passive recipients to active daily users, with day-over-day dashboard hits increasing more than 50%
Cost & Capital Analysis · 2021—2025
IIP: Capital Portfolio Optimization & Tradeoff Analysis
A decision-support platform where analysts construct and optimize portfolios of
capital projects, adjusting start years, durations, and funding levels. The problem
it addresses is a three-way constraint: a portfolio has to be affordable against
the budget available, executable given real scheduling and capacity limits, and
still sufficient to meet mission requirements.
My contribution is the data layer, IIPDB. Most of its complexity exists to give
users flexibility. Analysts can select from a wide range of cleaned, documented
inputs when configuring a simulation, so the database holds those inputs for all
225+ capital projects in the portfolio — three to five configurable inputs per
project, each carrying one to three data points — and persists every scenario a
user builds.
In commercial terms
The backend of a planning and scenario system, closer to an FP&A scenario tool
than a reporting warehouse — every "what if" a user builds becomes persisted state,
not a throwaway calculation.
- Role
- Data layer owner
- Stack
- SQLite → PostgreSQL · R package dev · medallion architecture
Findings
- Architected and maintain IIPDB — a database and custom R package pipeline following the medallion model: raw ingestion → silver standardization → gold transformation
- Designed the schema — tables, relationships, constraints — around the access patterns the optimization models actually use, rather than around the shape of the source data
- Silver layer standardizes disparate sources into consistent, query-ready tables, separating ingestion concerns from analytical logic
- Gold layer applies custom R modeling functions that encode domain business logic and pre-compute results, keeping computation out of the Shiny frontend
- Currently migrating the store from SQLite to PostgreSQL as concurrent scenario writes outgrow what SQLite handles comfortably
Economic Research · Independent
Regional Economic Realignment: Pennsylvania, 2008–2024
A county-level analysis of Pennsylvania's economic and political realignment across
five election cycles. The prevailing account attributes the shift to manufacturing
job losses concentrated around 2016. The data does not support that timeline:
manufacturing had been leaving the state for decades, and the erosion of working
and middle class economic position was correspondingly gradual. What changed more
recently was not employment but pressure — households already weakened by long-run
wage stagnation meeting steeply rising costs of living.
Provenance
Growing up in Pennsylvania, a state more economically complicated than national
coverage suggests, shaped the research instinct behind this one.
- Role
- Sole author
- Stack
- R Shiny · tidycensus · leaflet · Census/ACS
- Status
- Live dashboard ↗
Findings
- Built an economic indicator panel across all 67 counties from Census and ACS sources, tracking wage growth, cost burden, and manufacturing employment over a multi-decade window rather than a single cycle
- Classified counties by five-election flip pattern and tested the long-horizon stagnation thesis against outcomes
- Separated long-run structural decline from recent cost pressure, so the two effects could be examined independently rather than collapsed into one narrative
- Constructed a forward-looking targeting score identifying highest-return counties for 2026 and 2028
- Deployed as an interactive dashboard where users adjust indicator weights and watch the ranking respond
Financial Reporting & Compliance · 2020—2021
Automated Regulatory Reporting — Yang for New York
The campaign's matching-funds claims depended on donation data reaching the NYC
Campaign Finance Board both accurately and on schedule. I built the pipeline that
delivered it — running unattended against a fixed statutory deadline, in a context
where a reconciliation error carries immediate financial consequence rather than a
correction in next quarter's report.
In commercial terms
Automated regulatory financial reporting, engineered to run without supervision
against an external deadline that does not move.
- Role
- Bluebonnet Data fellow
- Stack
- Python · Docker · ActBlue
Findings
- Built automated Python and Docker pipelines reporting ActBlue donation data to the NYC Campaign Finance Board
- Eliminated 20+ hours of manual reconciliation per week, and removed the error class manual entry introduces
- Supported $6M+ in matched donations through reliable automated reporting
Research & Operations Analytics · 2020—2021
Demographic Trend Analysis & Field Automation — DePasquale for Congress
An outside political consulting firm circulated a report indicating that support
among one demographic group was declining week over week. I analyzed census and
voter file data to examine the same question over a longer horizon, and what the
underlying trends showed pointed in the other direction.
Separately, field organizers were spending hours each week hand-entering records of
organizing and fundraising activity. I automated that reporting.
In commercial terms
Examining a vendor's published conclusion against primary data rather than
accepting it at face value, and removing manual reporting overhead from the people
whose time it was worst spent on.
- Role
- Bluebonnet Data fellow
- Stack
- R · Census/ACS · VAN/VoteBuilder
Findings
- Analyzed census and voter file data in R to examine demographic support trends over time, testing a widely circulated claim against the underlying evidence
- Used those trends to inform precinct-level outreach strategy
- Automated internal reporting on organizing and fundraising activity, eliminating hours of weekly manual data entry for field organizers