海外の賃貸物件の管理会社から毎月届く英文のレントロールを読み取り、区画ごとの賃料・滞納・空室を物件台帳と照らして、送金額との差を拾う
海外の賃貸物件の管理会社から毎月届く英文のレントロールと収支報告を読み取り、区画ごとの賃料・入居の状態・滞納を自社の物件台帳と照らします。報告上の送金額と実際の入金額の差も拾い、照会の下書きとあわせて担当者に回します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 不動産/保険/商社/金融
- 対象部門
- 経理/財務
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/判断支援/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 管理会社からのメールを開き、物件ごとのレントロールと収支報告のPDFを共有フォルダに保存する
- レントロールを1ページずつ見て、区画ごとの賃料・入居の状態・滞納の額を物件台帳のシートへ写す
- 台帳の賃貸借の条件(月額賃料・契約期間・改定の予定)と比べ、違う区画に印を付ける
- 収支報告の回収額・管理手数料・経費・送金額を電卓で確かめる
- 銀行の入金明細で、実際に入った額と収支報告の送金額を比べる
- 食い違いがあれば、管理会社へ英文のメールで照会する
- 回答を待ち、会計システムへの計上の材料にする
- 人担当者が、届いたPDFを物件ごとの保存場所(Amazon S3)に置く(メールの自動の振り分けで置いてもよい)
- 自動保存をきっかけに AWS Lambda が動き、AWS Textract の非同期の文書分析を始める
- 自動完了の通知を受けて、表のセルと、送金額などの問いへの答えを取り出す
- 自動プログラムが、管理会社ごとの列の対応表で、表を区画ごとの行にそろえる。対応表に無い見出しが出たときだけ、Claude API が対応づけの案を出す
- 自動プログラムが、区画ごとの賃料を台帳の条件と、入居の状態と滞納を前月と比べる
- 自動プログラムが、収支報告の内訳を計算し直し、銀行の入金明細の額と比べる
- 自動Claude API が、食い違いごとに理由の候補を書き、管理会社への英文の照会の下書きを作る
- 人担当者が、食い違いの出た区画と送金額の差だけを、PDFの該当箇所と見比べて確かめる
- 人照会の下書きを直して管理会社へ送り、台帳の更新を決める
各工程の詳しい説明を読む
- 管理会社からのメールを開き、物件ごとのレントロールと収支報告のPDFを共有フォルダに保存する
- レントロールを1ページずつ見て、区画ごとの賃料・入居の状態・滞納の額を物件台帳のシートへ写す
- 台帳の賃貸借の条件(月額賃料・契約期間・改定の予定)と比べ、違う区画に印を付ける
- 収支報告の回収額・管理手数料・経費・送金額を電卓で確かめる
- 銀行の入金明細で、実際に入った額と収支報告の送金額を比べる
- 食い違いがあれば、管理会社へ英文のメールで照会する
- 回答を待ち、会計システムへの計上の材料にする
(a)写す作業に時間を取られる。 100区画のレントロールなら、区画番号・賃借人・賃料・滞納を100行写します。写し終えた時点で、確かめる時間がほとんど残っていません。 40物件のうち、区画の多い数物件だけで1日が終わります。
(b)列の意味が管理会社ごとに違う。 Market Rent は募集賃料で、実際の契約の賃料は Lease Rent の列にある、という書式があります。取り違えると、全区画で賃料が違うという結果になります。 新しい担当者が最初につまずくのがここです。
(c)退去と入居の反映が遅れる。 月末に退去した区画が翌月も入居中のまま、ということが起きます。比較を急ぐと、状態の変化を見落とします。
(d)送金額の差の理由が分からないまま月末になる。 修繕の請求が翌月にずれて載ることがあり、内訳を前月と並べないと、ずれか誤りかが判断できません。 照会が遅れ、回答が締めに間に合わない月があります。
- 【人】 担当者が、届いたPDFを物件ごとの保存場所(Amazon S3)に置く(メールの自動の振り分けで置いてもよい)
- 【自動】 保存をきっかけに AWS Lambda が動き、AWS Textract の非同期の文書分析を始める
- 【自動】 完了の通知を受けて、表のセルと、送金額などの問いへの答えを取り出す
- 【自動】 プログラムが、管理会社ごとの列の対応表で、表を区画ごとの行にそろえる。対応表に無い見出しが出たときだけ、Claude API が対応づけの案を出す
- 【自動】 プログラムが、区画ごとの賃料を台帳の条件と、入居の状態と滞納を前月と比べる
- 【自動】 プログラムが、収支報告の内訳を計算し直し、銀行の入金明細の額と比べる
- 【自動】 Claude API が、食い違いごとに理由の候補を書き、管理会社への英文の照会の下書きを作る
- 【人】 担当者が、食い違いの出た区画と送金額の差だけを、PDFの該当箇所と見比べて確かめる
- 【人】 照会の下書きを直して管理会社へ送り、台帳の更新を決める
4番目が、この設計の分かれ目です。 列の見出しの対応づけを毎回AIに任せると、同じ書式でも月によって Market Rent を賃料と読んだり読まなかったりします。対応表は管理会社ごとに一度決めて人が承認し、以後はプログラムがその表で読みます。 AIが動くのは、書式が変わったときだけです。
5番目と6番目で数字を扱うのはプログラムです。 AIは、プログラムが出した差の一覧に言葉を付けるだけです。
02今回想定するシステム構成
管理会社のレントロールと収支報告(英文のPDF。5社・40物件) │ 担当者が物件ごとの場所へ保存 ▼【トリガー】Amazon S3 への保存 AWS Lambda ── StartDocumentAnalysis(FeatureTypes:TABLES、QUERIES) ▼ AWS Textract(非同期の文書分析) │ 完了の通知(Amazon SNS) ▼ AWS Lambda ── GetDocumentAnalysis(NextToken で結果を送る) ├──▶ Python:CELL から表を組み立て、列の対応表で区画ごとの行にそろえる ├──▶ Claude API:対応表に無い見出しが出たときだけ、対応づけの案(承認待ち) ├──▶ Python:台帳の条件・前月の状態との比較、送金額の計算し直しと入金との照合 └──▶ Claude API:食い違いの理由の候補と、照会の英文の下書き ▼ 食い違いの一覧(担当者が確認) ▼ 管理会社への照会(担当者が送る)/物件台帳の更新/経理へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis。TABLES と QUERIES) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(列の見出しの対応づけの案、理由の候補、照会の英文の下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(表の組み立て、台帳・前月・入金との照合、送金額の計算し直し) | 不動産の管理システムの照合の機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | AWS Step Functions |
| 保管 | Amazon S3(報告の原本、読み取り結果、照合の結果、確認の記録) | 社内のファイルサーバー |
土台は、AWS Textract の非同期の文書分析です。 レントロールは複数ページのPDFなので、同期の処理(PDFは1ページまで)ではなく、非同期の StartDocumentAnalysis を使います。 非同期ではPDFが500MB・3,000ページまでとされています。
Textract を選べるのは、報告が英文だからです。 公式の対応言語は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語で、日本語は読めません。米国・英国・豪州の管理会社の報告は英文なので、この範囲に入ります。表の読み取りでは、セルごとに行と列の位置が返り、列の見出しや合計のセルには種類が付きます。 管理会社ごとに違う書式でも、見出しの行と合計の行を機械的に見分けられます。
物件台帳と会計システムには、この構成から書き込みません。 照合の結果は一覧として担当者に返し、台帳を直すかどうかは担当者が決めます。
03どうやって実装するのか
処理の起点を決める
物件ごとの保存場所にPDFが置かれたことを起点にします。 保存場所は s3://overseas-pm-reports/<管理会社コード>/<物件コード>/<年月>/ のように分け、場所から管理会社と物件を決めます。 ファイル名の付け方は管理会社ごとに違うためです。
レントロールと収支報告は、同じ物件・同じ月の場所に置かれた2つのファイルを1組として扱います。片方だけが届いた段階では読み取りまで進め、照合は2つがそろってから行います。 月の15日を過ぎてもそろわない物件は、未着の一覧に出します。
非同期の処理を始めるときは、物件コードと年月から作った値を ClientRequestToken に入れます。 同じ値で始めると同じジョブの識別子が返るので、保存の通知が二重に届いても、同じ報告を2回読み取ることがありません。JobTag には管理会社コードを入れ、完了の通知から書式を引けるようにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| レントロール | 区画番号、賃借人、契約の開始・終了日、月額賃料、共益費などの請求、滞納の額(経過日数ごとの場合あり)、入居の状態 | 管理会社のPDF |
| 収支報告 | 対象の期間、回収額、管理手数料、経費の内訳、前月からの繰越、送金額 | 管理会社のPDF |
| 物件台帳 | 区画ごとの賃貸借の条件(月額賃料、契約期間、改定の予定日と改定後の額)、前月の入居の状態と滞納の額 | 自社のスプレッドシート |
| 管理委託の条件 | 管理手数料の率と計算の基準(回収額か請求額か)、経費の承認の上限 | 管理委託契約から起こした一覧 |
| 入金明細 | 管理会社からの入金の日付・額・通貨 | 銀行の入金明細の書き出し |
| 列の対応表 | 管理会社ごとに、どの見出しを自社のどの項目として読むか | 自社で作り、人が承認したもの |
質を決めるのは、下の3つです。 台帳に改定の予定が無ければ、改定後の賃料が「食い違い」になります。列の対応表は管理会社ごとに1枚で、書式が変わったときにその1枚を直します。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 表のセル | BlockType が CELL のブロック(RowIndex・ColumnIndex・Confidence) | 区画ごとの行の組み立て |
| 列の見出し | EntityTypes に COLUMN_HEADER が付いたセル | 列の対応表との照合 |
| 合計の行 | EntityTypes に TABLE_SUMMARY が付いたセル | 区画の合計と報告の合計の突き合わせ |
| 結合されたセル | MERGED_CELL のブロック | 物件名や区分の見出しが複数列にまたがる場合の処理 |
| 送金額などの単独の値 | QUERY と QUERY_RESULT のブロック | 収支報告の期間・回収額・手数料・送金額 |
表の値は、セルの Confidence と一緒に取り出し、信頼度の低いセルには照合の前に unreadable の印を付けます。
収支報告の送金額のような単独の値は、問い(クエリ)で取ります。 次のように、問いの文と別名を渡します。
{
"DocumentLocation": { "S3Object": { "Bucket": "overseas-pm-reports",
"Name": "PM03/US-AUS-012/2026-09/owner_statement.pdf" } },
"FeatureTypes": ["TABLES", "QUERIES"],
"ClientRequestToken": "US-AUS-012-2026-09-os",
"JobTag": "PM03",
"NotificationChannel": { "SNSTopicArn": "arn:aws:sns:...:textract-done",
"RoleArn": "arn:aws:iam::...:role/textract-sns" },
"QueriesConfig": { "Queries": [
{ "Text": "What is the statement period?", "Alias": "PERIOD" },
{ "Text": "What is the total cash received?", "Alias": "CASH_RECEIVED" },
{ "Text": "What is the management fee?", "Alias": "MGMT_FEE" },
{ "Text": "What is the owner distribution amount?", "Alias": "DISTRIBUTION" }
] }
}
問いの答えが見つからないときは、答えの欄が空で返ります。 表の合計の行から同じ値を探し、無ければ人に回します。問いは英語の文書でだけ使えます。
結果は GetDocumentAnalysis で取り、1回に返るブロックは最大1,000件です。NextToken が返る間は呼び続け、全ページの結果がそろってから表を組み立てます。 JobStatus が PARTIAL_SUCCESS のときは、Warnings に出たページを人に回します。
AIへ渡す前に整形する
- 形式の確認 … PDF・JPEG・PNG・TIFF であることを確かめます。パスワードで保護されたPDFは扱えないので、管理会社に保護なしで送ってもらいます
- ページの向きと文字の大きさ … 文字の高さの下限は15ピクセル(150DPIで約8ポイント)です。スキャンの粗い報告は、管理会社に元のPDFを頼みます
- 表の組み立て …
CELLをRowIndex・ColumnIndexで並べ、COLUMN_HEADERの行を見出しにします - ページをまたぐ表のつなぎ … 表はページごとに返るので、同じ見出しの並びを持つ表を、ページの順につなぐ処理を自分で書きます。 2ページ目以降に見出しが無い書式は、前のページの見出しを引き継ぎます
- 列の対応づけ … 管理会社の対応表で、見出しを
unit_id、tenant、lease_rent、charges、balance_due、statusなどの自社の項目に当てます - 数の読み替え …
(1,250.00)のような括弧の負の数、通貨の記号、-だけのセルを数に直します。読み替えた元の文字列は残します - 合計の確かめ … 区画の行を足した額と、
TABLE_SUMMARYの行の額が合うかを確かめます。合わないときは、行の読み落としを疑い、その物件は照合に進めず人に回します - 区画番号のそろえ …
Unit 101、#101、101を同じ区画として扱う規則を、物件ごとに決めます
7番目が、読み取りの誤りを見つけるいちばん確かな方法です。 合わないまま照合に進むと、読み落とした区画が「台帳に有るのに報告に無い」と出て、管理会社へ見当違いの照会をすることになります。
AIに処理させる
させるのは3つです。対応表に無い見出しの対応づけの案、食い違いの理由の候補の言葉づけ、照会の英文の下書きです。
| させること | 中身 |
|---|---|
| 見出しの対応づけの案 | 書式が変わって対応表に無い見出しが出たとき、自社のどの項目に当たるかの案と理由 |
| 理由の候補 | プログラムが出した食い違い(賃料・状態・滞納・送金額)ごとに、考えられる理由を挙げる |
| 照会の下書き | 管理会社への英文のメール。区画番号と額、確かめたい点を並べる |
| させないこと | 理由 |
|---|---|
| 金額の計算・差の算出 | プログラムが計算する。AIに足させると、もっともらしい合計を書く |
| 見出しの対応の確定 | 人が承認してから対応表に入れる |
| 読めなかった値の補完 | 前月の値や台帳の値で埋めると、変化が消える |
| 食い違いの結論 | 管理会社の誤りか、台帳の更新漏れかは人が確かめる |
| 照会の送信 | 下書きまで。送るのは担当者 |
3行目がいちばん起きやすい失敗です。 読めない賃料を台帳の額で埋めて「一致」とすると、本当に賃料が変わっていた区画を見落とします。
プログラムが出す食い違いの種類は、次のとおりです。
| 種類 | プログラムが見ること |
|---|---|
rent_mismatch | 報告の賃料が、台帳の月額賃料と違う(改定の予定日を過ぎていれば改定後の額と比べる) |
status_change | 入居・空室の状態が前月と変わった。台帳に退去や新しい契約の記録が無い |
arrears_increase | 滞納の額が前月より増えた。経過日数の区分が進んだ |
unit_missing | 台帳に有る区画が報告に無い、または報告に有る区画が台帳に無い |
fee_mismatch | 管理手数料が、委託の条件の率と計算の基準で計算し直した額と違う |
distribution_gap | 収支報告の送金額と、実際の入金額が違う |
指示内容を固定する
食い違いの理由の候補と照会の下書きを作るときの指示です。
あなたは不動産会社の財務部で、海外の物件の管理会社から届いた
月次の報告と、自社の台帳の食い違いを整理する立場です。
食い違いの一覧はプログラムが計算したものです。数字はそのまま使ってください。
【やること】
1. 食い違いの一覧を1件ずつ読み、考えられる理由の候補を挙げてください。
候補は「台帳の更新漏れ」「報告の反映の遅れ」「計上の時期のずれ」
「為替・送金の手数料」「報告の誤り」「読み取りの誤り」から選び、
当てはまる根拠を一覧の項目から書いてください。
2. 管理会社に確かめるべき食い違いだけを選び、英文の照会のメールを書いてください。
区画番号、報告の額、自社の台帳の額、確かめたい点を並べてください。
【厳守事項】
- 金額を自分で計算しないでください。一覧に書かれた差の額だけを使ってください。
- 一覧に無い区画や額を書かないでください。
- status が unreadable の値は「読み取れなかった」と書き、推測で埋めないでください。
読み取りの誤りが疑われる食い違いは、照会に入れず担当者の確認に回してください。
- 管理会社の誤りと断定しないでください。照会は確認を依頼する書き方にしてください。
- 賃借人の個人名を照会の本文に書かないでください。区画番号で示してください。
- 賃借人への対応(督促・退去の手続き)について提案しないでください。
【物件と期間】{property} {period}
【食い違いの一覧】{discrepancies}
【前月の状態】{prior_month}
【管理委託の条件】{agreement_terms}
「金額を自分で計算しない」を明記しないと、差の額を足し合わせて「合計でいくらの不足」と書きます。 その合計が一覧の値と合っているとは限りません。数字はプログラムの出したものだけを、そのまま写させます。
「読み取りの誤りが疑われるものは照会に入れない」も同じくらい大事です。 入れると、自社の読み取りの誤りを管理会社に確かめさせることになります。
対応表に無い見出しが出たときの指示は別に持ち、「Market Rent と Lease Rent が分かれていれば契約の額を lease_rent に。当たるものが無ければ unmapped」のように、取り違えやすい組を書いておきます。
出力形式を固定する
Claude API の構造化出力で、次の形のJSONを受け取ります。
{
"property_code": "US-AUS-012",
"period": "2026-09",
"discrepancies": [
{
"id": "D-001",
"type": "rent_mismatch | status_change | arrears_increase | unit_missing | fee_mismatch | distribution_gap",
"unit_id": "204",
"reported": "1850.00",
"ledger": "1795.00",
"difference": "55.00",
"reason_candidates": [
{ "reason": "ledger_not_updated | report_lag | timing | fx_or_bank_fee | report_error | ocr_error",
"basis": "" }
],
"include_in_inquiry": true
}
],
"inquiry_draft": { "subject": "", "body": "" },
"for_internal_review": []
}
1つ目の理由は、reported・ledger・difference をプログラムの値と照らせることです。 1文字でも違えば、その食い違いは表示しません。
2つ目は、include_in_inquiry と for_internal_review で行き先を分けられることです。 管理会社に聞くものと、社内で確かめるもの(読み取りの誤りが疑われるもの、台帳の更新漏れが疑われるもの)が混ざらずに出ます。
構造化出力は、output_config.format に JSON スキーマを渡して使います。Amazon Bedrock 経由の Claude では使える範囲が限られるため、この構成では Claude API を直接呼びます。応答が refusal や max_tokens で終わったときはスキーマに合わないことがあるので、受け付けずにやり直します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Amazon S3 | 保存の通知で Lambda を起動 | 報告の受け取りと、読み取り結果・照合の結果の保存 |
| AWS Textract | StartDocumentAnalysis/GetDocumentAnalysis | 表のセルと問いの答え |
| Amazon SNS | 完了の通知 | 結果の取り出しを始める |
| 物件台帳 | スプレッドシートの読み取り | 区画ごとの条件と前月の状態 |
| 銀行の入金明細 | 毎朝の書き出しを S3 に置く | 管理会社からの入金の額と日付 |
| Claude API | Messages API の構造化出力 | 見出しの対応づけの案、理由の候補、照会の下書き |
| 確認の画面 | 社内のWeb画面か共有のシート | 食い違いの一覧と、PDFの該当箇所の表示 |
物件台帳は読み取りだけです。 担当者が確かめて「台帳の更新漏れ」と決めたものだけ、担当者が台帳を直します。この構成が台帳を書き換えると、管理会社の報告の誤りが台帳に入ってしまいます。 確認の画面では、Textract が返したセルの位置(Geometry)をもとに、PDFの該当箇所を枠で示します。
人が確認する
- 合計が合わなかった物件を先に見る … 区画の合計と報告の合計が合わない物件は、照合に進んでいません。読み落としの行をPDFで探します
unreadableの値を確かめる … 信頼度の低いセルを、PDFで目で読みます- 食い違いをPDFと見比べる … 枠で示された箇所を見て、報告の値と台帳の値を確かめます
- 行き先を決める … 管理会社への照会、台帳の更新、経理への連絡のどれにするかを決めます
- 照会の下書きを直して送る … 送るのは担当者です
- 見出しの対応づけの案を承認する … 書式が変わった月だけ、案を確かめて対応表に入れます
1番目を省かないでください。 合計が合わない物件の照合結果は、食い違いの多くが読み取りの問題です。
目標は、40件をならして1件30分です。 食い違いの無い物件は一覧を流し見て数分、区画の多い物件や書式が変わった物件は1時間近くかかる見込みです。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワードで保護されたPDF | 扱えない。管理会社に保護なしで送ってもらう |
| 文字が小さすぎる・スキャンが粗い | 下限は15ピクセル。元のPDFを頼む |
| 区画の合計と報告の合計が合わない | 照合に進めず、物件ごと人に回す |
| 問いの答えが空 | 表の合計の行から探し、無ければ人に回す |
JobStatus が PARTIAL_SUCCESS・FAILED | Warnings のページを人に回す。失敗は同じ ClientRequestToken で再実行 |
| 対応表に無い見出し | Claude API の案を出し、承認されるまでその物件の照合を止める |
| レントロールか収支報告の片方しか届かない | 読み取りまで進め、15日を過ぎたら未着の一覧に出す |
| 英語以外の報告が混ざる | 問いは使えない。表の読み取りだけにし、対応表を別に作る |
| 送金が月をまたいで届く | 入金明細を前後の月まで見て照合する |
上から3行目が、運用でいちばん多く起きます。 直すのはAIではなく前処理の規則です。
記録を残す
- 報告の原本(PDF)と、受け取った日時
- Textract のジョブの識別子と、
GetDocumentAnalysisの結果の全文(ジョブの識別子は7日間しか有効でないので、結果はその場で S3 に残す) - 組み立てた区画ごとの表と、そのとき使った列の対応表の版
- 照合の結果(食い違いの一覧)と、そのとき参照した台帳の内容
- Claude API の出力と、指示の版
- 担当者が決めた行き先(照会・台帳の更新・経理)と、管理会社からの回答
- 見出しの対応づけを承認した記録
台帳の内容を照合のときの状態で残すのは、台帳が後から直されるためです。 「9月の時点では台帳が古かった」ことが分からないと、その月の食い違いが誰の側の問題だったかを説明できません。
04実装レベルの3段階
半自動化で、1件90分が45分程度になります。 写す作業はほぼ無くなりますが、送金額の内訳の確かめと照会のメールが手作業で残ります。本格構成で30分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で2〜3か月回すと、合計が合わない書式と取り違えていた列が分かります。そこを直してから送金額の照合を足します。
05工数削減シミュレーション
導入後 40件 × 30分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 米国・英国・豪州などに賃貸用の集合住宅・オフィス・商業施設を持ち、現地の管理会社に運営を任せている不動産会社・商社・保険会社・資産管理会社の財務部門。物件ごとのレントロールと収支報告が毎月英文のPDFで届き、担当者が区画ごとの賃料と滞納を物件台帳へ手で写して、送金額の内訳を確かめている場合。管理会社によって報告の書式が違い、どこを見るかが担当者の経験に頼っている場合。
- 管理会社の管理システムから区画ごとのデータを CSV や API で受け取れる場合(読み取りは要らず、データをそのまま照らせば足ります)。海外の物件が数件で、目視で足りる場合。報告が英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語以外で届く場合(この構成で使う読み取りのサービスが対応していません)。なお、管理会社へ是正を求めるか、滞納の賃借人にどう対応するか、会計上どう処理するかは、財務と現地の担当の責任者が決めます。この構成は食い違いの候補を挙げるまでです。
07最小構成で試す方法
- 先月届いた報告から、管理会社ごとに1物件ずつ、5物件のレントロールと収支報告を選ぶ(区画の多い物件を1つ入れる)
- 物件台帳から、その5物件の区画ごとの条件と前月の状態を書き出す
- 手元のAIサービスにPDFと台帳の書き出しを渡し、「レントロールの区画ごとに、賃料・入居の状態・滞納の額を表にしてください。読めない値は空欄にしてください。表の合計の行の値も書いてください」と指示する
- 出てきた表の合計を、報告の合計の行と比べる
- 台帳との違いを、そのとき担当者が見つけた食い違いと比べる
ここで見るのは、AIの照合の腕ではなく、表が読めて合計が合うかどうかです。
| 出てきた内容 | 判断 |
|---|---|
| 表の合計が報告と合い、担当者が見つけた食い違いが出た | Textract とプログラムでの照合に進む |
| 合計が合わない(行の読み落とし) | ページをまたぐ表のつなぎの規則を決めてから進む |
| 募集の賃料を契約の賃料として読んだ | 列の対応表を管理会社ごとに作る。構成は有効 |
3行目が出ることは珍しくありません。 それは失敗ではなく、管理会社ごとに対応表を持つ理由が分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 募集の賃料を契約の賃料として読む | 列の対応表を管理会社ごとに持ち、人が承認する |
| ページをまたぐ表が別々の表になる | 同じ見出しの並びの表を、ページの順につなぐ |
| 区画の合計が報告の合計と合わない | 照合に進めない。行の読み落としを先に直す |
| 読めない値を台帳の値で埋める | 埋めずに unreadable とし、人に回す |
| AIが差の額を足し合わせて書く | 数字はプログラムの値だけ。出力の数字を照らす |
| 改定後の賃料が食い違いとして出る | 台帳に改定の予定日と改定後の額を持たせる |
| 手数料の確かめ方が決まらない | 委託の条件から、率と計算の基準を一覧に起こす |
| 送金額の差が為替の手数料かどうか分からない | 入金明細の額と通貨を持ち、差の区分を残す |
| 結果を取り直せない | ジョブの識別子は7日間。結果はその場で保存する |
| 日本語の資料を同じ仕組みで読もうとする | Textract は日本語を読めない。国内の物件の資料は別の読み取りにする |
上の4行が、この構成の失敗のほとんどです。 どれも「読み取った表が正しいか」を照合の前に確かめているかどうかの問題です。合計の行で確かめ、読めない値は埋めない。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 賃借人の名前、区画ごとの賃料と滞納の額、管理委託の条件、送金の額です。賃借人の個人の情報と、自社の物件の収益の情報が含まれます。
- 生成AIに渡す範囲を絞る … 理由の候補と照会の下書きに、賃借人の名前は要りません。区画番号と額だけを渡し、名前はプログラムの側で外します
- 読み取りの結果を暗号化して保管する … 非同期の処理では、結果の暗号化に使う鍵(
KMSKeyId)を指定できます。報告の原本と結果は、海外資産管理課だけが見られる場所に置きます - 照会を自動で送らない … 出すのは下書きまでです。管理会社との関係に直接ひびき、誤った照会が続くと報告の品質の話し合いがしにくくなります
- 台帳を自動で書き換えない … 報告の誤りが台帳に入ると、翌月からの照合がすべてずれます
- 賃借人への対応をこの構成で決めない … 滞納の増えた区画の扱い(督促・法的な手続き)は、現地の管理会社と現地の法令に沿って、責任者が決めます
- 現地の個人情報の扱いを確かめる … 賃借人の情報を日本で扱うことになるため、現地の法令と管理委託契約での扱いを確かめます
誤りが起きた場合のリスクは、食い違いを見落として誤った送金や手数料をそのままにすることと、自社の読み取りの誤りで管理会社に見当違いの照会をすることの2つです。 前者は台帳の条件の整備で、後者は合計の行での確かめと unreadable の扱いで防ぎます。
10まず何から始めるか
1週目:管理会社ごとの列の対応表を作る
5社のレントロールと収支報告を1つずつ並べ、どの見出しを自社のどの項目として読むかを表にします。担当者が頭の中に持っている「どの列を見るか」を書き出す作業です。 募集の賃料と契約の賃料のように、取り違えやすい列に印を付けます。
2週目:5物件で試す
管理会社ごとに1物件を選び、手元のAIサービスで区画ごとの表を作らせます。表の合計が報告の合計の行と合うかを最優先で見ます。
3週目:物件台帳を整える
区画ごとの条件に、改定の予定日と改定後の額を足します。管理委託契約から、管理手数料の率と計算の基準を一覧に起こします。ここが整っていないと、照合は食い違いだらけになります。
4週目:読み取りと区画の照合をつなぐ
S3 への保存から Textract の非同期の読み取り、表の組み立て、台帳との照合までを作ります。この時点では送金額の照合と照会の下書きを出さず、区画の食い違いだけを見ます。
2か月目: 収支報告の送金額の計算し直しと入金明細との照合を足します。3か月目以降: 理由の候補と照会の下書き、PDFの該当箇所の表示を足し、1件90分が何分になったかを実測します。報告の届いた週のうちに、管理会社への照会が出せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 対応する形式が JPEG・PNG・PDF・TIFF で XFA の形式のPDFは扱えないこと。同期の処理はPDFが1ページまで、非同期の処理はPDFが500MB・3,000ページまでであること。PDFはパスワードで保護できないこと。対応言語が英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語で、問いは英語の文書だけであること。問いが非同期で1ページ30件までであること。文字の高さの下限が15ピクセル(150DPIで8ポイント相当)であること。縦書きに対応しないこと | AWS: Set Quotas in Amazon Textract | 2026-10-14 |
| 表が TABLE、各セルが CELL のブロックで返り、行と列の位置を持つこと。結合されたセルが MERGED_CELL で示されること。表の種類が STRUCTURED_TABLE か SEMI_STRUCTURED_TABLE であること。セルの EntityTypes に TABLE_TITLE・TABLE_FOOTER・TABLE_SECTION_TITLE・COLUMN_HEADER・TABLE_SUMMARY があること | AWS: Tables(Amazon Textract) | 2026-10-14 |
| 問いの答えが QUERY と QUERY_RESULT のブロックで返り、別名と信頼度が付くこと。答えが見つからないときは空で返ること | AWS: Queries(Amazon Textract) | 2026-10-14 |
| StartDocumentAnalysis の FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT があること。文書を S3 に置くこと。完了の状態が SNS に通知されること。ClientRequestToken で同じジョブの二重の開始を防げること。JobTag が通知に含まれること。KMSKeyId で結果を暗号化できること。JobId が7日間だけ有効であること | AWS: StartDocumentAnalysis | 2026-10-14 |
| GetDocumentAnalysis が MaxResults 最大1,000で NextToken により結果を送ること。JobStatus が IN_PROGRESS・SUCCEEDED・FAILED・PARTIAL_SUCCESS であること。Warnings が返ること | AWS: GetDocumentAnalysis | 2026-10-14 |
output_config.format に JSON スキーマを渡すとスキーマに合う JSON が返ること。正式提供の機能であること。Amazon Bedrock では旧来の連携でだけ使え、Claude in Amazon Bedrock では使えないこと。refusal・max_tokens で終わるとスキーマに合わないことがあること | Claude Docs: Structured outputs | 2026-10-14 |
管理会社への是正の求め方、滞納の賃借人への対応、会計上の処理は、財務と現地の担当の責任者が決めてください。 本記事は公開されている製品の仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1434)についてのご相談はこちらから。
