ميزانية الترميم
تحول حاسبة ميزانية الترميم قائمة المواد والعمالة والتجهيزات والإيجارات وغيرها من النفقات إلى هدف عملي للإنفاق.
شغّل الأداة مجانًا
أدخلوا كل كمية مع سعر وحدتها المطابق، ثم اختاروا نسبة احتياطية للمفاجآت التي قد تظهر بعد بدء الأعمال. تعرض النتيجة تكلفة كل بند، والمجموع الفرعي المفصل، ومبلغ الاحتياطي، والإجمالي النهائي للمشروع. تفيد الحاسبة في التخطيط المبكر، ومقارنة عروض المقاولين، ومراجعة نطاق العمل، وإجراء حسابات ميزانية قابلة للتكرار عبر API.
أعدوا تقديرا مفصلا لأعمال الترميم
ابدؤوا بإنشاء صف لكل تكلفة يمكن تحديدها بصورة معقولة. يمكن قياس المواد بالمتر المربع أو الصندوق أو اللوح أو اللتر أو التجهيزة أو القطعة، بينما يمكن إدخال العمالة بالساعة أو اليوم أو بقيمة ثابتة للعمل. يجب أن تعتمد الكمية وسعر الوحدة في الصف نفسه على الوحدة ذاتها: فالأرضيات المقاسة بالمتر المربع تحتاج إلى سعر للمتر المربع، وأربع وعشرون ساعة من عمل الكهربائي تحتاج إلى أجر للساعة. عندما يقدم المورد سعرا لعبوة، اقسموا سعرها على محتواها إذا كانت الكمية تستخدم وحدات أصغر، أو أدخلوا عدد العبوات الكاملة المتوقع شراؤها. أسماء البنود اختيارية، لكنها تجعل مراجعة التفاصيل الناتجة أسهل بكثير. استخدموا عملة واحدة لجميع القيم، لأن الحاسبة لا تتعرف على العملات ولا تحول بينها. أضيفوا التصاريح والتوصيل وتأجير المعدات والتخلص من المخلفات ورسوم التصميم والضرائب في صفوف مستقلة عندما تدخل ضمن نطاق المشروع. تنتج القائمة الشاملة مجموعا فرعيا أنفع من تقدير إنشائي عام يخفي الافتراضات.
افهموا المجموع الفرعي والاحتياطي والإجمالي
تضرب الحاسبة في كل صف الكمية في سعر الوحدة. ثم تجمع تكاليف الصفوف لتكوين المجموع الفرعي المفصل، وتضرب ذلك المجموع في نسبة الطوارئ لحساب مبلغ الاحتياطي. وأخيرا تضيف الاحتياطي إلى المجموع الفرعي للحصول على إجمالي المشروع. على سبيل المثال، يؤدي مجموع فرعي قدره 20,000 مع احتياطي نسبته 10 بالمئة إلى مبلغ احتياطي قدره 2,000 وإجمالي قدره 22,000. لا يعني الاحتياطي توقع إنفاق كل المبلغ الإضافي، بل هو هامش تخطيطي للكميات غير المؤكدة أو الأضرار الخفية أو تغيرات الأسعار المحدودة أو التعديلات الصغيرة في نطاق العمل. اختاروا النسبة وفقا لمدى وضوح تعريف الأعمال ومقدار ما يمكن معاينته من المبنى قبل بدء التنفيذ. تصلح نسبة الصفر لمقارنة عروض مفصلة بلا احتياطي، بينما قد تعكس نسبة أعلى تصورا مبكرا يحتوي على مجهولات أكثر. تحتفظ الاستجابة بكل قيمة إدخال منسقة وكل تكلفة بند، مما يسهل تدقيق الحساب أو إعادة إنتاجه في جدول آخر.
استخدموا الإجمالي دون اعتباره عرضا نهائيا
تعاملوا مع إجمالي المشروع المحسوب بوصفه نموذج ميزانية مبنيا على الصفوف التي قدمتموها، لا التزاما من المقاول ولا تقييما ولا ضمانا. تحققوا قبل مقارنة العروض بتقديركم مما إذا كانت تشمل الضرائب والتوصيل والهدم والتنظيف والتصاريح والحماية المؤقتة وأعمال التشطيب. تجنبوا احتساب النفقة نفسها مرتين، مثل إدخال الهدر ضمن كمية الأرضيات ثم إضافته مرة أخرى كبند مستقل. عند تغير التصميم، انسخوا المدخلات وعدلوا الصفوف المتأثرة وحدها، ثم قارنوا الإجمالي القديم بالجديد حتى تظل تكلفة القرار واضحة. ومع وصول الفواتير، استبدلوا الكميات أو الأسعار المقدرة بالقيم الفعلية، وافصلوا الاحتياطي عن الإنفاق الملتزم به. لا يستخدم الحساب الحتمي شبكة أو قاعدة أسعار مباشرة أو عشوائية أو قيما مرتبطة بالوقت، ولذلك تعطي المدخلات المتطابقة النتيجة نفسها دائما. تفيد نسخة المتصفح في التخطيط التفاعلي، بينما تبلغ تكلفة API مقدار $0.002 لكل طلب، ويمكن دمج الحساب نفسه في نماذج التقدير أو بوابات الملاك أو إجراءات إدارة المشاريع.
حالات الاستخدام
تخطيط ترميم غرفة
اجمعوا الأرضيات والطلاء والتجهيزات والعمالة والتخلص من المخلفات والتصاريح في ميزانية تتضمن احتياطيا للمفاجآت.
مقارنة نطاقات عمل المقاولين
وحدوا الكميات وأسعار الوحدات في العروض المتنافسة، ثم طبقوا نسبة الاحتياطي نفسها على كل سيناريو.
متابعة تصميم معدل
أعيدوا حساب الإجمالي بعد تغيير التشطيبات أو الكميات، وراقبوا أثر البنود المعدلة في احتياطي المشروع.
الأسئلة الشائعة
كم تبلغ تكلفة العملية الحسابية الواحدة؟
سعر API هو $0.002 لكل طلب. ويمكنكم أيضا تشغيل الحاسبة مجانا في متصفحكم.
كيف يحسب المجموع الفرعي للترميم؟
تساوي تكلفة كل صف كميته مضروبة في سعر وحدته. والمجموع الفرعي هو مجموع تكاليف جميع الصفوف.
كيف يضاف احتياطي الطوارئ؟
يضرب المجموع الفرعي في نسبة الطوارئ لحساب الاحتياطي، ثم يضاف ذلك المبلغ إلى المجموع الفرعي.
ما نسبة الاحتياطي التي ينبغي استخدامها؟
اختاروا نسبة تعكس درجة عدم اليقين في مشروعكم. عادة ما تحتوي التصاميم المبكرة والظروف الخفية على مجهولات أكثر من نطاق موثق بالكامل.
هل توفر الحاسبة أسعار المواد أو العمالة الحالية؟
لا. أنتم تقدمون كل كمية وسعر وحدة. تنفذ الحاسبة عمليات حسابية حتمية ولا تستعلم من قاعدة بيانات للأسعار.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/home/renovation-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"name":"Flooring","quantity":45,"unit_price":38.5},{"name":"Paint","quantity":12,"unit_price":42},{"name":"Electrical labor","quantity":24,"unit_price":85}]}'const res = await fetch("https://api.kit.forhosting.com/home/renovation-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
{
"name": "Flooring",
"quantity": 45,
"unit_price": 38.5
},
{
"name": "Paint",
"quantity": 12,
"unit_price": 42
},
{
"name": "Electrical labor",
"quantity": 24,
"unit_price": 85
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/renovation-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
{
"name": "Flooring",
"quantity": 45,
"unit_price": 38.5
},
{
"name": "Paint",
"quantity": 12,
"unit_price": 42
},
{
"name": "Electrical labor",
"quantity": 24,
"unit_price": 85
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/renovation-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":[{"name":"Flooring","quantity":45,"unit_price":38.5},{"name":"Paint","quantity":12,"unit_price":42},{"name":"Electrical labor","quantity":24,"unit_price":85}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":[{"name":"Flooring","quantity":45,"unit_price":38.5},{"name":"Paint","quantity":12,"unit_price":42},{"name":"Electrical labor","quantity":24,"unit_price":85}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/renovation-budget", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"items": [
{
"name": "Flooring",
"quantity": 45,
"unit_price": 38.5
},
{
"name": "Paint",
"quantity": 12,
"unit_price": 42
},
{
"name": "Electrical labor",
"quantity": 24,
"unit_price": 85
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.renovation_budget",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
min_items | 1 |
max_items | 200 |
max_value | 1000000000000 |
max_contingency_percent | 100 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |