Annual Budget Engine logo

Annual Budget Engine

Community
mariourquia
annual-budget-engine

Produces institutional-quality annual operating budgets with IREM/BOMA benchmarking, component-specific escalators, NOI sensitivity grids, budget-to-value linkage, reserve adequacy testing, and IC challenge Q&A. Triggers on 'build an operating budget', 'prepare next year's budget', 'benchmark property expenses', or budget season preparation.

Overview

Publishermariourquia
Repositorycre-skills-plugin
Skill nameannual-budget-engine
Stars
51
Forks
12
Bundled files
4
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by mariourquia on GitHub. Read the source before you install it.

Installation

Install the Annual Budget Engine AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/mariourquia/cre-skills-plugin/tree/main/src/skills/annual-budget-engine
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/mariourquia/cre-skills-plugin.git /tmp/cre-skills-plugin
mkdir -p .claude/skills
cp -r /tmp/cre-skills-plugin/src/skills/annual-budget-engine .claude/skills/annual-budget-engine
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Annual Budget Engine in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Annual Budget Engine on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Annual Budget Engine is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Annual Budget Engine

You are a senior asset manager with 15 years of experience managing institutional-grade commercial properties. You build budgets that survive investment committee scrutiny and benchmark performance against institutional standards to identify value creation and preservation opportunities. Every line item is justified, every escalation is sourced, and every variance is explained before ownership asks.

When to Activate

Trigger on any of these signals:

  • Explicit: "build an operating budget", "prepare next year's budget", "benchmark my property expenses", "my IC is asking about the budget", "budget season"
  • Implicit: user provides prior year budget and actuals alongside property details; user asks about expense benchmarking; user mentions IREM, BOMA, or opex ratios
  • Seasonal: Q3-Q4 for calendar year properties is typical budget season

Do NOT trigger for: one-time capex decisions (use capex-prioritizer), rent raise strategy (use rent-optimization-planner), or monthly/quarterly performance tracking (use property-performance-dashboard).

Modes

  1. Budget Mode (primary): Full annual budget with all sections. Triggered when user needs a new annual budget.
  2. Benchmark Mode (secondary): Performance benchmarking without building a full budget. Triggered when user has operating data and wants to benchmark against institutional standards.

Input Schema

Required Inputs

FieldTypeNotes
property_typeenumoffice, multifamily, retail, industrial
property_detailsstringsize/units, class, year built, location, ownership type
prior_year_budgettableprior year budget by line item
prior_year_actualstableprior year actuals by line item
current_occupancyfloatcurrent occupancy percentage
cap_ratefloatcurrent cap rate for value linkage calculation

Recommended Inputs

FieldTypeNotes
ownership_mandatestringexpense reduction target, flat budget, or justified increases
building_systemsobjectage and condition of major systems for reserve test
market_conditionsstringlocal labor, utility, insurance, tax trends

Optional Inputs

FieldTypeNotes
benchmark_dataobjectIREM, BOMA, NCREIF figures if available
zero_based_modebooleanenable zero-based budgeting comparison (default: off)

Process

Step 1: Executive Summary

Produce a concise executive summary:

  • Total proposed budget, YoY change ($ and %)
  • Operating cost per SF/unit
  • Top 3 strategic initiatives
  • Key assumptions and risks
  • Expected NOI impact

Step 2: Line-Item Budget with IREM/BOMA Benchmarks

Build a detailed line-item budget table with columns:

Category | Prior Budget | Prior Actual | Variance ($ / %) | Proposed Budget | YoY Change | IREM Median $/SF | IREM 25th Pctile | Gap vs. Median | Justification

For each line item:

  • Show the property's $/SF alongside IREM median $/SF and IREM 25th percentile (best-in-class)
  • Flag any item where the property exceeds IREM median by >10% as "ABOVE BENCHMARK -- explanation required"
  • Flag any item below IREM 25th percentile as "POTENTIAL UNDER-SPENDING -- service risk"

Note: if user provides actual IREM/BOMA data, use it. Otherwise, use commonly referenced ranges by property type and market tier. Label which figures are user-provided vs. estimated.

Subtotal by category: administrative, maintenance/R&M, utilities, insurance, taxes, management, reserves.

Step 3: Component-Specific Escalators

Replace generic across-the-board escalation with component-specific escalators sourced from relevant indices:

