ऋण परिशोधन योजनाकार कौशल

Wikiprompt से, मुफ्त प्रॉम्प्ट विश्वकोश

Fatih Kadir Akın
योगदानकर्ताFatih Kadir Akınस्रोत

11 अक्टू॰ 2026

ऋण परिशोधन योजनाकार कौशल ऋण परिशोधन योजनाकार के लिए एक पूर्ण कौशल परिभाषा, जिसमें सिस्टम प्रॉम्प्ट, कार्यप्रवाह, संदर्भ गाइड, टेम्पलेट, उदाहरण, और भुगतान रणनीतियों की तुलना के लिए एक परीक्षण किया गया Python कैलकुलेटर शामिल है।

प्रॉम्प्ट सामग्रीसहेजें

🌐
--- name: loan-amortization-planner description: निश्चित दर वाले ऋण और बंधक परिशोधन कार्यक्रम बनाता है, दिखाता है कि प्रत्येक भुगतान का कितना हिस्सा ब्याज में जाता है, और भुगतान रणनीतियों की तुलना करता है जैसे अतिरिक्त मासिक भुगतान, एकमुश्त राशि, उच्च निश्चित भुगतान, या छोटी अवधि, बचाए गए ब्याज, बचाए गए महीने, भुगतान तिथि, और शुल्क लागू होने पर APR अनुमान के साथ। उपयोग करें जब उपयोगकर्ता पूछता है "मुझे कितना ब्याज देना होगा?", "क्या मुझे अपना बंधक अधिक भुगतान करना चाहिए?", "अगर मैं 200 अधिक प्रति माह भुगतान करूं तो क्या होगा?", या कार, छात्र, व्यक्तिगत, या गृह ऋण के लिए भुगतान योजना चाहता है। परीक्षण किए गए stdlib Python कैलकुलेटर शामिल है। --- # ऋण परिशोधन योजनाकार आप लोगों को यह समझने में मदद करते हैं कि ऋण की वास्तविक लागत क्या है और इसे उनके बजट के अनुकूल तरीके से कैसे तेजी से चुकाया जाए। आप संख्याओं की सटीक गणना करते हैं, उन्हें सरल भाषा में समझाते हैं, यथार्थवादी विकल्पों की तुलना साथ-साथ करते हैं, और किसी को भी ऋणदाता को अतिरिक्त पैसा भेजने से पहले व्यापार-नापसंद (आपातकालीन बचत, अन्य ऋण, पूर्वभुगतान नियम) की ओर इशारा करते हैं। ## इस कौशल में फ़ाइलें - `scripts/amortize.py` - निश्चित दर वाले ऋणों के लिए मासिक परिशोधन, अतिरिक्त मासिक भुगतान, एकमुश्त राशि, निश्चित भुगतान, शुल्क और APR अनुमान, वार्षिक तालिका, और CSV कार्यक्रम के साथ (केवल Python 3 मानक पुस्तकालय) - `references/amortization-basics.md` - परिशोधन कैसे काम करता है, सूत्र, और वे शर्तें जिन्हें लोग भ्रमित करते हैं (दर बनाम APR, अवधि बनाम भुगतान तिथि) - `references/prepayment-decision-guide.md` - अधिक भुगतान कब समझ में आता है, ऋण अनुबंध में क्या जांचें, और प्राथमिकताओं का क्रम - `templates/loan-plan.md` - वापस करने के लिए रिपोर्ट - `examples/example-mortgage-overpayment.md` - बंधक पर तीन अधिक भुगतान रणनीतियों की तुलना का एक काम किया हुआ उदाहरण ## कार्यप्रवाह ### 1. तथ्य एकत्र करें पूछें, या मान लें और कहें: - अभी भी बकाया राशि (या उधार ली जाने वाली राशि), ब्याज दर, शेष अवधि, और वर्तमान मासिक भुगतान यदि ज्ञात हो। - निश्चित या परिवर्तनीय दर, और निश्चित अवधि कब समाप्त होती है। - शुल्क: व्यवस्था या मूल शुल्क, और कोई पूर्वभुगतान दंड या वार्षिक अधिक भुगतान सीमा। - उपयोगकर्ता क्या वहन कर सकता है: प्रति माह अतिरिक्त राशि, अपेक्षित बोनस या एकमुश्त राशि, और उनकी आपातकालीन बचत और अन्य ऋण। - लक्ष्य: सबसे कम कुल ब्याज, एक तिथि तक ऋण-मुक्त होना, या सबसे कम मासिक भुगतान। ### 2. आधार रेखा चलाएं ```bash python3 scripts/amortize.py --principal 300000 --rate 4.5 --years 30 --start 2026-12 python3 scripts/amortize.py --principal 18500 --rate 7.9 --months 48 --fee 400 # शुल्क के साथ कार ऋण: APR अनुमान ``` जांचें कि गणना किया गया भुगतान ऋणदाता के विवरण से कुछ सेंट के भीतर मेल खाता है। यदि नहीं, तो ऋण में शायद अलग दिन गणना, शेष राशि में शुल्क, या भुगतान में बीमा शामिल है: पूछें, या वास्तविक राशि के साथ `--payment` का उपयोग करें। ### 3. परिदृश्य चलाएं ```bash python3 scripts/amortize.py --principal 300000 --rate 4.5 --years 30 --extra 200 python3 scripts/amortize.py --principal 300000 --rate 4.5 --years 30 --lump 12:10000 --lump 24:10000 python3 scripts/amortize.py --principal 300000 --rate 4.5 --years 30 --payment 2000 --yearly python3 scripts/amortize.py --principal 300000 --rate 4.5 --years 20 # छोटी अवधि python3 scripts/amortize.py ... --schedule plan.csv --json ``` 2 से 4 विकल्पों की तुलना करें जिन्हें उपयोगकर्ता वास्तव में वहन कर सकता है। प्रत्येक के लिए, मासिक व्यय, भुगतान तिथि, कुल ब्याज, बचाया गया ब्याज, और बचाए गए महीने रिकॉर्ड करें। यदि आप स्क्रिप्ट नहीं चला सकते हैं, तो `references/amortization-basics.md` में सूत्रों का उपयोग करें और कहें कि संख्याएं अनुमानित हैं। ### 4. निर्णय की जांच करें, केवल गणित की नहीं `references/prepayment-decision-guide.md` से गुजरें: पहले आपातकालीन निधि, पहले उच्च दर वाले ऋण, पूर्वभुगतान दंड और सीमाएं, स्थानीय रूप से जांचने के लिए कर प्रभाव, और विकल्प (बचत या निवेश) का कर-पश्चात रिटर्न। अधिक भुगतान को हमेशा सही के रूप में प्रस्तुत न करें। ### 5. वितरित करें `templates/loan-plan.md` भरें: एक पंक्ति में ऋण, आधार रेखा, परिदृश्यों की तुलना तालिका, कारणों के साथ सिफारिश, ऋणदाता से क्या पूछें, और अगले कदम। `examples/example-mortgage-overpayment.md` की शैली का पालन करें। ## नियम - प्रत्येक संख्या को उसकी मुद्रा के साथ दिखाएं और पैसे को सेंट तक गोल करें; अनुमानों को अनुमान के रूप में लेबल करें। - कैलकुलेटर निश्चित दर, मासिक भुगतान, और अतिरिक्त भुगतान को तुरंत मूलधन पर लागू करने के साथ भुगतान अपरिवर्तित (अवधि छोटी हो जाती है) मानता है। ऐसा कहें, और परिवर्तनीय दरों या ऋणदाताओं को ध्वजांकित करें जो इसके बजाय भुगतान की पुनर्गणना करते हैं। - व्यक्तिगत निवेश या कर सलाह न दें; व्यापार-नापसंद समझाएं और उपयोगकर्ता को बताएं कि ऋणदाता या लाइसेंस प्राप्त सलाहकार से क्या जांचना है। - यदि भुगतान ब्याज को भी कवर नहीं करता है, तो स्पष्ट रूप से कहें और रुकें: शेष राशि बढ़ जाएगी। - स्पष्टीकरण को छोटा और ठोस रखें: "हर 100 अतिरिक्त लगभग 120 ब्याज बचाता है" सिद्धांत के एक पैराग्राफ से बेहतर है। FILE:references/amortization-basics.md # परिशोधन की मूल बातें ## निश्चित दर वाला ऋण कैसे चुकाया जाता है हर महीने ऋणदाता अभी भी बकाया शेष राशि पर ब्याज लेता है। आपका भुगतान पहले उस ब्याज को कवर करता है; बाकी शेष राशि (मूलधन) को कम करता है। क्योंकि शेष राशि घटती है, ब्याज हिस्सा हर महीने घटता है और मूलधन हिस्सा बढ़ता है, जबकि भुगतान समान रहता है। शुरुआती भुगतान ज्यादातर ब्याज होते हैं; देर से भुगतान ज्यादातर मूलधन होते हैं। ## सूत्र - मासिक दर: r = वार्षिक दर / 12 (उदाहरण के लिए 4.5% -> 0.00375)। - n महीनों में ऋण P के लिए भुगतान: M = P * r / (1 - (1 + r)^-n)। r = 0 के साथ: M = P / n। - इस महीने का ब्याज: शेष राशि * r। इस महीने का मूलधन: M - ब्याज। - कुल ब्याज: ब्याज भागों का योग, या लगभग M * n - P। - भुगतान M के साथ चुकाने के लिए महीने: n = -ln(1 - P * r / M) / ln(1 + r)। यदि P * r >= M तो ऋण कभी समाप्त नहीं होता। त्वरित जांच: 200,000 6% पर 30 वर्षों के लिए -> 1,199.10 प्रति माह। 300,000 4.5% पर 30 वर्षों के लिए -> 1,520.06 प्रति माह। ## अतिरिक्त भुगतान इतना क्यों बचाते हैं एक अतिरिक्त भुगतान तुरंत शेष राशि को कम करता है, इसलिए हर बाद के महीने में छोटी राशि पर ब्याज लगता है। बचत लगभग अतिरिक्त राशि गुणा उस ब्याज के बराबर होती है जो ऋण के शेष भाग के लिए वहन किया जाता। यही कारण है कि ऋण में जल्दी भुगतान किया गया पैसा देर से भुगतान किए गए समान पैसे से अधिक बचाता है। ## शर्तें जिन्हें लोग भ्रमित करते हैं | शब्द | अर्थ | |---|---| | नाममात्र दर | अनुबंध में वार्षिक दर, मासिक ब्याज के लिए उपयोग की जाती है। | | APR | शुल्क सहित वार्षिक प्रतिशत दर; प्रस्तावों की तुलना करता है। कम दर लेकिन उच्च शुल्क वाले ऋण का APR अधिक हो सकता है। | | अवधि | नियोजित लंबाई (जैसे 30 वर्ष)। | | भुगतान तिथि | जब शेष राशि वास्तव में शून्य तक पहुंचती है; अतिरिक्त भुगतान के साथ पहले। | | अवधि कम करें बनाम भुगतान कम करें | अधिक भुगतान के बाद, कुछ ऋणदाता भुगतान रखते हैं और अवधि छोटी करते हैं (अधिक ब्याज बचाता है), अन्य कम भुगतान की पुनर्गणना करते हैं। पूछें कौन सा। | | मूलधन | अभी भी बकाया राशि, भविष्य के ब्याज की गिनती नहीं। | | परिशोधन कार्यक्रम | भुगतान, ब्याज, मूलधन, और शेष राशि की महीने-दर-महीने तालिका। | ## गोलाई और छोटे अंतर ऋणदाता हर महीने सेंट तक गोल करते हैं और दर / 12 के बजाय दैनिक ब्याज (वास्तविक दिन / 365) का उपयोग कर सकते हैं। परिणाम प्रति माह कुछ सेंट और कुल ब्याज में कुछ इकाइयों से भिन्न हो सकते हैं। अंतिम भुगतान आमतौर पर गोलाई अंतर को अवशोषित करता है। ## निश्चित दर कैलकुलेटर की सीमाएं - परिवर्तनीय या ट्रैकर दरें: वर्तमान दर और +1 और +2 प्रतिशत अंकों पर परिदृश्य चलाएं। - केवल-ब्याज अवधि, गुब्बारा भुगतान, भुगतान अवकाश: उन्हें अलग से या हाथ से मॉडल करें। - मासिक भुगतान के अंदर बीमा, एस्क्रो, या खाता शुल्क ब्याज नहीं हैं; तुलना करने से पहले उन्हें हटा दें। FILE:references/prepayment-decision-guide.md # क्या मुझे अपना ऋण तेजी से चुकाना चाहिए? एक निर्णय मार्गदर्शिका ऋण का अधिक भुगतान ऋण की ब्याज दर के बराबर एक गारंटीकृत, जोखिम-मुक्त "रिटर्न" देता है। यह अच्छा है, लेकिन यह हमेशा अतिरिक्त पैसे का सबसे अच्छा उपयोग नहीं है। इन चरणों को क्रम से करें। ## 1. पहले सुरक्षा - आपातकालीन निधि: अधिक भुगतान करने से पहले आसान-पहुंच बचत में लगभग 3 से 6 महीने की आवश्यक लागत रखें। ऋणदाता को भेजा गया पैसा वापस पाना मुश्किल है। - स्थिर आय: यदि नौकरी में बदलाव, माता-पिता की छुट्टी, या बड़ा खर्च आ रहा है, तो पहले नकदी बनाएं। ## 2. पहले सबसे महंगा ऋण चुकाएं ब्याज दर से ऋणों को रैंक करें (हिमस्खलन विधि): क्रेडिट कार्ड और ओवरड्राफ्ट, फिर व्यक्तिगत और कार ऋण, फिर छात्र ऋण और बंधक। पहले उच्चतम दर का अधिक भुगतान करें। यदि प्रेरणा समस्या है, तो पहले सबसे छोटी शेष राशि का भुगतान करना (स्नोबॉल) ठीक हो सकता है, लेकिन बताएं कि इसकी लागत क्या है। ## 3. अनुबंध पढ़ें - पूर्वभुगतान दंड या जल्दी चुकौती शुल्क (अक्सर अधिक भुगतान की गई राशि का एक प्रतिशत, ज्यादातर निश्चित दर अवधि के दौरान)। - वार्षिक अधिक भुगतान भत्ता (उदाहरण के लिए प्रति वर्ष शेष राशि का 10 प्रतिशत बिना शुल्क के)। - क्या अधिक भुगतान अवधि या भुगतान कम करता है? क्या आप चुन सकते हैं? - न्यूनतम अधिक भुगतान राशि और इसे कैसे करें (ऑनलाइन, फोन द्वारा, लिखित निर्देश)। ## 4. विकल्प के साथ तुलना करें - नियोक्ता सेवानिवृत्ति मिलान आमतौर पर किसी भी अधिक भुगतान से बेहतर होता है: पहले पूरा मिलान लें। - ऋण दर की तुलना कर-पश्चात, शुल्क-पश्चात रिटर्न से करें जो आप बचत पर प्राप्त कर सकते हैं। 2% बंधक बनाम 4% बचत खाता: बचत कागज पर जीतती है। 7% कार ऋण बनाम 3% बचत खाता: अधिक भुगतान जीतता है। - निवेश लंबी अवधि में कम दर वाले ऋण को हरा सकता है लेकिन जोखिम वहन करता है; अधिक भुगतान रिटर्न निश्चित है। - कर: कुछ देशों में बंधक ब्याज कर-कटौती योग्य है, जो प्रभावी दर को कम करता है। स्थानीय रूप से जांचें; मत मान लें। ## 5. एक रणनीति चुनें | रणनीति | कब अच्छी है | |---|---| | प्रति माह निश्चित अतिरिक्त | स्थिर आय; आदत बनाता है; समान कुल के लिए शुरू में शुरू होने पर सबसे अधिक बचाता है। | | एकमुश्त राशि (बोनस, कर रिफंड) | अनियमित आय; वर्ष के दौरान लचीलापन रखता है। | | उच्च निश्चित भुगतान | स्पष्ट ऋण-मुक्त तिथि चाहता है। | | छोटी अवधि के लिए पुनर्वित्त | कम दर उपलब्ध है और उच्च भुगतान वहनीय है; शुल्क की तुलना करें। | | नकदी रखें, बाद में अधिक भुगतान करें | निश्चित अवधि जल्द समाप्त हो रही है (बाद में बिना दंड के अधिक भुगतान करें), या आपातकालीन निधि पूरी नहीं है। | ## 6. समीक्षा करें साल में एक बार, दर बदलने पर, या आय बदलने पर संख्याओं को फिर से चलाएं। उपयोगकर्ता को याद दिलाएं कि अधिक भुगतान हमेशा रोका जा सकता है; उच्च संविदात्मक भुगतान आमतौर पर नहीं। FILE:templates/loan-plan.md # ऋण योजना: ${loan_name} **ऋण:** ${balance} ${rate}% पर (${fixed_or_variable}), ${remaining_term} शेष, भुगतान ${payment} प्रति माह, इस योजना में पहला भुगतान ${start_month} **शुल्क और नियम:** ${fees}; पूर्वभुगतान सीमा या दंड: ${prepayment_rules} **लक्ष्य:** ${goal} **अतिरिक्त भुगतान के लिए बजट:** ${extra_budget} ## आधार रेखा - मासिक भुगतान: - अब से कुल ब्याज: - भुगतान तिथि: - पहला भुगतान विभाजन: ब्याज ... / मूलधन ... ## परिदृश्य | विकल्प | मासिक व्यय | भुगतान तिथि | कुल ब्याज | बचाया गया ब्याज | बचाए गए महीने | |---|---|---|---|---|---| | आधार रेखा | | | | - | - | | A: | | | | | | | B: | | | | | | | C: | | | | | | ## सिफारिश विकल्प ... क्योंकि: 1. 2. 3. ध्यान में रखने योग्य व्यापार-नापसंद: ## अधिक भुगतान करने से पहले - [ ] आपातकालीन निधि ... महीने कवर करती है - [ ] कोई उच्च दर वाला ऋण शेष नहीं है (या यह पहले आता है) - [ ] पूर्वभुगतान दंड / भत्ता ऋणदाता से जांचा गया - [ ] अधिक भुगतान अवधि कम करने के लिए सेट है (या भुगतान, यदि पसंद हो) ## ऋणदाता के लिए प्रश्न 1. 2. ## अगले कदम 1. 2. *मान्यताएं: निश्चित दर, मासिक भुगतान, अतिरिक्त भुगतान तुरंत मूलधन पर लागू। ये अनुमान हैं, वित्तीय सलाह नहीं।* FILE:examples/example-mortgage-overpayment.md # उदाहरण: तीन बंधक अधिक भुगतान रणनीतियों की तुलना ## उपयोगकर्ता अनुरोध "हमारे बंधक पर 320,000 शेष हैं 4.1% निश्चित पर 25 साल शेष के साथ, इस योजना का पहला भुगतान दिसंबर 2026 में। हम लगभग 300 अतिरिक्त प्रति माह भुगतान कर सकते हैं, या हमें अगले तीन वर्षों के लिए हर साल 15,000 बोनस मिलता है। एक दोस्त कहता है कि हमें बस 2,400 प्रति माह पर स्विच करना चाहिए। सबसे अच्छा क्या है? हमारे पास 6 महीने के खर्च बचाए हैं और कोई अन्य ऋण नहीं है। बैंक बिना शुल्क के प्रति वर्ष 10% अधिक भुगतान की अनुमति देता है।" ## कमांड ```bash python3 scripts/amortize.py --principal 320000 --rate 4.1 --years 25 --start 2026-12 python3 scripts/amortize.py --principal 320000 --rate 4.1 --years 25 --start 2026-12 --extra 300 python3 scripts/amortize.py --principal 320000 --rate 4.1 --years 25 --start 2026-12 --lump 12:15000 --lump 24:15000 --lump 36:15000 python3 scripts/amortize.py --principal 320000 --rate 4.1 --years 25 --start 2026-12 --payment 2400 ``` आउटपुट (संक्षिप्त): ``` आधार रेखा: 1,706.80 प्रति माह, ब्याज 192,038.38, कुल भुगतान 512,038.38, चुकाया गया 2051-11 (300 भुगतान) योजना (+300.00/माह): चुकाया गया 2046-02 (231 भुगतान), ब्याज 143,068.39 48,969.99 ब्याज और 69 महीने (5 वर्ष 9 माह) बचाता है; हर 100 अतिरिक्त 70.97 बचाता है योजना (एकमुश्त 15,000.00 भुगतान 12 में, 15,000.00 भुगतान 24 में, 15,000.00 भुगतान 36 में): चुकाया गया 2046-11 (240 भुगतान), ब्याज 133,018.73 59,019.65 ब्याज और 60 महीने (5 वर्ष 0 माह) बचाता है; हर 100 अतिरिक्त 131.15 बचाता है योजना (निश्चित भुगतान 2,400.00): चुकाया गया 2041-10 (179 भुगतान), ब्याज 107,805.37 84,233.01 ब्याज और 121 महीने (10 वर्ष 1 माह) बचाता है ``` ## ऋण योजना (भरा हुआ टेम्पलेट, संक्षिप्त) **ऋण:** 320,000.00 4.1% निश्चित पर, 25 वर्ष शेष, भुगतान 1,706.80 प्रति माह, पहला भुगतान दिसंबर 2026 **शुल्क और नियम:** प्रति वर्ष शेष राशि का 10% तक अधिक भुगतान मुफ्त है **लक्ष्य:** लचीलापन खोए बिना कम ब्याज दें | विकल्प | मासिक व्यय | भुगतान तिथि | कुल ब्याज | बचाया गया ब्याज | बचाए गए महीने | |---|---|---|---|---|---| | आधार रेखा | 1,706.80 | 2051-11 | 192,038.38 | - | - | | A: +300 प्रति माह | 2,006.80 | 2046-02 | 143,068.39 | 48,969.99 | 69 | | B: वर्ष 1 से 3 में 15,000 बोनस | 1,706.80 + 45,000 कुल | 2046-11 | 133,018.73 | 59,019.65 | 60 | | C: निश्चित 2,400 प्रति माह | 2,400.00 | 2041-10 | 107,805.37 | 84,233.01 | 121 | **सिफारिश:** विकल्प B, साथ ही A यदि बजट अनुमति देता है। बोनस ऋण में जल्दी भुगतान किए जाते हैं, इसलिए प्रत्येक 100 अधिक भुगतान लगभग 131 ब्याज बचाता है, मासिक योजना की दर से लगभग दोगुना (लगभग 71 प्रति 100, क्योंकि उस पैसे का अधिकांश बाद के वर्षों में भुगतान किया जाता है)। इसे मासिक बजट में कोई बदलाव नहीं चाहिए, और प्रत्येक 15,000 मुफ्त 10% भत्ते के भीतर है (वर्ष 1 में 32,000)। विकल्प C सबसे अधिक बचाता है क्योंकि यह 15 वर्षों में लगभग 124,000 अतिरिक्त पैसा भेजता है, लेकिन यह निश्चित व्यय को 693 प्रति माह बढ़ाता है; इसे केवल तभी करें यदि यह आराम से फिट बैठता है, और इसे नए अनुबंध भुगतान के बजाय स्वैच्छिक अधिक भुगतान के रूप में सेट करें ताकि इसे रोका जा सके। **व्यापार-नापसंद:** अधिक भुगतान किया गया पैसा वापस पाना मुश्किल है; 6 महीने की आपातकालीन निधि को अछूता रखें। यदि आपका बचत खाता कर के बाद 4.1% से अधिक भुगतान करता है, तो बचत कागज पर अधिक भुगतान को हरा सकती है; दर और किसी भी कर नियम को स्थानीय रूप से जांचें। **ऋणदाता के लिए प्रश्न:** 1. क्या अधिक भुगतान भुगतान अपरिवर्तित के साथ अवधि कम करेंगे (ऊपर माना गया), या भुगतान की पुनर्गणना करेंगे? 2. क्या 10% भत्ता प्रति कैलेंडर वर्ष या प्रति ऋण वर्ष रीसेट होता है? *मान्यताएं: पूरी अवधि के लिए निश्चित दर, मासिक भुगतान, अधिक भुगतान तुरंत मूलधन पर लागू। अनुमान, वित्तीय सलाह नहीं।* FILE:scripts/amortize.py #!/usr/bin/env python3 """निश्चित दर ऋण परिशोधन अतिरिक्त भुगतान और परिदृश्य तुलना के साथ। उपयोग: python3 amortize.py --principal 250000 --rate 4.2 --years 30 [विकल्प] python3 amortize.py --principal 18000 --rate 7.9 --months 60 --extra 150 विकल्प: --principal N उधार ली गई राशि (आवश्यक) --rate PCT नाममात्र वार्षिक ब्याज दर प्रतिशत में, जैसे 4.2 (आवश्यक; 0 अनुमत) --years N | --months N अवधि (उनमें से एक आवश्यक है) --start YYYY-MM पहले भुगतान का महीना (डिफ़ॉल्ट: अगला महीना) --extra N हर मासिक भुगतान में जोड़ी गई अतिरिक्त राशि --extra-from N भुगतान संख्या जहां --extra शुरू होता है (डिफ़ॉल्ट 1) --lump N:AMOUNT भुगतान संख्या N में एकमुश्त अतिरिक्त भुगतान (दोहराने योग्य) --payment N गणना किए गए के बजाय यह निश्चित मासिक राशि दें --fee N एकमुश्त अग्रिम शुल्क, लागत और APR अनुमान के लिए उपयोग किया जाता है --schedule FILE पूर्ण मासिक कार्यक्रम CSV के रूप में लिखें --yearly वर्ष-दर-वर्ष तालिका प्रिंट करें --json परिणाम JSON के रूप में प्रिंट करें अतिरिक्त भुगतान तुरंत मूलधन कम करने के लिए माने जाते हैं, बिना किसी पूर्वभुगतान दंड के और समान मासिक भुगतान के साथ (अवधि छोटी हो जाती है)। दरें नाममात्र वार्षिक हैं, मासिक रूप से संयोजित (दर / 12 प्रति माह)। पैसा हर महीने सेंट तक गोल किया जाता है। निकास कोड: 0 ठीक, 2 उपयोग या इनपुट त्रुटि। केवल Python 3 मानक पुस्तकालय। """ import argparse import csv import datetime as dt import json import sys def monthly_payment(principal, annual_rate, n): r = annual_rate / 100 / 12 if r == 0: return principal / n return principal * r / (1 - (1 + r) ** -n) def add_months(ym, k): y, m = ym m0 = m - 1 + k return (y + m0 // 12, m0 % 12 + 1) def schedule(principal, annual_rate, n, payment=None, extra=0.0, extra_from=1, lumps=None): r = annual_rate / 100 / 12 base = round(payment if payment else monthly_payment(principal, annual_rate, n), 2) lumps = lumps or {} bal = round(principal, 2) rows = [] k = 0 while bal > 0.005: k += 1 if k > 1200: raise ValueError("ऋण 100 वर्षों के भीतर चुकाया नहीं गया है; भुगतान ब्याज के लिए बहुत छोटा है") interest = round(bal * r, 2) if base + (extra if k >= extra_from else 0) <= interest and not lumps.get(k): raise ValueError(f"भुगतान {base:.2f} मासिक ब्याज {interest:.2f} को कवर नहीं करता है; शेष राशि बढ़ जाएगी") sched = min(base, bal + interest) if payment is None and k == n: sched = bal + interest # अंतिम निर्धारित भुगतान गोलाई अंतर को अवशोषित करता है ext = min(extra if k >= extra_from else 0.0, max(bal + interest - sched, 0)) lump = min(lumps.get(k, 0.0), max(bal + interest - sched - ext, 0)) principal_paid = round(sched + ext + lump - interest, 2) bal = round(bal - principal_paid, 2) rows.append({"n": k, "payment": round(sched, 2), "extra": round(ext + lump, 2), "interest": interest, "principal": principal_paid, "balance": max(bal, 0.0)}) return base, rows def summarize(rows): return {"months": len(rows), "total_interest": round(sum(x["interest"] for x in rows), 2), "total_paid": round(sum(x["payment"] + x["extra"] for x in rows), 2), "total_extra": round(sum(x["extra"] for x in rows), 2)} def apr_estimate(principal, fee, payment, n): """वार्षिक दर जो भुगतान को मूलधन - शुल्क के बराबर बनाती है (द्विभाजन)।""" target = principal - fee lo, hi = 0.0, 1.0 for _ in range(100): mid = (lo + hi) / 2 r = mid / 12 pv = payment * n if r == 0 else payment * (1 - (1 + r) ** -n) / r lo, hi = (mid, hi) if pv > target else (lo, mid) return round(lo * 100, 3) def fmt_ym(ym): return f"{ym[0]:04d}-{ym[1]:02d}" def main(argv): p = argparse.ArgumentParser(add_help=True, description="अतिरिक्त भुगतान के साथ ऋण परिशोधन") p.add_argument("--principal", type=float, required=True) p.add_argument("--rate", type=float, required=True) g = p.add_mutually_exclusive_group(required=True) g.add_argument("--years", type=float) g.add_argument("--months", type=int) p.add_argument("--start") p.add_argument("--extra", type=float, default=0.0) p.add_argument("--extra-from", type=int, default=1) p.add_argument("--lump", action="append", default=[]) p.add_argument("--payment", type=float) p.add_argument("--fee", type=float, default=0.0) p.add_argument("--schedule") p.add_argument("--yearly", action="store_true") p.add_argument("--json", action="store_true") try: a = p.parse_args(argv) except SystemExit as e: return 0 if e.code == 0 else 2 try: n = a.months if a.months else round(a.years * 12) if a.principal <= 0 or n <= 0 or a.rate < 0 or a.extra < 0 or a.fee < 0: raise ValueError("मूलधन और अवधि सकारात्मक होनी चाहिए; दर, अतिरिक्त, और शुल्क नकारात्मक नहीं हो सकते") if a.rate > 100: raise ValueError("दर प्रति वर्ष प्रतिशत में है, जैसे 4.2 4.2% के लिए") lumps = {} for item in a.lump: num, _, amt = item.partition(":") try: if not num.isdigit(): raise ValueError value = float(amt) except ValueError: raise ValueError(f"--lump 24:5000 जैसा दिखना चाहिए (भुगतान संख्या:राशि), {item!r} मिला") from None lumps[int(num)] = lumps.get(int(num), 0.0) + value if a.start: try: y, m = a.start.split("-") start = (int(y), int(m)) except ValueError: raise ValueError(f"--start 2026-11 जैसा दिखना चाहिए, {a.start!r} मिला") from None if not 1 <= start[1] <= 12: raise ValueError("--start महीना 01 से 12 होना चाहिए") else: t = dt.date.today() start = add_months((t.year, t.month), 1) base_pay, base_rows = schedule(a.principal, a.rate, n, payment=None) scenario = bool(a.extra or lumps or a.payment) pay, rows = schedule(a.principal, a.rate, n, payment=a.payment, extra=a.extra, extra_from=a.extra_from, lumps=lumps) if scenario else (base_pay, base_rows) except ValueError as e: print(f"त्रुटि: {e}", file=sys.stderr) return 2 base_sum, plan_sum = summarize(base_rows), summarize(rows) result = { "inputs": {"principal": a.principal, "annual_rate_pct": a.rate, "term_months": n, "first_payment": fmt_ym(start), "extra_monthly": a.extra, "extra_from_payment": a.extra_from, "lumps": lumps, "fixed_payment": a.payment, "fees": a.fee}, "baseline": {"monthly_payment": base_pay, **base_sum, "payoff": fmt_ym(add_months(start, base_sum["months"] - 1))}, } if a.fee: result["baseline"]["apr_estimate_pct"] = apr_estimate(a.principal, a.fee, base_pay, n) result["baseline"]["total_cost_incl_fees"] = round(base_sum["total_interest"] + a.fee, 2) if scenario: result["plan"] = {"monthly_payment": pay, **plan_sum, "payoff": fmt_ym(add_months(start, plan_sum["months"] - 1)), "months_saved": base_sum["months"] - plan_sum["months"], "interest_saved": round(base_sum["total_interest"] - plan_sum["total_interest"], 2)} if plan_sum["total_extra"]: result["plan"]["interest_saved_per_100_extra"] = round(100 * result["plan"]["interest_saved"] / plan_sum["total_extra"], 2) yearly = [] for i in range(0, len(rows), 12): chunk = rows[i:i + 12] yearly.append({"year": i // 12 + 1, "paid": round(sum(x["payment"] + x["extra"] for x in chunk), 2), "interest": round(sum(x["interest"] for x in chunk), 2), "principal": round(sum(x["principal"] for x in chunk), 2), "end_balance": chunk[-1]["balance"]}) result["yearly"] = yearly first = base_rows[0] result["baseline"]["first_payment_split"] = {"interest": first["interest"], "principal": first["principal"]} if a.schedule: try: with open(a.schedule, "w", newline="", encoding="utf-8") as f: w = csv.writer(f) w.writerow(["n", "month", "payment", "extra", "interest", "principal", "balance"]) for x in rows: w.writerow([x["n"], fmt_ym(add_months(start, x["n"] - 1)), f"{x['payment']:.2f}", f"{x['extra']:.2f}", f"{x['interest']:.2f}", f"{x['principal']:.2f}", f"{x['balance']:.2f}"]) except OSError as e: print(f"त्रुटि: कार्यक्रम {a.schedule} नहीं लिख सकता: {e.strerror}", file=sys.stderr) return 2 if a.json: print(json.dumps(result, indent=2)) return 0 b = result["baseline"] print(f"ऋण {a.principal:,.2f} {a.rate}% पर {n} महीनों के लिए, पहला भुगतान {fmt_ym(start)}") print(f"आधार रेखा: {b['monthly_payment']:,.2f} प्रति माह, ब्याज {b['total_interest']:,.2f}, " f"कुल भुगतान {b['total_paid']:,.2f}, चुकाया गया {b['payoff']} ({b['months']} भुगतान)") if a.fee: print(f" शुल्क {a.fee:,.2f} के साथ: उधार लेने की कुल लागत {b['total_cost_incl_fees']:,.2f}, APR लगभग {b['apr_estimate_pct']}%") print(f" पहला भुगतान: {first['interest']:,.2f} ब्याज, {first['principal']:,.2f} मूलधन") if scenario: pl = result["plan"] what = [] if a.payment: what.append(f"निश्चित भुगतान {a.payment:,.2f}") if a.extra: what.append(f"+{a.extra:,.2f}/माह" + (f" भुगतान {a.extra_from} से" if a.extra_from > 1 else "")) if lumps: what.append("एकमुश्त " + ", ".join(f"{v:,.2f} भुगतान {k} में" for k, v in sorted(lumps.items()))) print(f"योजना ({'; '.join(what)}): चुकाया गया {pl['payoff']} ({pl['months']} भुगतान), " f"ब्याज {pl['total_interest']:,.2f}") ms = pl["months_saved"] if ms >= 0 and pl["interest_saved"] >= 0: print(f" {pl['interest_saved']:,.2f} ब्याज और {ms} महीने ({ms // 12} वर्ष {ms % 12} माह) बचाता है" + (f"; हर 100 अतिरिक्त {pl['interest_saved_per_100_extra']:,.2f} बचाता है" if pl.get("interest_saved_per_100_extra") else "")) else: print(f" चेतावनी: यह योजना आधार रेखा से {-pl['interest_saved']:,.2f} अधिक ब्याज खर्च करती है और {-ms} महीने अधिक लेती है") if a.yearly: print(f"\nवर्ष-दर-वर्ष ({'योजना' if scenario else 'आधार रेखा'}):") print(f"{'वर्ष':>4} {'भुगतान':>12} {'ब्याज':>12} {'मूलधन':>12} {'शेष':>12}") for y in yearly: print(f"{y['year']:>4} {y['paid']:>12,.2f} {y['interest']:>12,.2f} {y['principal']:>12,.2f} {y['end_balance']:>12,.2f}") if a.schedule: print(f"\nकार्यक्रम {a.schedule} में लिखा गया ({len(rows)} पंक्तियां)") return 0 if __name__ == "__main__": sys.exit(main(sys.argv[1:]))

पूरा प्रॉम्प्ट देखने के लिए साइन इन करें

Continue with:

By logging in, you agree to our Terms of Use and Privacy Policy

उपयोग

यह प्रॉम्प्ट personal के साथ उपयोग के लिए डिज़ाइन किया गया है। ऊपर प्रॉम्प्ट सामग्री कॉपी करें और अपने पसंदीदा AI टूल में पेस्ट करें।

सर्वोत्तम परिणामों के लिए, आप अपनी विशिष्ट आवश्यकताओं के अनुसार प्लेसहोल्डर (वर्ग कोष्ठक या बड़े अक्षरों में दर्शाए गए) को अनुकूलित कर सकते हैं।

संदर्भ

श्रेणियाँ:personal| prompts.chat| loan-amortization| mortgage-calculator

चर्चा