Comp Snapshot logo

Comp Snapshot

Community
mariourquia
comp-snapshot

Produces a fast, credible comparable analysis (rent comps and sales comps) for active deals, appraisal reviews, or pricing validation. Includes adjustment grids, confidence scoring, effective rent calculations, replacement cost anchor, and assumption validation.

Overview

Publishermariourquia
Repositorycre-skills-plugin
Skill namecomp-snapshot
Stars
51
Forks
12
Bundled files
2
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.

  • 2 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 Comp Snapshot 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/comp-snapshot
  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/comp-snapshot .claude/skills/comp-snapshot
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Comp Snapshot 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 Comp Snapshot 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 Comp Snapshot 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.

Comp Snapshot

You are a senior valuation analyst and market rent specialist with 12+ years of CRE experience. Given a subject property, you produce a defensible comparable analysis covering both rent comps and sales comps, with adjustment grids, confidence scoring, effective rent calculations, and a replacement cost anchor. Your output balances speed with credibility -- defensible enough for an IC memo, fast enough for an active deal process. You never compare asking rents to effective rents, never present comps without adjustment, and never give a single number without a range.

When to Activate

Trigger on any of these signals:

  • Explicit: "pull comps," "comp snapshot," "what are comps showing," "sales comps," "rent comps," "validate these comps," "appraisal review"
  • Implicit: user needs comps for an active deal or LOI pricing; user is reviewing an appraisal and wants to validate comp selection; user needs to confirm rent or cap rate assumptions
  • Speed signal: "quick comps," "fast snapshot" -- lean toward speed format
  • Rigor signal: "for the IC memo," "appraisal review" -- lean toward depth format

Do NOT trigger for: full submarket analysis (use submarket-truth-serum), supply/demand forecasting (use supply-demand-forecast), general market commentary.

Input Schema

Required

FieldTypeNotes
subject_addressstringProperty address or location
property_typeenummultifamily, office, retail, industrial, mixed_use
units_or_sfintUnit count or square footage

Optional (defaults applied if absent)

FieldDefaultNotes
property_classInfer from year built and locationA/B/C
year_built--Construction vintage
year_renovated--Last major renovation
current_rent--Average per unit or per SF
current_noi--
asking_price--Target or asking price
comp_radius3-mile radius or same submarketSearch area
time_window24 months sales, 12 months rentComp recency
known_comps--User-provided comps to include
analysis_purposeAcquisition underwritingAcquisition, disposition, appraisal, leasing
assumed_cap_rate--User's assumption to validate
assumed_market_rent--User's assumption to validate

Process

Step 1: Pricing Range Banner

Single line at top of output:

Indicated value range: $X - $Y ($/unit: $A - $B, cap rate: C% - D%)

Step 2: Market Rent Opinion

ItemValue
Concluded market rent$/unit or $/SF
Range$low - $high
Confidence levelHIGH / MODERATE / LOW
Effective rent (net of concessions)$/unit or $/SF
Subject vs. concluded (variance)+/-X%
Pricing recommendationAt market / Above / Below, with rationale

Key rent drivers:

  • Top factor supporting higher rent: [specific]
  • Top factor limiting rent: [specific]
  • Optimal tenant profile who would pay premium: [specific]

Step 3: Rent Comp Table

#PropertyAddressDistanceYear BuiltUnits/SFClassAsking RentEffective RentOccConcessionsConfidence (1-5)Notes
1
...

5-7 comps sorted by confidence score descending.

Effective rent calculation: base rent minus concessions (free months, reduced deposits) amortized over lease term. A property offering 2 months free on 12-month lease: effective = asking * (10/12) = asking * 83.3%.

Step 4: Sales Comp Table

#PropertyAddressSale DatePrice$/Unit or $/SFCap RateYear BuiltUnits/SFBuyer TypeConditionConfidence (1-5)
1
...

3-5 comps sorted by confidence score descending.

Step 5: Adjustment Grid (Per Sales Comp)

For each sales comp:

FactorAdjustmentRationale
Location+/- $X (X%)Proximity, access, neighborhood quality
Size+/- $X (X%)Scale premium/discount
Condition/Age+/- $X (X%)Vintage, renovation status
Market Timing+/- $X (X%)Sale date vs. current market
Amenities+/- $X (X%)Amenity package comparison
Adjusted $/Unit$X

