Media > AI活用ユースケース > 営業 > 管理を受ける部屋や退去後の部屋の募集賃料を決めるときに、自社の成約記録と物件の属性から賃料を幅で見込み、近い成約事例を添えてオーナーへの提案の材料にする

管理を受ける部屋や退去後の部屋の募集賃料を決めるときに、自社の成約記録と物件の属性から賃料を幅で見込み、近い成約事例を添えてオーナーへの提案の材料にする

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

部屋の募集賃料を決めるときに、自社の成約記録と物件の属性から、成約しそうな賃料を幅で見込みます。根拠になる近い成約事例を5件選んで並べ、オーナーへの提案の材料にします。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Python
対象業界
不動産
対象部門
営業
対象業務
比較検討/集計・分析
主な課題
判断に時間がかかる/属人化している/情報が見つからない
AIで行う処理
予測
主な効果
判断支援/属人化解消/工数削減
導入難易度
★★★★☆
実装レベル
本格構成
費用感
個別開発(大)
人間の確認
条件付き
現在工数
60h/月
AI導入後
20h/月
想定削減
67%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 退去の連絡を受けたら、その部屋の前回の成約賃料と、入居していた期間を台帳で確かめる
  2. 賃貸管理のシステムから成約の記録を出力し、同じ駅・近い面積・近い築年数で絞り込んで、近い事例を探す
  3. 募集サイトで、近くの似た部屋の募集賃料を見る
  4. 前回の賃料、近い事例、募集サイトの賃料から、担当が提案する賃料を決める
  5. 提案書の様式に、提案する賃料と事例を書き写す
  6. オーナーに電話か訪問で提案し、決まった賃料で募集を始める
導入後(After)
  1. 人管理営業担当が、賃貸管理のシステムで退去の予定、または新しく管理を受ける部屋の登録を行う
  2. 自動毎朝、前日までに登録された部屋を拾い、物件と部屋の属性を台帳から取り出す
  3. 自動予測のモデルが、成約しそうな賃料を下(0.2)・中(0.5)・上(0.8)の3つで出す
  4. 自動近い成約事例を、属性の近さで5件選び、それぞれの成約日・賃料・決まるまでの日数を並べる
  5. 自動前回の成約賃料と、見込みの幅との差を出す
  6. 自動生成AIが、幅と事例をもとに、オーナーへの説明の文の下書きを作る
  7. 人担当が、見込みの幅と事例を確かめ、部屋の事情(リフォームの有無、眺望、騒音)を書き足して、提案する賃料の案を決める
  8. 人担当がオーナーに提案し、オーナーが募集賃料を決める
  9. 自動見込み、提案した賃料、オーナーが決めた賃料を記録に残す
  10. 自動成約したら、成約の賃料と日数を記録に足し、見込みとの差を出す
各工程の詳しい説明を読む
  1. 退去の連絡を受けたら、その部屋の前回の成約賃料と、入居していた期間を台帳で確かめる
  2. 賃貸管理のシステムから成約の記録を出力し、同じ駅・近い面積・近い築年数で絞り込んで、近い事例を探す
  3. 募集サイトで、近くの似た部屋の募集賃料を見る
  4. 前回の賃料、近い事例、募集サイトの賃料から、担当が提案する賃料を決める
  5. 提案書の様式に、提案する賃料と事例を書き写す
  6. オーナーに電話か訪問で提案し、決まった賃料で募集を始める

(a)近い事例を探すのに時間がかかる。 2番の絞り込みは、条件を少し変えては件数を見て、を繰り返す作業です。条件を厳しくすると事例が無く、緩めると遠い事例が混ざります。 どこで止めるかは担当の感覚です。

(b)担当によって根拠の示し方が違う。 ある担当は同じ建物の過去の成約を、別の担当は募集サイトの賃料を根拠にします。オーナーから見ると、担当が替わると提案の考え方が変わります。

(c)前回の賃料に引っ張られる。 数年前に決まった賃料を、そのまま次の募集に使いがちです。築年数が進んだ分や、周りの相場の動きが、提案に入りません。 高すぎれば空室が長引き、安すぎればオーナーの収入を減らします。

(d)成約までの日数が見えない。 同じ賃料でも、決まるまでに10日だった部屋と90日だった部屋があります。賃料だけを見て日数を見ないと、「この賃料で決まった」が「この賃料で3か月かかった」だったことに気づきません。

(e)新しく管理を受ける部屋で、根拠を示せない。 管理の受託の提案では、オーナーが他の管理会社の提案と見比べます。「うちならこの賃料で決められます」と言うだけでは、高い数字を出した会社に負けます。 実際に決まった事例と日数を並べて見せられる会社は、まだ多くありません。

  1. 【人】 管理営業担当が、賃貸管理のシステムで退去の予定、または新しく管理を受ける部屋の登録を行う
  2. 【自動】 毎朝、前日までに登録された部屋を拾い、物件と部屋の属性を台帳から取り出す
  3. 【自動】 予測のモデルが、成約しそうな賃料を下(0.2)・中(0.5)・上(0.8)の3つで出す
  4. 【自動】 近い成約事例を、属性の近さで5件選び、それぞれの成約日・賃料・決まるまでの日数を並べる
  5. 【自動】 前回の成約賃料と、見込みの幅との差を出す
  6. 【自動】 生成AIが、幅と事例をもとに、オーナーへの説明の文の下書きを作る
  7. 【人】 担当が、見込みの幅と事例を確かめ、部屋の事情(リフォームの有無、眺望、騒音)を書き足して、提案する賃料の案を決める
  8. 【人】 担当がオーナーに提案し、オーナーが募集賃料を決める
  9. 【自動】 見込み、提案した賃料、オーナーが決めた賃料を記録に残す
  10. 【自動】 成約したら、成約の賃料と日数を記録に足し、見込みとの差を出す

7番目で担当が足すのは、台帳に無い事情です。 室内をリフォームした、窓の前に建物が建った、上の階の騒音で前の入居者が退去した。こうした事情は成約記録の属性に無いので、予測には入りません。 担当が書き足し、その分を幅の中のどこに置くかで表します。

10番目で見込みと成約の差を毎回出すことが、この設計の要です。 見込みの幅の中で決まった割合が分かれば、幅を信用してよいかを、担当もオーナーも数字で確かめられます。

02今回想定するシステム構成

構成図
【入力】賃貸管理のシステムの台帳(物件・部屋・過去の成約)
   ▼【トリガー】毎朝 7時(前日までに登録された退去予定・新規受託の部屋)
Python(pandas で整形 → scikit-learn で予測と事例の選定)
   ├── 成約しそうな賃料:下 0.2/中 0.5/上 0.8(HistGradientBoostingRegressor の quantile)
   ├── 近い成約事例 5件(NearestNeighbors)
   └── 前回の成約賃料との差
   ▼
Claude API(構造化出力)── オーナーへの説明の文の下書き
   ▼
提案の材料(表計算の提案書の様式に書き出し)
   ▼
【人】担当が事情を書き足し、提案する賃料の案を決める → オーナーが決める
   ▼
記録(見込み・提案・決定・成約)
役割想定する製品代替候補
処理エンジンPython(pandas、scikit-learn の HistGradientBoostingRegressor と NearestNeighbors)R、BigQuery ML
生成AIClaude API(オーナーへの説明の文の下書き)OpenAI API、Gemini API
データの取得元賃貸管理のシステムの台帳の出力(CSV)賃貸管理のシステムの API
出力先提案書の様式(表計算)Google スプレッドシート
定時実行サーバーのタスクスケジューラクラウドのジョブ実行のサービス

予測には、scikit-learn の HistGradientBoostingRegressor を使います。 scikit-learn の文書では、loss="quantile" を選ぶと、推定する分位点を quantile に0から1の値で指定でき、欠損値(NaN)をそのまま扱えるとされています。成約記録には、方位や設備が空欄の部屋が必ずあるので、欠損をそのまま扱えることが効きます。

属性と賃料の向きを、制約として入れます。 同じ文書では、monotonic_cst で各特徴量について単調に増える(1)・制約なし(0)・単調に減る(-1)の制約をかけられるとされています。専有面積は増える向き、駅からの徒歩の分数と築年数は減る向きに制約をかけ、データの少ない領域で「駅から遠いほど高い」のような逆転した見込みが出ないようにします。

