مقالات

مدل درآمد Airbnb با استفاده از Mashvisor Search API


API جستجوی Mashvisor بزرگترین مشکل در مدل‌سازی درآمد Airbnb را حل می‌کند: داده‌های اجاره کثیف، خراش‌های غیرقابل اعتماد، و محاسبات ناسازگار درآمد. به عنوان یک API داده املاک و مستغلات، معیارهای مالی کامل و از پیش مدل‌سازی شده را در یک تماس برمی‌گرداند. بدون حذف، بدون محاسبات دستی، بدون تمیز کردن داده های سفارشی. توسعه دهندگان می توانند به سرعت یک مدل درآمد کامل با استفاده از این API داده اجاره ای آماده تولید بسازند.

برای مثال، توسعه‌دهنده‌ای که داشبورد سرمایه‌گذار می‌سازد، می‌تواند درآمد، اشتغال و هزینه‌های ماهانه را برای هر بازاری در ایالات متحده در یک پرس‌وجو جمع‌آوری کند – بدون نیاز به مدل‌سازی دستی یا تمیز کردن. این امر Lookup را به یکی از کارآمدترین APIهای داده دارایی در دسترس تیم های PropTech تبدیل می کند.

این راهنما شما را در تبدیل یک پاسخ API جستجو به یک مدل درآمد کامل Airbnb راهنمایی می کند.

چرا Lookup موتور اصلی است:

  • درآمد، اشتغال، هزینه‌ها، جریان نقدی، نرخ سقف و معیارهای نقدی را برمی‌گرداند
  • در سطح شهر، کد پستی و آدرس در سراسر کشور کار می کند
  • معیارهای از پیش مدل‌سازی شده پیچیدگی و زمان توسعه را کاهش می‌دهند

پیش نیازها:

پوشش API: ایالات متحده (همه 50 ایالت) و بازارهای بین المللی از جمله بریتانیا (GB)، کانادا (CA)، اسپانیا (ES)، استرالیا (AU)، امارات متحده عربی (AE)، فرانسه (FR)، آفریقای جنوبی (ZA)، عربستان سعودی (SA)، یونان (GR).

خلاصه

API جستجوی Mashvisor یک خط لوله داده کامل در درجه تولید برای Airbnb ارائه می دهد. یک پرس‌وجو درآمد، اشغال، ADR، RevPAR، هزینه‌ها، NOI، جریان نقدی و وجه نقد در بازگشت را به همراه اندازه نمونه و معیارهای کیفیت داده از پیش مدل‌سازی شده برمی‌گرداند.

این راهنما نشان می‌دهد که چگونه می‌توان پاسخ Lookup را به یک مدل درآمد کامل تبدیل کرد، منطق تأمین مالی را اعمال کرد، آمار پشتیبان‌گیری را در سطوح آدرس/پستی/شهر اعمال کرد و خلاصه‌های آماده سرمایه‌گذاری را برای برنامه‌های PropTech، موتورهای ارزش‌گذاری و گردش‌های کاری خودکار پذیره‌نویسی تولید کرد.

II. جستجوی API چگونه کار می کند

الف. حداقل درخواست API

مثال:

واردات درخواست ها

API_KEY = “Your_api_key”
BASE_URL = “https://api.mashvisor.com/v1.1/client/rento-calculator/lookup”

دف get_market_data(پارامترها، api_key=هیچ کدام):
“””بازیابی اطلاعات Airbnb Market از Mashvisor API.””
سرصفحه = {“x-api-key”: api_key یا API_KEY}
answer = requests.get (BASE_URL، params=params، headers=headers)
answer.raise_for_status()
بازگشت answer.json()

ب. پارامترهای پشتیبانی شده

پارامترهای API جستجوی Mashvisor پشتیبانی می شوند

سطوح تحلیل:

  • سطح شهر: بهترین برای اعتبار سنجی بازار – برای اطمینان بیشتر، زمانی استفاده کنید که اندازه_ نمونه ≥ 80 باشد.
  • Zip-level: بهترین برای تجزیه و تحلیل محله – به اندازه_ نمونه ≥ 30 نیاز دارد.
  • سطح آدرس: بهترین برای ارزیابی یک ویژگی خاص – به اندازه_ نمونه ≥ 15 (نیاز به lat/lng) نیاز دارد.

با ایجاد ساختار درخواست، گام بعدی درک قالب پاسخ است. هر بخش از مدل درآمد مستقیماً از این ساختار JSON مشتق شده است.

ج. هر چند وقت یکبار مجموعه داده های تاریخی به روز می شوند؟

مجموعه داده اصلی Mashvisor در حال به روز رسانی است هر روز تا حد امکان دقیق معیارها را حفظ کنید. هر به‌روزرسانی شامل آخرین تغییرات در روند اشغال، تغییرات قیمت و در دسترس بودن اجاره کوتاه‌مدت در پلتفرم‌های اصلی STR است. این مقادیر به‌روزرسانی شده مستقیماً به API وارد می‌شوند، بنابراین توسعه‌دهندگان به‌طور خودکار آخرین ارقام را بدون نیاز به انجام هیچ‌گونه گام اضافی دریافت می‌کنند.

بیشتر بخوانید: نحوه استفاده از Historical Performance API

III. درک پاسخ جستجو

Search API یک شی JSON ساختاریافته حاوی معیارهای Airbnb انبوه برای مکان درخواستی را برمی گرداند. هر ورودی در داخل محتوا نشان‌دهنده زیرمجموعه‌ای از ویژگی‌های قابل مقایسه (مانند پیکربندی اتاق خواب/حمام)، همراه با درآمد متوسط، اشغال و حجم نمونه است. در زیر یک نمای برش خورده از ساختار JSON است که توسط نقطه پایانی بازگردانده شده است:

یک پاسخ معمولی JSON

IV. چگونه مدل درآمدی Airbnb را بسازیم

الف. ساختار مدل

مدل درآمدی Airbnb از پنج جزء اصلی تشکیل شده است:

  1. زمینه مالکیت و بازار – مکان، ارزش، شناسه بازار
  2. معیارهای درآمد – درآمد، اشتغال، اقامت شبانه
  3. شاخص های هزینه – هزینه های عملیاتی دقیق
  4. شاخص های سودآوری – NOI، جریان نقدی، بازگشت
  5. فراداده – اندازه نمونه، شاخص های کیفیت داده ها

ب. کد اصلی: build_revenue_model()

مدل درآمد از پنج لایه ساخته شده است: داده های مالکیت، معیارهای درآمد، هزینه ها، سودآوری و ابرداده. قبل از پرداختن به اجرای کامل، در اینجا نمای کلی ساختاری آورده شده است تا بتوانید شکل عملکرد را درک کنید. ویژگی کامل آماده تولید بلافاصله پس از آن ارائه می شود.

# ساختار اساسی (ویژگی کامل در زیر)
دف build_revenue_model(api_response, financing_params=هیچ کدام):
محتوا = api_response[‘content’]
الگو = {
“مالکیت”: {…}، # مکان، شناسه_بازار، ارزش_میانه
“درآمد”: {…}، # درآمد ماهانه/سالانه، اقامت شبانه، اشتغال
“هزینه ها”: {…}، # هزینه های عملیاتی دقیق
“سودآوری”: {…}، # NOI، نرخ سقف، صندلی های رزرو شده جریان نقدی
“فراداده”: {…} # حجم_نمونه، کیفیت_داده، تاریخ_تحلیل
}
# منطق تامین مالی و محاسبات مجدد در اجرای کامل در زیر نشان داده شده است
بازگشت مدل

عملکرد کامل

یک استقرار کامل آماده تولید شامل تمام نقشه‌برداری‌های میدانی، پردازش مجدد، بررسی‌های امنیتی و منطق تأمین مالی اختیاری است که در ادغام‌های واقعی استفاده می‌شود.

از تاریخ و زمان واردات تاریخ و زمان

دف build_revenue_model(api_response, financing_params=هیچ کدام):
“””
یک مدل درآمد کامل از داده های API جستجوی Mashvisor بسازید.

استدلال ها:
api_response: پاسخ JSON از Mashvisor /rento-calculator/lookup
financing_params: دیکت اختیاری با down_payment_pct، نرخ_ بهره، مدت_وام

برمی گرداند:
دیکته مدل درآمد کامل
“””

اگر api_response.get(“وضعیت”) != “موفقیت”:
بالا بردن ValueError(“درخواست API ناموفق”)

محتوا = api_response[‘content’]
بازار = محتوا[‘market’]
هزینه_کارت = محتوا[‘expenses_map’]

پشتیبانی = (
shpenzims_map.get(“حمایت”) یا
shpenzims_map.get(“حمایت”) یا
0
)

# ——————————————
# جدید: مطابقت با آستانه کیفیت داده (حداقل نسخه)
# ——————————————
_s = content.get(“اندازه_نمونه”)
اگر _s است وجود ندارد:
dq = “ناشناخته”
elif _s >= 80:
dq = “بالا”
elif _s >= 30:
dq = “متوسط”
elif _s >= 15:
dq = “کوتاه”
دیگری:
dq = “خیلی_کم”
# ——————————————

