CommunityResearch & Data Analysisgithub.com

parinshahAIbuilder/india-finance-agent-skills

Turn a budget file and an actuals file (GL, trial balance or MIS, single entity or branch-wise / cost-centre-wise / region-wise) into a Budget vs Actual pack, with month and year-to-date variances, favourable/adverse flags that respect the sign of revenue vs cost, price/volume/mix splits where units are given, a full-year re-forecast, and management commentary that explains each material variance in one or two plain-English sentences backed by the numbers. Ends with an ON-TRACK / WATCH / ACTION-NEEDED verdict per branch and overall. Use whenever the user mentions budget vs actual, BvA, variance analysis, MIS commentary, branch-wise performance, cost-centre review, re-forecast, or "why are we over budget", even if no template is given.

What is india-finance-agent-skills?

india-finance-agent-skills is a Claude Code agent skill that turn a budget file and an actuals file (GL, trial balance or MIS, single entity or branch-wise / cost-centre-wise / region-wise) into a Budget vs Actual pack, with month and year-to-date variances, favourable/adverse flags that respect the sign of revenue vs cost, price/volume/mix splits where units are given, a full-year re-forecast, and management commentary that explains each material variance in one or two plain-English sentences backed by the numbers. Ends with an ON-TRACK / WATCH / ACTION-NEEDED verdict per branch and overall. Use whenever the user mentions budget vs actual, BvA, variance analysis, MIS commentary, branch-wise performance, cost-centre review, re-forecast, or "why are we over budget", even if no template is given.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/parinshahAIbuilder/india-finance-agent-skills/tree/HEAD/budget-vs-actual-commentary

Installed? Explore more Research & Data Analysis skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Budget vs Actual Commentary

You are the FP&A lead writing the monthly performance pack for the CFO and branch heads. Your job: show where the business is ahead of or behind plan, explain why in language a branch head will accept, and say what it means for the full year. Never write commentary the numbers do not support.

Status line (always first)

VERDICT: <ON-TRACK | WATCH | ACTION-NEEDED> | Revenue YTD <+/-x%> | EBITDA YTD <+/-y%> | Full-year forecast vs budget <+/-z%> | Period <MMM-YYYY>

  • ON-TRACK: YTD EBITDA within −2% of budget, no branch ACTION-NEEDED.
  • WATCH: YTD EBITDA −2% to −10%, or any branch at ACTION-NEEDED.
  • ACTION-NEEDED: YTD EBITDA worse than −10%, or the full-year forecast misses the budget by more than 10%. Use the user's own thresholds if they give them.

Inputs

Required: the budget (monthly, by line item and, if relevant, by branch/cost centre) and the actuals for the same structure up to the reporting month. Optional: units/volumes (for the price-volume split), headcount, prior-year actuals, the user's account-to-MIS-line mapping, known one-offs, a list of branch heads.

First align the two files: same line items, same branch codes, same months. Print the mapping table and every line that exists in one file but not the other. Do not drop them; show them as "unbudgeted" or "budget not used".

Sign rules (most common source of wrong commentary)

  • Revenue and other income: actual > budget = Favourable.
  • Costs: actual > budget = Adverse.
  • Store costs as positive numbers and apply the rule by line type. Never infer favourable/adverse from the sign of the difference alone.
  • Variance % = (Actual − Budget) / |Budget|. When the budget is 0, show "n.m." and the absolute value.

Materiality for commentary

Comment on a line only if |variance| ≥ ₹ threshold and ≥ % threshold. Defaults: 5% and 1% of the YTD budgeted revenue of that branch. Everything else rolls into "Other, net". State the thresholds used.

Variance decomposition (where the data allows)

  • Revenue: Volume = (Actual units − Budget units) × Budget price; Price = (Actual price − Budget price) × Actual units; Mix where several products are given.
  • Costs: split into a volume-driven part (flex the budget by the activity driver) and a spending part.
  • Timing vs permanent: a variance that reverses within the year (phasing, delayed spend) vs one that will not. Mark each commented line T or P. Ask the user when it cannot be told from the data.

Re-forecast

Full-year forecast = YTD actual + remaining-months budget, adjusted for the permanent variances run-rated (state the method), unless the user supplies their own forecast. Show budget, forecast and gap per line and per branch.

Commentary style

  • One to two sentences per material line: what moved, by how much (₹ and %), why (driver from the data or the user's notes), so what (full-year effect or action).
  • Example: "Chennai branch revenue is ₹18.4 L (12%) behind budget YTD. Volume is 15% lower after the delayed dealer onboarding, partly offset by 3% higher realisation. This is timing: the pipeline supports recovery by Q4 if the two dealers go live in November."
  • If the driver is unknown, write "Driver not identified from the data: confirm with " rather than inventing one.
  • No adjectives without numbers. Round to ₹ lakh / crore consistently with the user's MIS.

Output

  1. Excel workbook BvA_<Entity>_<MMMYYYY>.xlsx, formulas live:
    • Dashboard: KPIs per branch (Revenue, Gross margin, EBITDA, PBT) for the month and YTD, with RAG.
    • BvA_Month, BvA_YTD: line × branch, with Budget, Actual, Variance ₹, Variance %, F/A, T/P.
    • Price_Volume where units are given.
    • Reforecast: budget vs forecast by month.
    • Commentary: line, branch, variance, commentary text, owner, T/P.
    • Mapping: the GL-to-MIS mapping used.
  2. Commentary document (Markdown or Word on request): an executive summary (5 bullets), a branch-by-branch section, the full-year outlook, and decisions needed.
  3. Charts if asked: a variance waterfall from budget EBITDA to actual EBITDA, and a branch ranking bar.

Final pass

  • Total of the branches = entity total for every line, month and YTD.
  • YTD = sum of the months.
  • Every commented variance figure in the text matches the workbook cell.
  • Each F/A label is re-checked against the sign rules.

Cannot verify

  • Drivers not visible in the data (list the line and the owner to ask).
  • One-offs the user has not confirmed.
  • Lines without a budget.

Limits

The commentary describes the numbers and the drivers the user supplies. It does not audit the actuals. The forecast is mechanical unless the user gives assumptions.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

parinshahAIbuilder/india-finance-agent-skills

Reconcile a bank book (Tally, SAP, Zoho, Busy or any ERP ledger export) against the bank statement (PDF, Excel or CSV from any Indian or international bank) and produce a classic Bank Reconciliation Statement, matched and unmatched items, cheques issued not presented, deposits not credited, bank charges, interest, NACH/ECS/UPI/NEFT items not in the books, duplicate entries, stale cheques over three months, and suggested journal entries. Ends with a RECONCILED / RECONCILED-WITH-ITEMS / DOES-NOT-CLOSE verdict. Use whenever the user mentions BRS, bank reconciliation, bank book vs statement, unreconciled entries, month-end bank tie-out, or "why doesn't my bank balance match", even if the bank is not named.

parinshahAIbuilder/india-finance-agent-skills

Reconcile an Indian purchase register (Tally, SAP, Zoho, Busy or any ERP export) against GSTR-2B / IMS downloads and return matched, mismatched, missing-in-2B and missing-in-books invoices, the ITC at risk in rupees, Rule 37 / 37A / Section 16(4) / Section 17(5) exposure, and vendor follow-up emails. Ends with a CLAIM / CLAIM-WITH-HOLD / DO-NOT-FILE verdict for the GSTR-3B. Use whenever the user mentions GSTR-2B, 2A, IMS, ITC reconciliation, input tax credit mismatch, purchase register vs GST portal, vendor not filed GSTR-1, or "how much ITC can I claim this month", even if no rule is named.

parinshahAIbuilder/india-finance-agent-skills

Scan a full general ledger or day book export (Tally, SAP, Oracle, Zoho, Busy, or any ERP) for the journal-entry red flags that auditors test under SA 240 / ISA 240 and SA 330, and that Section 143(3)(i) internal financial control reviews look for. Flags entries posted on weekends, holidays or after hours; round amounts; just-below-approval-limit amounts; manual entries to revenue, cash or suspense; unusual account pairings; entries by unexpected or senior users; back-dated or post-close entries; reversals right after period end; duplicate entries; Benford's-law anomalies; and entries with missing or one-word narrations. Scores every entry, ranks the riskiest, and returns a sample with selection rationale. Ends with a LOW / ELEVATED / HIGH risk verdict. Use whenever the user mentions JE testing, journal entry testing, management override, fraud risk, ledger scrutiny, day book review, CARO / IFC testing, or "check the ledger for anything unusual", even if no standard is named.

parinshahAIbuilder/india-finance-agent-skills

Test an Indian company's trade payables and vendor payments against the MSMED Act 2006 payment deadlines (15 days, or up to 45 days by written agreement) and Section 43B(h) of the Income-tax Act. Returns overdue micro and small enterprise dues, the 43B(h) disallowance at year end, Section 16 compound interest (three times the RBI bank rate), the Schedule III / Section 22 MSME disclosure note, payables ageing in the Schedule III format, MSME Form 1 data, and a payment-priority list. Ends with a SAFE / PAY-BEFORE-31-MARCH / DISALLOWANCE verdict. Use whenever the user mentions MSME payables, 43B(h), Udyam vendors, 45-day rule, MSME interest, MSME Form 1, MSME disclosure in financial statements, or trade payables ageing, even if no section is named.

Related Skills