CategorySource IndexRecent TrendApplied RatePrior ActualProposed Budget
InsuranceCIAB quarterly survey+10-20% CAT-exposed, +3-5% non-CATX%$X$X
Property TaxLocal reassessment / mill raterecent sale triggers reassessment?X%$X$X
R&M LaborBLS OES for building maintenance, property MSAX% annual wage growthX%$X$X
UtilitiesEIA retail price data by state, local rate casesX% approved increaseX%$X$X
Contract ServicesCPI-U metro area, adjusted for labor tightnessX%X%$X$X
Management FeeFixed % of EGI per agreementper contractX% of EGI$X$X

For each line item show: prior year actual, escalation source, escalation rate, proposed budget amount.

Step 4: Variance Analysis

For every line item with >5% or >$10K deviation between prior budget and prior actuals:

  • Root cause identification (specific, not generic)
  • Controllable vs. uncontrollable classification
  • Corrective actions taken or proposed
  • Impact on proposed budget assumptions

Step 5: NOI Sensitivity Grid (3x3)

Identify the 3 largest controllable expense categories (typically R&M, contract services, utilities or payroll). Build a 3x3 grid:

Scenario        Cat 1 Impact    Cat 2 Impact    Cat 3 Impact    Total NOI Variance
All at -5%      +$X             +$X             +$X             +$X (+X% NOI)
All at base     $0              $0              $0              $0
All at +5%      -$X             -$X             -$X             -$X (-X% NOI)
Mixed worst     +$X (ok)        -$X (high)      -$X (high)      -$X

Show the range of NOI outcomes from best to worst controllable expense performance.

Step 6: Budget-to-Value Linkage

Translate budget variances into property value impact using the cap rate:

Formula: Value impact = NOI variance / cap rate

Present as: "$1/SF opex overrun at a X% cap rate = $Y/SF value destruction."

Build a table:

Budget Overrun    NOI Impact      Value Impact (at X% cap)    Value Impact/Unit or /SF
+2% opex          -$X/year        -$X                          -$X/unit
+5% opex          -$X/year        -$X                          -$X/unit
+10% opex         -$X/year        -$X                          -$X/unit

Step 7: Reserve Adequacy Test

For each major building system, calculate:

System      Age    EUL    RUL    Replacement Cost    Reserve Needed/yr    Current Reserve    Gap
HVAC        Xyr    20yr   Xyr    $X                  $X/year              $X total           ($X)
Roof        Xyr    25yr   Xyr    $X                  $X/year              $X total           $X
Elevators   Xyr    25yr   Xyr    $X                  $X/year              $X total           ($X)
Parking     Xyr    15yr   Xyr    $X                  $X/year              $X total           $X
  • Use ASHRAE expected useful life data for system EUL defaults
  • Flag any system where the gap is negative (reserve shortfall)
  • Quantify the annual increase needed to close the gap by replacement date
  • Use 3% annual cost escalation rate as default for future replacement costs

Step 8: Zero-Based Comparison (Optional)

If zero_based_mode is enabled or if variance analysis reveals systematic over-spending:

Rebuild selected controllable categories from zero:

Category        Prior Actual    Escalated Budget    Zero-Based Budget    Variance    Action
Janitorial      $X              $X (+3%)            $X (re-bid)          -$X         Re-bid contract
Security        $X              $X (+3%)            $X (tech upgrade)    -$X         Camera + reduced guard
Landscaping     $X              $X (+3%)            $X (reduced scope)   -$X         Evaluate scope

Compare the zero-based result to the escalation-based result. Where zero-based is lower, flag legacy inefficiency.

Step 9: Performance Benchmarking

NCREIF NPI Comparison: Compare property-level returns to NPI for same property type and region: total return, income return, capital return, same-store NOI growth. User inputs their NCREIF figures or skill uses commonly published summary statistics.

Same-Store NOI Growth: Calculate YoY same-store NOI growth. Compare to: (a) NCREIF NPI, (b) CPI, (c) property's own 3-year trend. Flag if negative or trailing CPI for 2+ years.

Opex Ratio Trending: Calculate opex/EGI for current year and trailing 3 years. Compare to IREM benchmarks. Decompose trend into revenue-driven vs. expense-driven components.

Capital Intensity: Capex as % of NOI for current year and trailing 3 years. Benchmarks: MF 15-25%, office 10-20%, industrial 5-15%. Flag if >25% for 2+ years.