# 1. اطلاعات مالکیت و مکان
الگو = {
“مالکیت”: {
“محل”: است”{بازار[‘city’]}، {بازار[‘state’]}“،
“market_id”: بازار[‘id’]،
“متوسط_مقدار”: محتوا[‘median_home_value’]،
}،

# 2. پیش بینی درآمد
“درآمد”: {
“درآمد_ماهانه”: محتوا[‘median_rental_income’]،
“درآمد_سالانه”: محتوا[‘median_rental_income’] * 12،
“نرخ_شب”: محتوا[‘median_night_rate’]،
“نرخ اشغال”: محتوا[‘median_occupancy_rate’]،
“روپر”: محتوا[‘revpar’]،
“ظرفیت_میهمان”: محتوا[‘median_guests_capacity’]،
}،

# 3. تفکیک هزینه (همه فیلدهای مستند شده در Expands_Map)
“هزینه ها”: {
“ماهانه_کل”: محتوا[‘expenses’]،
“سالانه_کل”: محتوا[‘expenses’] * 12،
“مالیات_مالیات”: نقشه هزینه[‘propertyTax’]،
“حمایت”: تعمیر و نگهداری
“مدیریت”: نقشه هزینه[‘management’]،
“مالیات_درآمد_از_اجاره”: نقشه هزینه[‘rentalIncomeTax’]،
“بیمه”: نقشه هزینه[‘insurance’]،
“آب و برق”: نقشه هزینه[‘utilities’]،
“hoa_dues”: نقشه هزینه[‘hoa_dues’]،
“تمیز کردن”: نقشه هزینه[‘cleaningFees’]،
}،

# 4. سودآوری قبل از تامین مالی
“سودآوری”: {
“monthly_noi”: محتوا[‘median_rental_income’] – محتوا[‘expenses’]،
“annual_noi”: (مطالب[‘median_rental_income’] – محتوا[‘expenses’]) * 12،
“cap_rate”: محتوا[‘cap_rate’]،
“cash_flow_api”: محتوا[‘cash_flow’]، # از API
“cash_on_cash_api”: محتوا[‘cash_on_cash’]، # از API
}،

# 5. شاخص های کیفیت داده ها
“فراداده”: {
“اندازه_نمونه”: content.get(“اندازه_نمونه”)
“کیفیت داده ها”:dq, #
“تاریخ_تحلیل”: datetime.now().isoformat(),
“نسبت_قیمت_به_اجاره”: content.get(“نسبت_قیمت_به_اجاره”)
“قوانین”: market.get(“airbnb_regulations”)
“city_insights_fallback”: content.get(“city_insights_fallback”)
}
}

# 6. اضافه کردن سطح بودجه (در صورت ارائه) – این منطق خود شما است، نه وابسته به API
اگر پارامترهای تامین مالی:
بودجه = محاسبه_بودجه(
محتوا[‘median_home_value’]،
parameters_for_funding[‘down_payment_pct’]،
parameters_for_funding[‘interest_rate’]،
financing_params.get(“مدت_وام”، 30)
)

مدل[‘financing’] = تامین مالی

# با وام مسکن بازده را دوباره محاسبه کنید
ماهانه_جریان_نقد = مدل[‘profitability’][‘monthly_noi’] – تامین مالی[‘monthly_payment’]
جریان_نقد_سالانه = جریان_نقد_ماهانه * 12

مدل[‘profitability’]به روز رسانی({
“جریان_نقد_ماهانه”: ماهانه_جریان_نقدی،
“جریان_نقد_سالانه”: سالانه_جریان_نقدی،
“بازگشت نقدی”🙁
(جریان_نقدی سالانه / تامین مالی[‘total_invested’]) * 100
اگر تامین مالی[‘total_invested’] > 0 دیگری وجود ندارد
)
“زمان_زود_ماه”🙁
تامین مالی[‘total_invested’] / جریان_نقد_ماهانه
اگر ماهانه_جریان_نقدی > 0 دیگری وجود ندارد
)
})

بازگشت مدل

ج. چگونه مدل کار می کند

درآمدها از API استفاده می کند متوسط_درآمد_اجاره مستقیما

مخارج آمده از نقشه هزینه، ارائه هزینه های ماهانه دقیق برای همه دسته های عملیاتی.

سودآوری NOI را از درآمد منهای هزینه ها محاسبه می کند، سپس در صورت ارائه، هزینه های تامین مالی را اعمال می کند.

با معماری مدل تعریف شده، اکنون می‌توانیم ورودی‌هایی را که باعث درآمد و هزینه می‌شوند، تجزیه کنیم. این معیارها مستقیماً به فیلدهای موجود در پاسخ API جستجو نگاشت می شوند.

V. ورودی مدل درآمد

متوسط_درآمد_اجاره: درآمد ماهانه تخمینی بر اساس الگوهای رزرو واقعی.

میانگین_نرخ_شب: نرخ معمولی یک شبه در بازار شارژ می شود.

میانگین_ اشغال: درصد از شب های موجود رزرو شده. 65 درصد اشغال Airbnb معادل 237 شب در سال است.

انقلاب ها: درآمد هر اتاق در دسترس (نرخ شبانه × نرخ اشغال). برای مقایسه املاک با تعداد اتاق خواب های مختلف مفید است. RevPAR بالاتر نشان دهنده موقعیت قوی تر در بازار است.

میانگین_ظرفیت_مهمان: حداکثر تعداد مهمانانی که ملک می تواند در خود جای دهد، که بر پتانسیل قیمت تأثیر می گذارد.

VI. داده های ورودی برای مدل هزینه

الف. دسته بندی عمده هزینه ها

مالیات بر املاک: بر اساس نرخ های مالیات محلی و میانگین ارزش خانه

مدیریت: معمولاً 20 تا 25 درصد از درآمد ناخالص

نگهداری: ~ 1٪ از ارزش ملک در سال (STR ها 2-3 برابر استهلاک بیشتری نسبت به اجاره های سنتی تجربه می کنند)

بیمه: پوشش اموال و مسئولیت

آب و برق: اینترنت، برق، آب، گاز (میزبان تمام خدمات شهری را در STR پرداخت می کند)

hoa_dues: هزینه های انجمن صاحبان خانه (در صورت وجود)

هزینه های نظافت: نظافت حرفه ای بین مهمانان

ب. آنچه شامل نمی شود

را Mashvisor Airbnb APمن حساب نمی کنم:

  • مبلمان و راه اندازی اولیه: 10000-15000 دلار برای ملک 2 خوابه
  • هزینه هاست Airbnb: 3٪ از رزرو ناخالص
  • هزینه های مجوز/مجوز: 200-2000 دلار در سال بسته به حوزه قضایی

اگر یک ماشین حساب سرمایه گذاری کامل می سازید، این هزینه ها را جداگانه اضافه کنید.

VII. ردیف تامین مالی (اختیاری)

الف. چه بودجه ای به مدل اضافه می کند

  • پرداخت ماهانه وام مسکن
  • پیش پرداخت و هزینه های بسته شدن
  • کل پول سرمایه گذاری شده
  • بازده نقدی (جریان نقدی سالانه ÷ کل سرمایه گذاری شده)
  • برنامه سرسام آور

ب. کد: Calculate_financing()

دف محاسبه_بودجه(ارزش_خانه، کاهش_ درصد، نرخ_ بهره، مدت_وام=30):
“””محاسبه جزئیات وام مسکن و سرمایه گذاری (مستقل از Mashvisor)””

پایین_پرداخت = ارزش_خانه * (درصد_نزولی / 100)
مبلغ_وام = ارزش_خانه – پیش پرداخت
هزینه های پایانی = ارزش_مسکن * 0.03

نرخ_ماهانه = نرخ_بهره / 12 / 100
تعداد_پرداخت = مدت_وام * 12

ماهانه_پرداخت = مبلغ_وام * (
نرخ_ماهانه * (1 + نرخ_ماهانه) ** تعداد_پرداخت
) / ((1 + نرخ_ماهانه) ** تعداد_پرداخت ها – 1)

بازگشت {
“پیش پرداخت”: پیش پرداخت،
“مبلغ_وام”: وام_مبلغ،
“هزینه های بسته شدن”: closing_costs,
“کل_سرمایه گذاری”: پیش پرداخت + هزینه های پایانی،
“پرداخت_ماهانه”: ماهانه_پرداخت،
“نرخ_بهره”: نرخ_ بهره،
“مدت_وام”: مدت_وام،
}

ج. چگونه بودجه یکپارچه شده است

  • به من زنگ بزن account_funding() با ارزش ملک و شرایط وام
  • برای دریافت جریان نقدی واقعی، پرداخت ماهانه وام مسکن را از NOI کم کنید
  • محاسبه بازده نقدی با استفاده از کل پول سرمایه گذاری شده (پیش پرداخت + هزینه های بسته شدن)