近い成約事例は、NearestNeighbors で選びます。 scikit-learn の文書では、近傍の探索を行う教師なしの学習器で、kneighbors が近い点までの距離と、その点の番号を返すとされています。予測のモデルとは別に、根拠として見せる事例を選ぶためだけに使います。

生成AIは、Claude API の構造化出力で呼びます。 Claude の文書では、output_config.format に type: "json_schema" とスキーマを指定すると、スキーマに沿った有効な JSON が返るとされています。数字はすべて Python の側で出し、生成AIには文を書かせるだけにします。

03どうやって実装するのか

Step1

処理の起点を決める

毎朝7時に、前日までに登録された部屋をまとめて処理します。 退去の予定は、退去の1か月ほど前に入るのが普通です。その日のうちに賃料の材料がそろえば、原状回復の工事の間にオーナーと賃料を決められます。

新しく管理を受ける部屋は、担当が手で動かせるようにもします。 管理の受託の提案は、オーナーとの面談の日程に合わせて急ぎで作ることがあるためです。

予測のモデルは、毎月1日に作り直します。 前月の成約を学習に足し、相場の動きを1か月遅れで追いかけます。 作り直したときは、前月の見込みに対して成約が幅に入った割合を出し、大きく下がっていれば、新しいモデルを使う前に担当の責任者が確かめます。

Step2

入力データを集める

データ中身取得元
予測する部屋物件の所在地と最寄り駅、駅からの徒歩の分数、築年月、構造、階数と総階数、専有面積、間取り、方位、設備賃貸管理のシステムの台帳
過去の成約上と同じ属性に加えて、成約日、成約賃料、共益費、礼金、フリーレントの有無と月数、募集開始日賃貸管理のシステムの成約の記録(3年分)
前回の成約その部屋の前回の成約賃料と成約日、入居していた期間賃貸管理のシステム
担当の書き足しリフォームの有無、眺望、騒音、周辺の変化担当が提案の材料に書く

質を決めるのは、成約の記録の正しさです。 賃料の欄に共益費を含めた部屋と含めない部屋が混ざっている、フリーレントの月数が空欄のまま、といった記録が多いと、予測の幅が広がるだけでなく、近い事例として間違った賃料を見せることになります。

賃料は、賃料と共益費の合計で揃えます。 入居者が比べるのは毎月払う総額で、賃料と共益費の配分は物件ごとの考え方で違います。フリーレントがある成約は、その月数を2年で割った分を差し引いた「実質の月額」も別の列に持ちます。 見かけの賃料だけを学習すると、フリーレントで決めた部屋の賃料が相場に見えてしまいます。

Step3

データの取得方法を決める

取るものどこから何に使うか
予測する部屋の属性賃貸管理のシステムの台帳の出力予測と事例の選定の入力
成約の記録同じシステムの成約の記録の出力学習と、近い事例の候補
前回の成約部屋の番号で台帳を引く見込みとの差の表示
担当の書き足し提案書の様式の書き足しの欄記録に残し、後から外れの理由を見る

台帳からは、毎朝 CSV で出力して読みます。 入居者や入居希望者の氏名などの個人の情報は出力に含めません。予測に要るのは部屋の属性と成約の条件だけです。

オーナーの名前も、予測の処理には持ち込みません。 提案書の宛名は、提案書の様式の側で担当が入れます。

Step4

AIへ渡す前に整形する

  1. 賃料の揃え … 賃料と共益費の合計の列と、フリーレントを差し引いた実質の月額の列を作ります
  2. 成約の時期の列 … 成約した月(1〜3月の繁忙期を区別)と、成約日から今日までの月数を列にします
  3. 築年数の計算 … 成約日の時点の築年数を計算します。今日の築年数で学習しないことが大事です
  4. 駅の扱い … 最寄り駅を区分の列にし、成約の少ない駅(年に数件)は沿線とまとめます
  5. 外れた記録を除く … 社宅の一括の契約、身内の契約、事業用への転用など、相場で決まっていない成約に印を付けて学習から外します
  6. 事例の選定用の尺度の揃え … 面積・徒歩の分数・築年数・階数を同じ尺度に直し、近さを測れるようにします