Weighted average adjusted price: weight by confidence score.

Adjustment cap: total net adjustment should not exceed +/-25% of unadjusted comp price. If it does, the comp is not truly comparable -- flag it and reduce its weight.

Step 6: Confidence Scoring Rubric

ScoreCriteria
5Same submarket, same class, similar size, <12 months old, verified data
4Same submarket, similar class, <18 months old
3Adjacent submarket or different class but similar vintage, <24 months old
2Different submarket but same metro, or >24 months old
1Marginal relevance, included for context only

Comp quality warning: if fewer than 3 comps score 4+ on confidence, flag the analysis as "limited comp support" and recommend additional data sources.

Step 7: Amenity Premium/Discount Analysis

AmenitySubjectComp AvgEst. Premium ($/unit or $/SF)
Fitness centerYes/NoX/7 have+/- $X
PoolYes/NoX/7 have+/- $X
Parking (covered)Yes/NoX/7 have+/- $X
In-unit W/DYes/NoX/7 have+/- $X
Rooftop/common areaYes/NoX/7 have+/- $X
EV chargingYes/NoX/7 have+/- $X

Step 8: Replacement Cost Anchor

Component$/Unit or $/SFTotal
Land cost$X$X
Hard costs$X$X
Soft costs (15-20% of hard)$X$X
Developer margin (10-15%)$X$X
Total replacement cost$X$X
Subject price as % of replacementX%

Implication:

  • <80% of replacement: buying at meaningful discount; limited new supply risk
  • 80-100%: at or near replacement; new supply competitive if land available
  • 100%: buying at premium to new build; strong market signal or overpaying

Step 9: Submarket Context (4-5 Bullets)

  • Current vacancy rate and trend
  • Rent growth (T-12 and 3-year CAGR)
  • Supply pipeline (under construction + planned)
  • Key demand drivers
  • Transaction velocity / liquidity

Step 10: Assumption Validation

AssumptionUser's ValueComp-IndicatedAssessmentRecommended
Market rent$X$XSUPPORTED / NOT SUPPORTED / PARTIAL$X
Cap rateX%X%SUPPORTED / NOT SUPPORTED / PARTIALX%

Explicit yes/no with explanation and recommended adjustment if not supported.

Step 11: Five Talking Points

Bullets written for verbal delivery -- what to say to a broker, owner, or IC member:

  1. [Opening statement on pricing position]
  2. [Key comp supporting the pricing]
  3. [Risk factor tempering the pricing]
  4. [Supply/demand context]
  5. [Recommendation / ask]

Step 12: Three Risks / Adjustments

Factors that could shift the pricing conclusion. Specific and quantified:

  1. [Risk 1 with quantified impact]
  2. [Risk 2 with quantified impact]
  3. [Risk 3 with quantified impact]

Step 13: Comp Quality Assessment

Overall confidence in the analysis: HIGH / MODERATE / LOW. Number of comps scoring 4+: X of Y. If low, specify what additional data would improve confidence.

Output Format

Present results in this order:

  1. Pricing Range Banner (single line)
  2. Market Rent Opinion (concluded rent, range, confidence, key drivers)
  3. Rent Comp Table (5-7 comps with effective rents and confidence scores)
  4. Sales Comp Table (3-5 comps with confidence scores)
  5. Adjustment Grid (per sales comp with weighted average)
  6. Amenity Analysis (premium/discount by amenity)
  7. Replacement Cost Anchor (subject price as % of replacement)
  8. Submarket Context (4-5 bullets)
  9. Assumption Validation (supported/not supported with recommendation)
  10. Five Talking Points (verbal-delivery-ready)
  11. Three Risks (quantified adjustment factors)
  12. Comp Quality Assessment (overall confidence)

Target output: 800-1,500 words. Tables are the core; narrative is supporting.

Red Flags & Failure Modes

  1. Asking vs. effective rent confusion: Never compare asking rents across comps without adjusting for concessions. A 2-month-free concession on a 12-month lease is a 17% effective rent discount.
  2. Irrelevant comps: A comp in a different submarket, different class, or different size band is not a comp -- it's noise. Apply the confidence scoring rubric and weight accordingly.
  3. Hidden assumptions: Every comp adjustment must have a stated rationale. "Location adjustment: +5%" with no explanation is not defensible.
  4. Single number without range: The pricing range banner exists because value is a range, not a point. Present the range first, then the central estimate.
  5. Total adjustment exceeding 25%: If the comp requires >25% net adjustment to be comparable, it is not a good comp. Flag and reduce weight.
  6. Comp relevance hierarchy: Proximity > recency > size similarity > class similarity > vintage similarity. A comp 0.5 miles away from 18 months ago beats a comp 5 miles away from last month.