هنگامی که لایه های درآمد و بودجه در محل قرار گرفتند، گام نهایی این است که اطمینان حاصل شود که داده ها از نظر آماری قابل اعتماد هستند. اندازه‌های نمونه و منطق افزونگی برای ساخت مدل‌هایی ضروری هستند که در محصولات دنیای واقعی پایدار باشند.

هشتم. کیفیت داده، قوانین اندازه نمونه، و منطق بازگشتی

الف. آستانه اندازه نمونه و چرایی اهمیت آنها

از آستانه های روشن و محافظه کارانه استفاده کنید تا تصمیم بگیرید کدام وضوح جغرافیایی از نظر آماری برای مدل سازی قابل اعتماد است:

  • سطح آدرس: به اندازه نمونه ≥ 15 نیاز دارد (مناسب برای ارزیابی یک ملک خاص زمانی که حداقل 15 لیست اجاره کوتاه مدت قابل مقایسه وجود دارد).
  • Zip-level: به سایز_Semple ≥ 30 نیاز دارد (مناسب برای تجزیه و تحلیل در سطح همسایگی؛ کمتر از 30 comps واریانس را افزایش می دهد).
  • سطح شهر: اندازه_ نمونه ≥ 80 مورد نیاز است (مناسب برای تحلیل سطح بازار و میانه های قوی).

وقتی قطعنامه ای وجود دارد اندازه_نمونه پایین تر از آستانه خود است، مدل باید به وضوح درشت تر بعدی برگردد و یک هشدار کیفیت داده به کاربران نمایش دهد. استفاده از آستانه های واضح، شگفتی میانگین های پر سر و صدا را کاهش می دهد و قابلیت اطمینان در دنیای واقعی را بهبود می بخشد.

ب. منطق پشتیبان (آدرس → کد پستی → شهر)

جریان پشتیبان (آستانه های صریح)
سطح آدرس (نیاز به نمونه_اندازه ≥ است 15)
↓ اگر اندازه_نمونه 15
سطح زیپ (به سایز_ نمونه ≥ نیاز دارد 30)
↓ اگر اندازه_نمونه 30
در سطح شهر (به سایز_نمونه ≥ نیاز دارد 80 برای نهایت اطمینان؛ بازگشت پاسخ سطح شهر اما هشدار سطحی اگر 80)

ج. کد: عملکرد پشتیبان

تابع بازگشتی از وضوح چند سطحی برای اطمینان از استحکام آماری زمانی که اندازه نمونه در سطح آدرس کوچک است، اعمال می‌کند. در زیر یک نمای کلی کوتاه و آسان برای درک وجود دارد که رفتار و آستانه ها را نشان می دهد. اجرای کامل آماده تولید بلافاصله پس از آن انجام می شود.

# بررسی پشتیبان (ویژگی کامل در زیر)
دف validate_and_fetch_data(مکان، api_key):
“””
رفتار (نمای کلی):
– در سطح آدرس امتحان کنید (اگر lat/lng ارائه شده است) و به سایز_ نمونه >= 15 نیاز دارید
– اگر زیر آستانه است، به سطح zip برگردید و به سایز_ نمونه >= 30 نیاز دارید
– اگر زیر آستانه است، به سطح شهر برگردید و برای اطمینان بیشتر، به سایز_ نمونه >= 80 نیاز دارید
– یک تاپل را برمی‌گرداند: (response_json، «سطح آدرس» | «زیپ سطح» | «سطح شهر»)
توجه: اجرای کامل زیر را برای ورود به سیستم، مدیریت پارامترها و فرم های درخواست دقیق ببینید.
“””
عبور کند # پیاده سازی کامل به طور مستقیم در زیر

عملکرد کامل

عملکرد کامل همان مراحل را دنبال می‌کند، با بررسی‌های امنیتی و ثبت‌نام واضح به طوری که کد تماس می‌تواند هشدارهایی را در صورت پایین بودن کیفیت داده به کاربر نمایش دهد.

دف validate_and_fetch_data(مکان، api_key):
“””
استخراج داده ها با بازگشت خودکار برای اندازه های نمونه کوچک.

آستانه وضوح (محافظه کارانه):
– سطح آدرس: به سایز_ نمونه >= 15 نیاز دارد
– Zip-level: به سایز_ نمونه >= 30 نیاز دارد
– سطح شهر: به اندازه_ نمونه >= ۸۰ (بالاترین اطمینان) نیاز دارد