6番目の尺度は、近さの重みを兼ねます。 面積の1㎡の差と、徒歩の1分の差と、築年数の1年の差を同じ重さで測ると、面積の差が効きすぎます。担当と相談して「どの差なら同じくらい賃料に効くか」を決め、その分だけ尺度を伸び縮みさせます。 最初は面積2㎡・徒歩2分・築3年を同じ距離とする、のような素直な置き方で始め、担当が外した事例の理由を見て直します。

3番目を間違えると、古い成約がすべて割安に見えます。 3年前に築10年で決まった部屋を、今の築13年として学習すると、築年数の効き方を小さく見積もることになります。

5番目は、担当に聞かないと分からない記録が多くあります。 最初に過去3年分の成約を担当に見てもらい、相場で決まっていないものに印を付ける作業が、最初の準備になります。

Step5

AIに処理させる

機械学習にさせるのは、賃料の幅の予測と、近い事例の選定の2つです。 生成AIにさせるのは、その結果を説明する文の下書きだけです。

させること中身使うもの
賃料の幅の予測成約しそうな賃料(賃料+共益費)の下0.2・中0.5・上0.8HistGradientBoostingRegressor(loss="quantile")
近い事例の選定同じ駅または沿線の成約から、属性の近い5件NearestNeighbors の kneighbors
前回との差前回の成約賃料と、見込みの中の値との差Python の計算
説明の文の下書き幅・事例・前回との差を、オーナー向けの文にするClaude API

学習と予測の流れは次のようになります。

from sklearn.ensemble import HistGradientBoostingRegressor
from sklearn.neighbors import NearestNeighbors

cols = ["面積", "徒歩分", "築年数", "階", "総階数", "間取り", "方位",
        "駅", "構造", "設備数", "繁忙期", "成約から月数"]
cst = {"面積": 1, "徒歩分": -1, "築年数": -1}
models = {q: HistGradientBoostingRegressor(
             loss="quantile", quantile=q, monotonic_cst=cst,
             categorical_features=["間取り", "方位", "駅", "構造"])
          .fit(X[cols], y) for q in (0.2, 0.5, 0.8)}
nn = NearestNeighbors(n_neighbors=5).fit(Z_same_line)   # 尺度を揃えた属性
dist, idx = nn.kneighbors(z_target)

事例は、予測のモデルとは別に選びます。 予測のモデルは多くの成約から傾向を学ぶので、「この5件が根拠です」と言える形にはなりません。 オーナーに見せる根拠は、実際に決まった部屋そのものが一番伝わります。

事例の選び方には、2つの条件を付けます。 同じ駅か同じ沿線の成約に限ること、成約日が2年以内のものを優先することです。古い事例しか近くに無いときは、その旨を提案の材料に出します。

幅の確かさは、時間の順に分けて測ります。 scikit-learn の TimeSeriesSplit は、訓練のデータが常にテストのデータより前になるように分けるとされています。直近の6か月を1か月ずつテストにし、成約が幅(0.2〜0.8)の中に入った割合が6割前後になっているかを見ます。 あわせて、mean_pinball_loss でそれぞれの分位点の予測を alpha を合わせて測ります。

させないこと理由
提案する賃料を1つに決める幅のどこで出すかは、オーナーの事情で決まる
生成AIに賃料の数字を作らせる数字はすべて Python が出す
募集サイトの賃料を学習に混ぜる決まる前の希望の値段で、成約の相場と違う
「周辺の相場が上がっている」などの判断を文に書かせる根拠が成約記録に無い主張は書かない

2行目がいちばん大事です。 生成AIに説明の文を頼むと、「7万円前後が妥当」のような丸めた数字を自分で書きます。 文に出す数字は、渡したJSONの値だけに限ります。

Step6

指示内容を固定する

あなたは賃貸管理会社の担当者が、オーナーに募集賃料を相談するときの
説明の文の下書きを作る係です。

【使ってよい情報】
渡したJSONの値だけを使ってください。
- 見込みの幅(下・中・上)、近い成約事例5件、前回の成約賃料との差、
  担当の書き足し

【守ること】
- 数字は、JSONにある値をそのまま書いてください。丸めたり、新しい数字を作ったりしないでください。
- 募集賃料を「いくらにすべき」と1つに決めないでください。
  幅のどこで出すかで、決まるまでの見込みの日数がどう変わりそうかを、事例の日数を使って書いてください。
- 近い成約事例は、成約の年月、面積、築年数、賃料、決まるまでの日数を書き、
  部屋番号や入居者のことは書かないでください。
- 「相場が上がっている」「人気のエリア」のような、JSONに根拠の無い主張を書かないでください。
- 事例の成約日が2年より前のものしか無い場合は、そのことを書いてください。
- 400字以内、です・ます調で書いてください。

【JSON】{estimate_json}

「1つに決めない」を書くのは、提案の主体を間違えないためです。 管理会社が出すのは材料で、決めるのはオーナーです。 文が「7万2千円で募集します」となっていると、担当はそのまま読み上げてしまいます。

「決まるまでの日数を事例から書く」は、オーナーの判断にいちばん効く材料です。 幅の上の方で決まった事例が60日かかっていて、中ほどの事例が15日なら、高く出すことの代償が日数で見えます。

Step7

出力形式を固定する

予測と事例の結果は、次の形のJSONでまとめます。

{
  "room_id": "B-1203-305",
  "estimate": { "low": 68000, "mid": 71000, "high": 74000, "unit": "円(賃料+共益費)" },
  "previous": { "rent_total": 75000, "contracted": "2022-03", "diff_from_mid": -4000 },
  "comparables": [
    { "contracted": "2026-04", "area_m2": 25.4, "age_years": 15,
      "walk_min": 7, "rent_total": 72000, "days_to_contract": 21,
      "same_building": true }
  ],
  "warnings": ["近い事例のうち2件は成約日が2年より前"],
  "note_by_staff": ""
}

comparables には5件を並べます。warnings には、事例が古い、同じ駅に事例が少ない、予測する部屋の属性が学習の範囲の外にある(面積が極端に広いなど)といった注意を、Python の側で入れます。

1つ目の理由は、数字の出どころを1か所にできることです。 提案書の数字も、生成AIの文の数字も、このJSONから取ります。どこかで数字が書き換わっても、JSONと見比べればすぐ分かります。

2つ目は、days_to_contract を事例ごとに持てることです。 賃料と日数が並ぶので、担当はオーナーに「この賃料なら、このくらいの日数で決まっている」と説明できます。

3つ目は、warnings で見込みの弱いところを先に示せることです。 事例が古い、数が少ないときは、幅の信用度が下がることを、提案の前に担当が知っておく必要があります。

提案書の様式には、たとえば次のように書き出します。

【募集賃料の材料】B-1203 305号室(1K 25.1㎡ 築15年 徒歩7分 3階)
見込み(賃料+共益費)  下 68,000円/中 71,000円/上 74,000円
前回の成約  75,000円(2022年3月)── 見込みの中より 4,000円高い
近い成約事例
  1 2026年4月 同じ建物 25.4㎡ 3階  72,000円  21日
  2 2026年2月 同じ駅   24.8㎡ 2階  70,000円  12日
  3 2025年11月 同じ駅  26.0㎡ 4階  74,000円  58日
  4 2025年9月 同じ沿線 25.0㎡ 2階  69,000円  15日
  5 2024年6月 同じ駅   25.2㎡ 3階  73,000円  33日
注意  事例5は成約日が2年より前
担当の書き足し(必須)  ______

3番目と1番目を並べると、オーナーに伝えたいことが見えます。 7万4千円で決まった事例は58日かかり、7万2千円の事例は21日で決まっています。2千円の差と、1か月余りの空室の差を、オーナーが自分で比べられます。

生成AIの文の下書きは、{"draft": "", "numbers_used": []} の形で受け取り、numbers_used に書いた数字がすべてJSONにあるかを Python で照合します。JSONに無い数字が1つでもあれば、その下書きは使わず担当に知らせます。

