Teilverkauf (Sonstiges Vermoegen) + Sonderamortisation (Immobilie)
Deploy App / deploy (push) Successful in 1m1s
Deploy App / deploy (push) Successful in 1m1s
Roadmap Nr. 42: OTHER_ASSET am Uebergang neu mit Teilverkauf. Neben Halten und
Vollverkauf kann ein Betrag ins Cash fliessen, der Rest bleibt investiert und
waechst weiter. Der Teilverkauf erscheint als "Kapitalzufluss" im Phasenkopf
("zu investierendes Kapital"). Abgegrenzt zur laufenden Bezugsrate: der Teilverkauf
ist die einmalige Entnahme AM Uebergang, die Bezugsrate der laufende Verzehr IN der
Phase -- beide koexistieren.
Roadmap Nr. 15: REAL_ESTATE im Halten-Fall neu mit Sonderamortisation -- Einmaltilgung
der Hypothek aus dem Cash, am Restsaldo gekappt, bringt die Immobilie auf Augenhoehe
mit OTHER_DEBT (immediateRepayment). Erscheint als "Kapitalinvestition" im Phasenkopf.
Damit laesst sich die indirekte Amortisation via 3a MECHANISCH nachbilden (3a wachsen
lassen -> bei Pensionierung ins Cash -> Sonderamortisation).
Die Steuerwirkung der indirekten Amortisation (3a-Abzug, Zinsabzug) bleibt bewusst
zurueckgestellt mit dem Steuer-Buendel 13/14/23 (SPEZ 9.14).
Fuenf Regressionstests (36 -> 41). Spezifikation auf v0.6. Keine Verhaltensaenderung
fuer bestehende Plaene.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+8
-2
@@ -88,7 +88,7 @@ export interface PhaseData {
|
||||
annualRepayment?: number;
|
||||
}
|
||||
|
||||
export type TransitionDecision = "HOLD" | "SELL";
|
||||
export type TransitionDecision = "HOLD" | "SELL" | "PARTIAL";
|
||||
export type PkPayoutMode = "CAPITAL" | "PENSION" | "COMBI";
|
||||
|
||||
export interface TransitionData {
|
||||
@@ -111,6 +111,10 @@ export interface TransitionData {
|
||||
// REAL_ESTATE / OTHER_ASSET
|
||||
decision?: TransitionDecision;
|
||||
salePrice?: number;
|
||||
// OTHER_ASSET (Teilverkauf): Betrag, der am Uebergang ins Cash fliesst; der Rest bleibt aktiv.
|
||||
partialSaleAmount?: number;
|
||||
// REAL_ESTATE (Sonderamortisation): Einmaltilgung der Hypothek am Uebergang, aus dem Cash.
|
||||
extraAmortization?: number;
|
||||
// OTHER_DEBT
|
||||
immediateRepayment?: number;
|
||||
}
|
||||
@@ -183,8 +187,10 @@ export const transitionDataSchema = z
|
||||
conversionRate: z.number().min(0).max(20).optional(),
|
||||
capitalTaxRate: z.number().min(0).max(100).optional(),
|
||||
saleTaxRate: z.number().min(0).max(100).optional(),
|
||||
decision: z.enum(["HOLD", "SELL"]).optional(),
|
||||
decision: z.enum(["HOLD", "SELL", "PARTIAL"]).optional(),
|
||||
salePrice: nonNeg.optional(),
|
||||
partialSaleAmount: nonNeg.optional(),
|
||||
extraAmortization: nonNeg.optional(),
|
||||
immediateRepayment: nonNeg.optional(),
|
||||
})
|
||||
.strip();
|
||||
|
||||
Reference in New Issue
Block a user