برمی گرداند:
(response_json، resolution_str) که در آن resolution_str یکی از آنهاست
“سطح آدرس”، “سطح کدپستی”، “سطح شهر”
“””
ابتدا # سطح آدرس (در صورت ارائه مختصات)
اگر لات ج مکان و “lng” ج مکان:
پاسخ = داده‌های_دریافت_بازار (مکان، کلید_آپی)
محتوا = answer.get(“محتوا”) یا {}
اگر content.get(“اندازه_نمونه”، 0) >= 15:
بازگشت پاسخ دهید “سطح آدرس”
# ثبت قصد پشتیبان
چاپ (است”[data-quality] آدرس comps={content.get(“اندازه_نمونه”، 0)} )

# بازگشت به سطح کدپستی (در صورت ارائه)
اگر “کد پستی” ج مکان:
zip_params = { k : v برای k، v ج location.items() اگر ک نه ج [‘address’, ‘lat’, ‘lng’]}
پاسخ = get_market_data (zip_params، api_key)
محتوا = answer.get(“محتوا”) یا {}
اگر content.get(“اندازه_نمونه”، 0) >= 30:
بازگشت پاسخ دهید “سطح زیپ”
چاپ (است”[data-quality] zip comps={content.get(“اندازه_نمونه”، 0)} )

# آخرین بازگشت: سطح شهر (ایالت + شهر الزامی است)
city_params = {
“کشور”: location.get(“کشور”)
“شهر”: location.get(“شهر”)
“تخت”: location.get(“تخت”)
“منبع”: location.get(“منبع”، airbnb)
}
پاسخ = داده‌های_دریافت_بازار (شهر_پارام‌ها، api_key)
محتوا = answer.get(“محتوا”) یا {}

# در همه موارد پاسخی در سطح شهر برگردانید، اما تماس‌گیرندگان/PIها باید یک هشدار نمایش دهند
#اگر_اندازه نمونه
اگر content.get(“اندازه_نمونه”، 0) 80:
چاپ (است”[data-quality] شهرستان کامپی ={content.get(“اندازه_نمونه”، 0)} )
بازگشت پاسخ دهید “سطح شهر”

D. زمان نمایش هشدارها

