bva-variance-analysis

Computes Budget vs. Actual variance per P&L line and flags overruns exceeding 10%.

1|Updated Jun 21, 2026
One-click install
npx skills add https://github.com/tapway/shogun-os --skill bva-variance-analysis-tapway
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bva-variance-analysis
Source: https://github.com/tapway/shogun-os/tree/main/skills/finance/bva-variance-analysis
Command: npx skills add https://github.com/tapway/shogun-os --skill bva-variance-analysis-tapway

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Finance teams need to compare actual spending against budget baselines line-by-line at month-end close, and manually computing variance percentages and spotting cost overruns across every P&L account is slow and error-prone. ## Core Features & Use Cases - Line-item variance computation: Reads finance/budget.json and QuickBooks P&L actuals, then computes variance amount and percentage per account via scripts/variance.py. - Automatic overrun flagging: Marks any line with absolute variance above 10% with a warning marker and prints a summary of key variances. - Graceful degradation: Returns a clean "BvA section unavailable" message when budget.json is missing instead of crashing. - Use Case: During month-end close, run the variance script against the annual budget and the QBO P&L export to produce the BvA table that feeds the monthly board report. ## Quick Start Ask the finance-manager agent to run a Budget vs. Actual variance analysis for the current period using the budget file and the latest QuickBooks P&L actuals.

Frequently Asked Questions about bva-variance-analysis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a Budget vs. Actual variance analysis?

Run scripts/variance.py with --budget pointing to finance/budget.json and --actuals pointing to the acct_get_profit_loss JSON output. The script prints a markdown table with budget, actual, variance, variance percentage, and flags per account line.

How are budget lines matched to QuickBooks actuals?

Lines are matched by account_code first, then by account_name. The actuals P&L JSON is indexed by account_code, and any budget line without a matching actual is treated as zero actual spend.

What happens if budget.json is missing?

The script degrades gracefully: it prints a "BvA section unavailable" warning and exits with code 0 instead of crashing. Author a budget via the budget-financial-modeling skill to enable BvA reporting.

Can I change the 10% variance flag threshold?

The 10% threshold is spec-defined and shared with the budget model and board report template, so it should not be changed in isolation. It is set as VARIANCE_THRESHOLD_PCT in variance.py if a coordinated update is required.

Why do budget lines fail to match actuals after a QuickBooks change?

If QuickBooks account codes are renumbered, budget lines no longer match actuals by account_code. Maintain a code-mapping table in finance/budget.json to keep the mapping stable.