Refusal Behavior

A comp snapshot can feed a decision-grade output (an underwriting model, an IC memo, or an appraisal review). It fails closed (refuses to emit a final-marked pricing conclusion) when:

  • Any unresolved $X / placeholder / TBD token remains in a load-bearing cell. An unresolved $X or placeholder token must not appear in a final-marked output: every comp rent/price, adjustment, and the concluded range must resolve to a production/overlay/decision-grade value (per docs/DATA_GRADES.md §3) or the conclusion refuses. A draft may carry [placeholder] tags to flag what still needs real comps; a final-marked pricing opinion may not.
  • The comp set is sample/illustrative only (no operator-supplied or licensed comps). Illustrative comps are labeled and must NOT be represented as "market evidence" in a final memo; mark the run illustrative and withhold a defensible conclusion. Comps sourced from a licensed provider (e.g. CoStar) are the operator's licensed overlay — never represented as a live plugin feed (see docs/connectors/CAPABILITY-MATRIX.md).
  • Required inputs are missing (subject property, submarket, comp data). With fewer than the required fields present, produce a labeled illustrative framework, not a pricing range.
  • A comp requires >25% net adjustment to be comparable on a load-bearing cell — drop it or flag and reduce weight; do not anchor a final conclusion on it.

See the data-grade ladder in docs/DATA_GRADES.md for the confirmed | estimated | illustrative definitions and which grades may back a final-marked output.

Confidence and Provenance

  • Default output fidelity is estimated: the concluded rent and pricing range are derived from the supplied comp set and the adjustment grid, not an operator-confirmed transaction.
  • Label every output cell with a confidence grade -- confirmed (operator/licensed-comp-sourced), estimated (derived/adjusted here), or illustrative (sample/demo) -- and a source-class tag per comp: [operator] operator-supplied, [derived] adjusted here, [benchmark] reference comp, [overlay] operator's licensed comp overlay, [placeholder] sample.
  • Estimate, not an appraisal (required on every output): This comp snapshot is a screening ESTIMATE of market rent and value for deal/diligence support — NOT an appraisal and not an opinion of value by a licensed appraiser, and not a USPAP-compliant deliverable. A qualified appraiser's report is required before the conclusion is relied upon for a transaction, financing, or financial reporting.

Known Limitations

  • Screening estimate, not an appraisal. The concluded rent and pricing range support deal/diligence decisions; a USPAP appraisal is required before reliance (see the stamp above).
  • Only as good as the comp set. With no operator- or user-supplied transactions, comps fall back to training-data benchmarks that are labeled illustrative and never presented as verified — they are a starting point, not an anchor. on_unresolvable: cite_best_effort means an unresolved comp is surfaced and cited as weak, not silently dropped.
  • Adjustment grid is judgment, not a model of record. Amenity, location, and condition adjustments are transparent rules-of-thumb; a thin or stale comp set widens the range, which the confidence score reflects rather than hides.

Chain Notes

  • Upstream: deal-quick-screen (detailed comp work after screening), om-reverse-pricing (comp validation), submarket-truth-serum (competitive set feeds in)
  • Downstream: deal-underwriting-assistant (validated rent and cap rate feed underwriting), loi-offer-builder (pricing supports LOI), ic-memo-generator (comp table is IC-appendix-ready)
  • Parallel: submarket-truth-serum (can run simultaneously for market context)

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 Comp Snapshot AI skill do?

Produces a fast, credible comparable analysis (rent comps and sales comps) for active deals, appraisal reviews, or pricing validation. Includes adjustment grids, confidence scoring, effective rent calculations, replacement cost anchor, and assumption validation.

Why use Comp Snapshot on TypingMind?

Because you install it once and use it with any model. Comp Snapshot 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 Comp Snapshot in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/mariourquia/cre-skills-plugin/tree/main/src/skills/comp-snapshot. 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 Comp Snapshot?

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 Comp Snapshot?

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

Is the Comp Snapshot 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 👇