هشدارها باید مستقیماً با طبقه بندی کیفیت اندازه نمونه مرتبط شوند:

  • بسیار_کم (اندازه_نمونه
    نشان دادن الف قوی هشدار – داده های سطح آدرس از نظر آماری غیر قابل اعتماد هستند.
    بازگشت به سطح ZIP یا شهر را تشویق کنید.
  • کم (15 ≤ حجم_نمونه
    هشدار نمایش – داده‌های سطح ZIP تعداد رایانه‌های شخصی بسیار کمی برای میانه‌های پایدار دارند.
  • میانگین (30 ≤ حجم_نمونه
    نشان دادن الف نرم هشدار – میانه های سطح شهر قابل استفاده هستند، اما باید با سلب مسئولیت ارائه شوند.
  • بالا (اندازه نمونه ≥ 80):
    هیچ هشداری لازم نیست – داده ها از نظر آماری در سطح شهر قابل اعتماد هستند.

نکته حرفه ای: همیشه یک هشدار بصری (آیکون یا بنر) زمانی که کیفیت بالا است نمایش می دهد خیلی_کم، پایین، یا متوسط، و فقط هشدارها را سرکوب می کند بالا سطح

IX قالب بندی خروجی نهایی

A. کد: format_revenue_summary()

دف فرمت_درآمد_خلاصه(مدل):
“””خلاصه ای قابل خواندن از مدل درآمد ایجاد کنید””

قیمت_اجاره = مدل[‘metadata’].get(“نسبت_قیمت_به_اجاره”)
سیاست = مدل[‘metadata’].get(“قوانین”)

# – جدید: برچسب کیفیت اندازه نمونه را محاسبه کنید (در صورت وجود از برچسب مدل استفاده کنید) –
نمونه_اندازه = مدل[‘metadata’].get(“اندازه_نمونه”)
کیفیت = مدل[‘metadata’].get(“کیفیت داده ها”)
اگر نه کیفیت:
اگر اندازه_نمونه است وجود ندارد:
کیفیت = “ناشناخته”
دیگری:
آن را امتحان کنید:
_s = int (اندازه_نمونه)
جز (TypeError، ValueError):
کیفیت = “ناشناخته”
دیگری:
اگر _s >= 80:
کیفیت = “بالا”
elif _s >= 30:
کیفیت = “متوسط”
elif _s >= 15:
کیفیت = “کوتاه”
دیگری:
کیفیت = “خیلی_کم”

# — جدید: متن هشدار صریح را بر اساس کیفیت تهیه کنید —
warning_lines = []
اگر کیفیت == “خیلی_کم”:
warning_lines.append(” ⚠️ کیفیت داده: بسیار پایین – کامپیوترهای ناکافی در این وضوح. سطح جغرافیایی درشت تری را در نظر بگیرید.”)
elif کیفیت == “کوتاه”:
warning_lines.append(” ⚠️ کیفیت داده: پایین – میانه ها ممکن است ناپایدار باشند؛ مراقب باشید یا به تجزیه و تحلیل zip/city برگردید.”)
elif کیفیت == “متوسط”:
warning_lines.append(” ℹ️ کیفیت داده: متوسط – فقط بینش هدفمند؛ اعتبارسنجی بیشتر را در نظر بگیرید.”)
# ‘بالا’ -> بدون خط هشدار

# — FSTRING اصلی (با حداقل ویرایش های تزریق کیفیت + هشدارها) –
بازگشت “”” است
╔══════════════════════════════════
║ مدل درآمدی AIRBNB ║
╚═══════════════════════════════

📍 ملک
مکان: {مدل[‘property’][‘location’]}
شناسه بازار: {مدل[‘property’][‘market_id’]}
ارزش متوسط: ${مدل[‘property’][‘median_value’]:،.0است}

💰 پیش بینی درآمد
درآمد ماهانه: ${مدل[‘revenue’][‘monthly_income’]:،.0است}
درآمد سالانه: ${مدل[‘revenue’][‘annual_income’]:،.0است}
نرخ شبانه: ${مدل[‘revenue’][‘nightly_rate’]:.0است}
میزان اشغال: {مدل[‘revenue’][‘occupancy_rate’]}%
RevPAR: ${مدل[‘revenue’][‘revpar’]:.2است}
ظرفیت مهمان: {مدل[‘revenue’][‘guest_capacity’]} مهمانان

💸هزینه های ماهانه
مجموع: ${مدل[‘expenses’][‘monthly_total’]:،.0است}
├─ مالیات بر دارایی: ${مدل[‘expenses’][‘property_tax’]:،.0است}
├─ مدیریت: ${مدل[‘expenses’][‘management’]:،.0است}
├─ پشتیبانی: ${مدل[‘expenses’][‘maintenance’]:،.0است}
├─ بیمه: دلار{مدل[‘expenses’][‘insurance’]:،.0است}
├─ ابزارهای کاربردی: ${مدل[‘expenses’][‘utilities’]:،.0است}
├─ هزینه های HOA: ${مدل[‘expenses’][‘hoa_dues’]:،.0است}
└─ تمیز کردن: ${مدل[‘expenses’][‘cleaning’]:،.0است}

{“🏦 تامین مالی” اگر “تامین مالی” ج مدل دیگری “}
{“پرداخت اولیه ({}%): ${:,.0f}”.format(
مدل[‘financing’][‘down_payment’] / مدل[‘property’][‘median_value’] * 100،
مدل[‘financing’][‘down_payment’]
) اگر “تامین مالی” ج مدل دیگری “}
{“مبلغ وام: ${:,.0f}”فرمت (مدل[‘financing’][‘loan_amount’]) اگر “تامین مالی” ج مدل دیگری “}
{‘ وام مسکن ماهانه: ${:,.0f}’فرمت (مدل[‘financing’][‘monthly_payment’]) اگر “تامین مالی” ج مدل دیگری “}
{“نرخ بهره: {}%”فرمت (مدل[‘financing’][‘interest_rate’]) اگر “تامین مالی” ج مدل دیگری “}

📊 سودآوری
NOI ماهانه: ${مدل[‘profitability’][‘monthly_noi’]:،.0است}
{“جریان نقدی ماهانه: ${:,.0f}”فرمت (مدل[‘profitability’].get(“جریان_نقد_ماهانه”، 0)) اگر “تامین مالی” ج مدل دیگری “}
{“جریان نقدی سالانه: ${:,.0f}”فرمت (مدل[‘profitability’].get(“جریان_نقد_سالانه”، 0)) اگر “تامین مالی” ج مدل دیگری “}
حداکثر سرعت: {مدل[‘profitability’][‘cap_rate’]}%
{“بازگشت نقدی: {:.1f}%”فرمت (مدل[‘profitability’].get(“بازگشت نقدی”، 0)) اگر “تامین مالی” ج مدل دیگری “}
{‘برنامه سرپایی: {} ماه’.format(int(model[‘profitability’][‘break_even_months’])) اگر “تامین مالی” ج مدل و مدل[‘profitability’].get(“زمان_زود_ماه”) دیگری “}

📈 کیفیت داده ها
حجم نمونه: {اندازه_نمونه}
کیفیت داده ها: {quality.title() اگر نمونه (کیفیت، خیابان) دیگری “هیچ”}
نسبت قیمت به اجاره: {است”{price_to_rent:.1است}“ اگر قیمت_برای_اجاره است نه وجود ندارد دیگری “هیچ”}
{f” ⚠️ تبصره مقررات: {مقررات}“ اگر مقررات دیگری “”}

{(“\\n”join(warning_lines) + “\\n”) اگر warning_lines دیگری “}
تولید شده توسط: {مدل[‘metadata’].get(“تاریخ_تحلیل”)}
منبع داده: Mashvisor API
“””

ب. مثال استفاده کامل

# پارامترهای مکان و بودجه را تعریف کنید
مکان = {
“کشور”: “TX”،
“شهر”: “آستین”،
“کد پستی”: “78701”،
“تخت”: 2،
“حمام”: 2،
“منبع”: airbnb
}

بودجه = {
“پیش_پرداخت_بهره”: 25،
“نرخ_بهره”: 6.5،
“مدت_وام”: 30
}

# داده ها را از نقطه پایانی جستجوی Mashvisor دریافت کنید
api_response = get_market_data (موقعیت)

# یک مدل درآمد از پاسخ استعلام + سطح بودجه بسازید
درآمد_مدل = build_revenue_model (api_response، بودجه)

# نمایش یک مدل فرمت شده
چاپ (قالب_درآمد_خلاصه(مدل_درآمد))

ج. جریان مدل

جریان مدل درآمد

X. چگونه Mashvisor Lookup API با Zillow و AirDna مقایسه می شود

AirDNA:
AirDna تجزیه و تحلیل های قوی بازار را در سطح بالا ارائه می دهد، اما اطلاعات مالی در سطح دارایی (NOI، جریان نقدی، هزینه ها، پول نقد موجود) را در یک تماس API بر نمی گرداند. توسعه دهندگان باید چندین مجموعه داده را ترکیب کرده و سودآوری را به صورت دستی محاسبه کنند.

زیلو:
Zillow داده‌های دارایی و پیش‌بینی‌های اجاره را ارائه می‌کند، اما درآمد کوتاه‌مدت اجاره، نرخ اشغال، RevPAR یا هزینه‌های خاص Airbnb را ارائه نمی‌کند. برای مدل سازی مالی STR در نظر گرفته نشده است.

جستجوی Mashvisor:
برخلاف هر دو، Lookup برمی گردد داده های مالی کامل و از پیش مدل شده Airbnb – درآمد، اشغال، هزینه های دقیق، معیارهای سودآوری، RevPAR و پرچم های کیفیت داده – آماده برای استفاده مستقیم در برنامه های تولید.

نتیجه‌گیری: Mashvisor Lookup API سریع‌ترین مسیر برای یک مدل Airbnb آماده تولید است.

را Mashvisor API همه چیزهایی را که برای ساخت مدل های درآمدی قابل اعتماد Airbnb نیاز دارید ارائه می دهد:

  • جزئیات مالی کامل در یک تماس API – بدون حذف، بدون تمیز کردن داده ها
  • معیارهای از پیش محاسبه شده از جمله NOI، APR و بازگشت نقدی
  • پوشش سراسری در تمام 50 ایالت ایالات متحده به علاوه بازارهای بین المللی منتخب
  • شاخص های کیفیت از طریق اندازه نمونه و منطق پشتیبان برای پیش بینی های قابل اعتماد
  • آماده برای تولید ظرف چند ساعت به جای چند ماه توسعه سفارشی

مدل‌هایی بسازید که مستقیماً از داده‌های API استفاده می‌کنند، حجم نمونه‌های کوچک را به زیبایی مدیریت می‌کنند، شاخص‌های کیفیت را به‌طور برجسته نشان می‌دهند، تأثیر بودجه را با دقت محاسبه می‌کنند و نتایج را در قالب‌های عملی ارائه می‌دهند.

استفاده از Mashvisor AP را شروع کنیدمن امروز با یک 1 هفته آزمایشی رایگان این شامل 30 واحد برای استعلام بازار واقعی


Source link

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا