real-estate-readiness
This skill should be used when the user asks to "check real estate readiness", "assess property purchase", "can I afford to buy", "Eigenkapital check", "mortgage readiness", "buy apartment Berlin", "Kaufnebenkosten calculation", "rent or buy", "rent vs buy", "buy a house", "Haus kaufen", "Einfamilienhaus", "Neubau vs Bestand", "house vs apartment", "Doppelhaushälfte", or "Reihenhaus". Assesses financial readiness to purchase property in Berlin/Brandenburg — apartments and houses — with German-specific buying costs.
What this skill does
# Real Estate Readiness Assessment
Assess financial readiness to purchase property in Berlin/Brandenburg, model purchase scenarios, and highlight German-specific buying costs. Produce a comprehensive report grounded in the user's actual financial data and current market conditions.
Load `${CLAUDE_PLUGIN_ROOT}/skills/financial-analysis/references/german-financial-system.md` for detailed German tax parameters, real estate purchase process, and regulatory context.
## Step 1: Gather Financial Data
Read the following input files from the Obsidian vault. If any file is missing or empty, warn about the gap and proceed with available data. Never fabricate financial figures.
- `finance/data/bank-accounts.md` — savings balances, account types, interest rates, and any notes about earmarked funds (e.g., "saving for down payment" vs. "emergency fund")
- `finance/data/employment.md` — gross and net income, Steuerklasse, employer benefits, bonus structure
- `finance/data/monthly-budget.md` — current income vs. expenses breakdown, discretionary spending, existing debt obligations
- `finance/data/property-goals.md` — target neighborhoods or cities, budget range, size preferences, buy-to-live vs. buy-to-let intent, timeline
Parse all monetary values into EUR. Note the "as of" date on each balance to flag stale data (older than 3 months).
## Step 2: Calculate Available Equity (Eigenkapital)
Determine total available Eigenkapital from bank account data. Classify each account into one of three categories:
1. **Available for down payment** — accounts explicitly earmarked for property purchase, plus any unallocated Tagesgeld or Festgeld with no lock-in or an upcoming maturity date
2. **Emergency reserve** — maintain a minimum of 3-6 months of net expenses as an untouchable buffer; identify which accounts serve this purpose
3. **Locked or restricted** — Festgeld with remaining lock-in periods, employer pension contributions, or other illiquid holdings
Calculate the net Eigenkapital figure: total liquid savings minus emergency reserve minus any locked funds. Present this as the "deployable equity" for a property purchase.
If the user provided a specific property price as an argument, use that as the reference price. Otherwise, derive a reference price from `property-goals.md` or, if no target is stated, use the Berlin median price per m² multiplied by a typical 60-70 m² apartment.
## Step 3: Research Current Market Data
Perform web searches to gather up-to-date figures. Execute the following searches (combine or split as needed for best results):
1. **Berlin and Brandenburg property prices** — current average price per m² for apartments (Eigentumswohnungen), broken down by district if available. Search for terms like "Berlin Immobilienpreise pro Quadratmeter aktuell" and "Brandenburg Wohnungspreise aktuell".
2. **Current mortgage rates (Bauzins)** — rates for 10-year, 15-year, and 20-year Zinsbindung periods. Search for "Bauzins aktuell" or "Hypothekenzinsen Deutschland". Note the effective rate (effektiver Jahreszins), not just the nominal rate (Sollzins).
3. **Grunderwerbsteuer rates** — verify the current land transfer tax rates for Berlin (expected: 6.0%) and Brandenburg (expected: 6.5%). Search for "Grunderwerbsteuer Berlin Brandenburg aktuell" to confirm, as these rates can change with state legislation.
Record the source and date for each data point. If a web search fails or returns outdated results, fall back to the expected values noted above and flag them as unverified.
## Step 3.5: Research House-Specific Cost Factors
If the user's `property-goals.md` mentions a house (Einfamilienhaus, Doppelhaushälfte, Reihenhaus) or the command argument specifies a house type, perform additional research. Skip this step for apartment (Eigentumswohnung) purchases.
For the full cost structure comparison, Sanierung categories, Neubau vs. Bestand framework, and Speckgürtel market context, load `references/house-vs-apartment.md`.
1. **House prices**: Search for current house prices in Berlin/Brandenburg separately from apartment Quadratmeterpreise. Search for "Einfamilienhaus Preise Berlin Brandenburg aktuell" and "Haus kaufen Speckgürtel Preise". House prices follow different dynamics than apartment prices, especially in Brandenburg commuter areas.
2. **Land value (Grundstückswert)**: For houses, land typically represents 40–60% of total value (vs. 20–40% for apartments). This matters for AfA calculations in buy-to-let scenarios, since only the building portion is depreciable. Estimate the land-to-building ratio for the target area.
3. **Neubau vs. Bestand**:
- **Neubau**: No Makler commission (developer sells directly), but higher base price. May qualify for KfW energy-efficiency subsidies. Include Erschließungskosten (utility connection costs) if the plot is previously undeveloped — typically EUR 10,000–30,000.
- **Bestand**: Potentially lower base price but may require Sanierung (renovation). Estimate renovation costs based on condition: cosmetic (EUR 200–500/m²), moderate (EUR 500–1,000/m²), structural (EUR 1,000–1,500/m²). Search for "Sanierungskosten Haus pro Quadratmeter" for current benchmarks.
4. **No Hausgeld**: Detached and semi-detached houses do not have Hausgeld (that applies to Wohnungseigentümergemeinschaften). Instead, the owner bears all costs directly: Wohngebäudeversicherung, Grundsteuer, maintenance, and repairs. Estimate a self-managed maintenance reserve of 1–2% of property value per year.
## Step 4: Model Total Purchase Costs (Kaufnebenkosten)
Calculate the full Kaufnebenkosten for the reference property price. Break down each component:
| Cost Component | Berlin Rate | Brandenburg Rate | Notes |
|---|---|---|---|
| Grunderwerbsteuer (land transfer tax) | 6.0% | 6.5% | Verify via Step 3 search results |
| Notar + Grundbuch (notary and land registry) | ~1.5-2.0% | ~1.5-2.0% | Legally required, non-negotiable |
| Makler (broker commission) | ~3.57% | ~3.57% | Including VAT; sometimes split buyer/seller or avoidable for direct purchases |
| Sanierungskosten (renovation reserve) | Variable | Variable | For Bestand properties only; EUR 200–1,500/m² depending on condition. Estimate from property inspection or listing details. |
Calculate the total Kaufnebenkosten as both a percentage and an absolute EUR amount. Emphasize that these costs are non-recoverable sunk costs — they do not contribute to equity in the property. Present both a "with Makler" and "without Makler" scenario, since the user may find direct-sale listings.
Compute the total capital required at closing: Eigenkapital for down payment (ideally 20-30% of purchase price) plus 100% of Kaufnebenkosten from savings. Banks generally do not finance Kaufnebenkosten.
## Step 5: Calculate Maximum Affordable Property Price
Determine affordability from two directions and take the more conservative result:
### Direction A: Equity-Based Maximum
Work backward from available Eigenkapital. Apply the formula:
```
Max price = (Eigenkapital - Kaufnebenkosten) / target_equity_ratio
```
Model three equity ratios: 10% (aggressive, higher rates), 20% (standard), and 30% (conservative, best rates). For each, calculate the implied loan amount and flag whether the Eigenkapital covers the full Kaufnebenkosten plus the down payment.
### Direction B: Income-Based Maximum
Apply the 35% rule: maximum monthly mortgage payment must not exceed 35% of net monthly income. From `monthly-budget.md`, also check the actual disposable income after fixed expenses — the real capacity may be lower than the 35% rule suggests.
Using the current Bauzins rates from Step 3, calculate the maximum loan amount for each Zinsbindung period (10, 15, 20 years). Assume an initial Tilgung (repayment) rate of 2-3% per year. Apply the annuity formula:
```
Monthly payment = Loan * (Zinssatz + Tilgung) / 12
```
Derive the maximum property price by adding the down payment to the maximum loan.
### Combined Result
PreRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.