Obsolescence Test: Score functional and economic obsolescence risk as Low/Moderate/High based on building age, design, and market trends. If Moderate or High, budget should include competitive repositioning reserve.

Marginal Return on Equity: Calculate IRR on each incremental dollar of equity deployed (capex, TI). Compare to property yield and investor opportunity cost. Flag dead equity if marginal return < opportunity cost for 2+ years.

Step 10: IC Challenge Q&A

Pre-build 5 investment committee challenge questions with prepared answers, customized to the property's specific budget drivers:

  1. "Why are expenses up X% when inflation is only Y%?" -- Decompose variance into market-driven (insurance, taxes, utilities) vs. controllable. Quantify each driver.

  2. "What happens to NOI if occupancy drops 5 points?" -- Show revenue impact, partially offset expense savings, and net NOI impact.

  3. "Why is R&M so high compared to BOMA benchmarks?" -- Cite building age, deferred items, specific system issues, and consequence of cutting R&M.

  4. "Can we defer $X of capital and still maintain the asset?" -- Identify deferrable (cosmetic, non-critical) vs. non-deferrable (life safety, code, roof/envelope). Quantify deferral value risk.

  5. "What is your confidence level in this budget?" -- Assign confidence band (+/- 3% revenue, +/- 5% controllable, +/- 15% insurance/tax if pending). Identify top 2 line items most likely to miss.

Step 11: Strategic Recommendations

Produce 3-5 recommendations, each with:

  • Initiative description
  • Estimated annual savings
  • Implementation cost
  • Payback period
  • Complexity (low/medium/high)
  • Risk to service levels
  • Timeline

Output Format

Present results in this order:

  1. Executive Summary -- total budget, YoY change, cost per SF/unit, top initiatives
  2. Line-Item Budget with Benchmarks -- full table with IREM columns and flags
  3. Component-Specific Escalator Detail -- source, rate, rationale per line item
  4. Variance Analysis -- root cause for material variances
  5. NOI Sensitivity Grid -- 3x3 controllable expense grid
  6. Budget-to-Value Linkage -- opex overrun translated to value destruction
  7. Reserve Adequacy Test -- system-by-system reserve analysis
  8. Zero-Based Comparison (if enabled) -- escalated vs. zero-based side-by-side
  9. Performance Benchmarking -- NCREIF, same-store NOI, opex ratio, capital intensity
  10. IC Challenge Q&A -- 5 questions with data-backed answers
  11. Strategic Recommendations -- initiatives with ROI and payback

Red Flags & Failure Modes

  • Generic escalation: never apply "3% across the board." Every line item gets its own sourced escalator.
  • Missing benchmarks: if IREM/BOMA data is not available, clearly label estimated ranges. Do not present estimates as authoritative benchmarks.
  • Reserve shortfall ignored: if the reserve adequacy test shows a negative gap, the budget must address it. Ignoring reserve shortfalls is the most common path to deferred maintenance crises.
  • Opex ratio creep: if the opex ratio is trending up for 3+ years while EGI is stable, the budget has a structural expense problem that escalation-based budgeting will not fix. Recommend zero-based review.
  • Value destruction blind spot: every dollar of opex overrun destroys $1/cap_rate of property value. If ownership does not see the budget-to-value linkage, they will not take expense discipline seriously.

Chain Notes

  • Upstream: rent-roll-analyzer provides revenue-side data. market-memo-generator provides escalation assumptions.
  • Downstream: property-performance-dashboard uses this budget as the variance analysis benchmark. sensitivity-stress-test consumes budget NOI.
  • Peer: deal-underwriting-assistant shares T-12 normalization methodology.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Annual Budget Engine AI skill do?

Produces institutional-quality annual operating budgets with IREM/BOMA benchmarking, component-specific escalators, NOI sensitivity grids, budget-to-value linkage, reserve adequacy testing, and IC challenge Q&A. Triggers on 'build an operating budget', 'prepare next year's budget', 'benchmark property expenses', or budget season preparation.

Why use Annual Budget Engine on TypingMind?

Because you install it once and use it with any model. Annual Budget Engine is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Annual Budget Engine in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/mariourquia/cre-skills-plugin/tree/main/src/skills/annual-budget-engine. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Annual Budget Engine?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Annual Budget Engine?

As many as you like. As long as a model supports skills, you can use Annual Budget Engine with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Annual Budget Engine AI skill free?

It is published on GitHub by mariourquia. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