Step8

システムへ連携する

つなぎ先方式内容
賃貸管理のシステム台帳と成約の記録の出力(CSV)予測する部屋の属性、学習用の成約
Python の処理定時実行予測、事例の選定、前回との差、照合
Claude APIAPI呼び出し(構造化出力)説明の文の下書き
提案書の様式表計算への書き出し幅、事例、下書き、注意
記録表への追記見込み、提案した賃料、決まった賃料、成約の結果

賃貸管理のシステムの募集賃料の欄には書き込みません。 募集賃料を入れるのは、オーナーが決めた後の担当の作業です。見込みが自動で募集に出てしまう経路を作らないためです。

Step9

人が確認する

担当が、オーナーに提案する前に必ず確かめます。

  1. warnings を先に見る … 事例が古い、少ない、属性が範囲外。当てはまるときは、幅を参考にとどめ、担当が別の材料を足します
  2. 事例を1件ずつ見る … 同じ建物の事例か、向きや階が大きく違わないか。根拠として見せたくない事例(特殊な事情で決まったもの)は外して、次に近い事例に差し替えます
  3. 部屋の事情を書き足す … リフォーム、眺望、騒音、周辺の変化など、台帳に無いことを書きます
  4. 提案する賃料の案を決める … 幅の中のどこに置くかを、事情と前回の賃料を見て決めます
  5. 下書きの文を直す … オーナーとのこれまでのやり取りに合わせて言い回しを整えます

4番目で幅の外に出すときは、理由を書きます。 「リフォーム済みで上に5千円」のような理由が残っていれば、成約の結果が出たときに、その判断が当たったかを確かめられます。

Step10

例外に対処する

起きること対応
同じ駅・沿線に成約の事例が5件無い近い順に出せるだけ出し、warnings に件数を書く
属性が学習の範囲の外(極端に広い、築浅すぎる)幅を出したうえで「範囲外」と示し、担当が個別に調べる
台帳の属性が空欄欠損のまま予測する。事例の選定では、その属性を除いて近さを測る
下書きにJSONに無い数字が入る下書きを使わず、担当に知らせる
新築の建物で、その建物の成約が1件も無い近い築年数の建物の事例を出し、新築である旨を warnings に書く
生成AIが応答しない幅と事例だけで提案の材料を作る
相場が急に動いた(大きな開発、災害)モデルの作り直しを待たず、担当が幅を参考扱いにする
処理が止まる前日の材料を残したまま、担当に知らせる

2行目と5行目が、幅をいちばん信用してはいけない場面です。 学習のデータに似た部屋が無いと、モデルは近くの条件から引き延ばした値を出します。数字は出ますが、根拠は薄くなります。

Step11

記録を残す

  • 部屋ごとの見込み(下・中・上)と、選んだ事例5件、使ったモデルの版
  • 担当が外した事例と、その理由、書き足した事情
  • 提案した賃料、オーナーが決めた賃料、決めた日
  • 成約の賃料と、募集から成約までの日数
  • 見込みの幅に入った割合(毎月、駅・間取りごと)

3つ目と4つ目がそろうと、提案の仕方の振り返りができます。 幅の上で出して長引いた部屋、中ほどで出してすぐ決まった部屋が並ぶので、オーナーへの次の提案で「前回はこうでした」と示せます。

04実装レベルの3段階

最小構成:過去の成約で予測を作り、伏せた3か月で当て比べる / 幅の確かさの確認
半自動化:上記+担当が部屋を指定すると、幅と近い事例5件を表に出す / 幅の予測と事例の選定
本格構成:上記+毎朝、登録された部屋を自動で処理し、説明の下書きと提案書の材料、成約後の見込みとの差まで出す / 提案の材料づくりと振り返り

最小構成では、提案には使いません。 幅が当たるかを確かめる段階です。 半自動化で、1件24分が13分程度になります。 事例を探す作業は無くなりますが、担当が部屋を指定して動かし、結果を提案書に書き写す作業が残ります。本格構成で8分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化を2か月回すと、担当が外した事例の理由がたまります。「根拠に見せたくない事例」の傾向が分かれば、事例の選び方の条件に足せます。 たとえば「1階の事例は2階以上の部屋の根拠にしない」「角部屋は角部屋どうしで比べる」のような条件は、担当の外し方からしか見えてきません。本格構成の事例の選び方は、この2か月の記録から作ります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
6 名
月間件数
150 件
1件あたり現在時間
24 分
1件あたり導入後時間
8 分
現在  150件 × 24分 ÷ 60 = 60 時間/月
導入後 150件 × 8分 ÷ 60 = 20 時間/月
月間削減時間
40h
削減率
67%
年間削減時間
480h
年間金額換算(時間単価3,000円)
144万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 賃貸住宅を数千戸規模で管理し、退去後の再募集と新しく管理を受ける部屋の賃料の提案を毎月百件以上行う賃貸管理会社。募集賃料を担当者が過去の成約や募集サイトを見て決めていて、担当によって提案の根拠の示し方が違う場合。自社の成約の記録(賃料・成約日・物件の属性・募集期間)が3年分以上、表の形で残っている場合。
向いていない
  1. 管理戸数が数百戸で、担当者が物件と相場を頭に入れている場合。成約の記録が紙の契約書にしか残っておらず、属性を表に起こせない場合。事業用の店舗・事務所が中心で、1件ごとに条件が大きく違う場合。なお、募集賃料を決めるのはオーナーで、その提案の妥当性の判断は、この構成では代替できません。

07最小構成で試す方法

  1. 過去3年分の成約記録を、賃貸管理のシステムから表に出力する
  2. 担当に見てもらい、社宅の一括の契約など、相場で決まっていない成約に印を付ける
  3. 直近3か月の成約を伏せ、それより前の記録で Python の予測を作る
  4. 伏せた3か月の部屋について、見込みの幅と近い事例5件を出し、実際に決まった賃料と比べる
  5. 同じ部屋について、当時の担当が提案した賃料とも比べる

比べたいのは、幅に入った割合と、担当の提案との違いです。 幅に6割前後が入り、担当の提案が幅の外にあった部屋で、空室が長引いていないかを見ます。

出てきた内容判断
幅に6割前後が入る事例の選定と提案書への書き出しに進む
幅に入る割合が極端に低い賃料の揃え方(共益費、フリーレント)を見直す。構成は有効
事例が遠い部屋ばかり選ばれる尺度の揃え方と、駅・沿線の絞り込みを直す

2行目は、たいてい前処理の問題です。 共益費を含めた記録と含めない記録が混ざっていると、それだけで幅が外れます。手法を変える前に、外れた部屋の記録を10件ほど開いて、賃料の欄の中身を確かめてください。

08実装時につまずきやすいポイント

問題対策
共益費やフリーレントの扱いが混ざる賃料+共益費の合計と、実質の月額の列に揃える
今の築年数で学習して古い成約が割安に見える成約日の時点の築年数で学習する
社宅などの特殊な成約が相場に混ざる担当に印を付けてもらい、学習から外す
駅から遠いほど高いような逆転が出るmonotonic_cst で向きを決める
遠い事例が根拠に選ばれる同じ駅・沿線に限り、尺度を揃えて近さを測る
古い事例しか無いのに黙って出すwarnings に書き、担当に知らせる
生成AIが丸めた数字を書くJSONに無い数字を照合で止める
募集サイトの賃料を学習に混ぜる学習は成約だけにする
幅の確かさを測らない毎月、幅に入った割合を駅・間取りごとに数える
見込みが募集に直接出る募集賃料の欄には書き込まない
担当の事情の書き足しが残らない提案書の欄を必須にし、記録に残す
相場の急な動きを見逃す毎月作り直し、急な変化の時期は参考扱いにする
面積の差だけが効いて事例が偏る尺度の伸び縮みを担当と決め、外した事例の理由で直す
繁忙期と閑散期の成約が同じ扱いになる成約の月を列に入れ、事例にも成約の月を表示する

上の3行が、この構成の失敗のほとんどです。 どれも、予測の手法ではなく成約記録の揃え方から起きます。手法を工夫するより、記録を揃えるほうが幅は当たるようになります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 物件と部屋の属性、過去の成約の賃料・成約日・条件、オーナーへの提案の内容です。入居者の氏名など個人の情報は、予測の処理に持ち込みません。

  1. 成約の記録は自社の営業の情報として扱う … 成約の賃料と条件は、オーナーと入居者との契約の内容です。予測は社内の環境で行い、生成AIに渡すのは事例の年月・面積・築年数・賃料・日数だけにします
  2. 生成AIに部屋を特定できる情報を渡さない … 部屋番号や建物名は事例のJSONから外し、提案書に載せるときに担当が付けます
  3. 事例をオーナーに見せる範囲を決める … 同じ建物の別の部屋の成約賃料を、その建物のオーナー以外に見せてよいか。管理委託の契約と社内の取り決めに照らして、見せ方を決めてください
  4. 決めるのはオーナーだという線を守る … この構成が出すのは、幅と事例と説明の下書きまでです。提案する賃料は担当が、募集賃料はオーナーが決めます
  5. 見込みを入居希望者向けの説明に流用しない … 見込みはオーナーへの提案の材料です。募集の広告や入居希望者への説明に、見込みの数字や事例をそのまま使わないでください
  6. モデルの作り直しを記録する … いつ、どの期間の成約で作ったモデルの見込みかを残します。オーナーから「前回の提案と考え方が変わった」と言われたときに、説明の手がかりになります

誤りが起きた場合のリスクは、高すぎる提案で空室が長引くことと、安すぎる提案でオーナーの収入を減らすことの2つです。 どちらも、幅のどこに置くかを担当とオーナーが決め、成約の結果と見込みの差を毎回残すことで、次の提案で直せます。

10まず何から始めるか

1週目:成約記録を出力して揃え方を決める

過去3年分の成約記録を出力し、賃料に共益費を含めるか、フリーレントをどう差し引くかを決めて列を揃えます。

2週目:特殊な成約に印を付ける

担当に記録を見てもらい、社宅の一括の契約や身内の契約など、相場で決まっていない成約に印を付けます。

3週目:伏せた3か月で当て比べる

直近3か月を伏せて予測を作り、幅に入った割合と、近い事例の選ばれ方を確かめます。当時の担当の提案とも比べます。

4週目:提案書の様式に欄を足す

幅、事例5件、warnings、担当の書き足しの欄を提案書の様式に足します。この時点では担当が部屋を指定して動かし、提案書に書き出すところまでにします。

2か月目: 半自動化で使い始め、担当が外した事例とその理由を集めます。3か月目以降: 毎朝の自動の処理と、説明の文の下書き、成約後の見込みとの差を足し、1件24分が何分になったかを実測します。幅に入った割合が駅・間取りごとに6割前後で落ち着いた時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-07/最終更新:2026-10-07
確認した内容情報源確認日
loss="quantile" で推定する分位点を quantile に0から1で指定すること。欠損値(NaN)をそのまま扱えること。monotonic_cst で特徴量ごとに単調増加(1)・制約なし(0)・単調減少(-1)を指定できること。categorical_features で区分の特徴量を指定できることscikit-learn: HistGradientBoostingRegressor2026-10-07
近傍の探索を行う教師なしの学習器であること。n_neighbors の既定が5であること。kneighbors が近い点までの距離と点の番号を返すことscikit-learn: NearestNeighbors2026-10-07
分位点回帰のモデルの評価に使う指標で、alpha で分位点を指定することscikit-learn: mean_pinball_loss2026-10-07
訓練のデータが常にテストのデータより前になるように分けることscikit-learn: TimeSeriesSplit2026-10-07
output_config.format に type: "json_schema" とスキーマを指定すると、スキーマに沿った有効な JSON が返ること。additionalProperties: false が必要なことClaude: Structured outputs2026-10-07

募集賃料を決めるのはオーナーです。提案の考え方と事例の見せ方は、管理委託の契約と社内の取り決めに照らして決めてください。 本記事は公開されている仕様で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0737)についてのご相談はこちらから。

AI活用について相談する
目次