CT-e運送書類300件、月次運送原価台帳に一元化

南東部および中西部で製品を出荷する中堅メーカーが、月に300件のCT-e書類を処理するケースを考えてみましょう。担当者は各DACTEの印刷物やPDFを開き、運送業者のCNPJ、サービス料金(Valor do Serviço)、総重量、ICMS額、発地と着地の市区町村を確認し、それら12項目をスプレッドシートの各行に入力します。経験豊富な担当者でも1件あたり90秒かかるため、月に7.5時間もの純粋なデータ入力作業が発生します。さらに、入力ミスの発見、税率の確認、請求ポータルではなくメールで届いた添付ファイルの検索、対応する購買請求書との運送費照合なども加われば、月次の運送費シート作成は誰も引き受けたがらない2~3日がかりの業務になります。しかし、そうである必要はありません。

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す
登録不要 · カード不要 · 10秒で結果
ブラジルのCT-e運送書類を一括処理し、月次運送原価台帳スプレッドシートに変換する様子

重要ポイント

  1. 担当者が月300件のCT-e書類を手入力したスプレッドシートは一見完成しているように見えても、列の欠落や記憶による推定値の混入など、見えない穴が存在する。
  2. 一括抽出では、列セットを一度定義して全300件に適用するため、すべての行が同一構造であることが保証され、データのばらつきが生じない。
  3. 真の効率化は計算列にある。1kgあたりの運送費や実効ICMS率などを抽出時に自動計算できるため、後から数式を1つも入力する必要がない。

ブラジル貨物コスト追跡におけるバッチ処理のギャップ

バッチ処理と手動入力には、速度以外に見過ごされがちな違いがあります。それは一貫性です。アナリストが300件のCT-e文書を1件ずつ手入力する場合、入力する列のセットは作業の進行に伴って変化します。最初の50件には「備考」列があっても、時間がかかりすぎるため120件目には削除されます。ICMS税率は最初のバッチでは正確に記録されますが、最後の方では記憶を頼りに推定されます。その結果、一部の行にしかデータがないスプレッドシートができあがり、アナリスト自身も後になってどの行が完全でどの行が不完全かを説明できなくなります。

バッチ抽出 — 300件すべてのDACTE印刷物を同じ列定義で処理する — ことで、出力のすべての行が同一のデータ構造を持つことが保証されます。同じ運送業者CNPJ、サービス料金、ICMS額、総重量、ルートフィールドが、バッチ内のすべての文書から抽出されます。最初に一度定義した列セットは、すべての文書に適用されます。手動とバッチの違いは、節約できる時間ではありません。手動入力の出力は、すべてを再入力しなければ測定できない方法で信頼性が損なわれているという点です。

各CT-eに含まれる内容と、ほとんどの物流チームがDACTE印刷物を情報源として使用する理由の詳細については、CT-eデータ抽出をExcelにエクスポートするガイドをご覧ください。このガイドでは、文書上のすべての主要フィールドを網羅しています。本記事は、その基本的な抽出ワークフローを基に、バッチ規模の処理における特定の課題に対処します。

バッチ処理の違い: 手動入力では一見完全に見えるものの、隠れたギャップがあるスプレッドシートが生成されます。バッチ抽出では、すべての行が構造的に同一であり、フィールドが見つからなかった場合もすぐにわかるスプレッドシートが生成されます。

適切なCT-e貨物コスト元帳に本当に必要なもの

バッチワークフローを構築する前に、列セットは貨物コスト元帳が果たす3つの機能をサポートする必要があります。すなわち、出荷ごとの支払額の追跡、運送業者間およびルート間の料金比較、そして入荷貨物に関する税額控除回収に必要なICMSデータの提供です。これらの3つの目的は、データ構造に異なる要件を課します。

最小限の実用的なCT-eコスト元帳には、以下のフィールドグループが含まれます。

フィールドグループ原価台帳における目的
文書識別子アクセスキー(Chave de Acesso、44桁)、CT-e番号、シリーズ、発行日NF-e、ERP転記、SEFAZ検証と連携するための主キー
当事者識別子運送業者のCNPJと名称、送り主のCNPJ、荷受人(consignee)のCNPJ運送業者、仕入先、または受入事業部門ごとの原価配分
運送費用サービス料金(Valor do Serviço / vTPrest)、受取額(Valor a Receber / vRec)、控除内訳主要な原価数値、源泉控除後の正味原価、運送業者への支払い検証
税務詳細ICMS課税標準(Base de Cálculo)、ICMS税率(alíquota)、ICMS金額入荷運送に係るICMS税額控除の回収、SPED EFDへの準拠
貨物詳細総重量(kg)、貨物の種類(natureza da carga)、貨物価値(利用可能な場合)kg単価のベンチマーク、ルート別収益性分析
ルート出発地の市区町村(IBGEコード)、目的地の市区町村(IBGEコード)、CFOPルート別コスト比較、モーダル分析、税務分類

これらの15~18列が運送費追跡システムの基盤を形成し、運送業者の業績評価、ルート最適化、税務コンプライアンスを支援します。具体的な列構成は企業によって異なります。入荷運送に注力する製造業者は、税額控除回収のために送り主のCNPJとICMS税率を優先する一方、流通企業は事業部門別の原価配分のために荷受人(consignee)のCNPJとCFOPを重視するでしょう。

主要な設計上の判断は、抽出後にExcelの数式として追加するのではなく、抽出時に計算列を含めることです。AIが抽出中に計算を実行するため(例:運送費1kgあたり(Valor do Serviço ÷ Peso Bruto))、計算値は列として出力スプレッドシートに直接配置され、アナリストが数式列を追加して300行にコピーする手順が不要になります。直接抽出計算列推論列の違いについては、各モードがバッチワークフローにどのように適合するかを説明した計算列ガイドをご参照ください。

バッチワークフローの構築:DACTEから月次スプレッドシートへ

CT-e運送書類のバッチワークフローは、書類ごとの手動入力サイクルを、バッチごとの単一プロセスに置き換える3つのステージで構成されています。

1
当月分のDACTEファイルをすべてアップロード

当月のすべてのCT-e DACTE PDFを収集します。キャリアからのメール、請求ポータル、またはスキャンした印刷物から入手し、まとめて1つのバッチでアップロードします。インターフェースはPDF、JPG、PNG、WebPに対応しています。中規模メーカーの場合、月間のファイル数は通常200~400件で、バッチアップロードはそれらを一度に処理します。

2
原価台帳の列セットを一度だけ定義

必要な運送費フィールドに対応する列名を入力します。これらが出力スプレッドシートのヘッダーになります。抽出はテンプレート不要であるため、AIはレイアウト位置ではなく意味内容に基づいて読み取ります。そのため、同じ列定義がすべてのキャリアのDACTEレイアウトで機能します。JSLのCT-eとBraspressのCT-eでは、ICMSデータのページ上の位置が異なりますが、同じ列セットで読み取られます。初回バッチ後に列セットをテンプレートとして保存すれば、以降の月は再設定なしで同じテンプレートを使用できます。

3
処理とエクスポート — 1つのExcelファイルが300行の手動作業を代替

AIがバッチ内のすべての書類を処理し、CT-eごとに1行のデータを持つ単一のExcelファイルを生成します。列ヘッダーはお客様の定義と完全に一致します。ダウンロードされたファイルは、ERPへのインポート(ほとんどのシステムはXLSXをフラットファイルとして受け入れ可能)、キャリアコストのピボット分析、またはNF-eの購買金額との照合にすぐに使用できます。

この3つのステップにより、数日かかっていた手動データ入力作業が、数分で完了するプロセスに変わります。ボトルネックは「どれだけ速く入力できるか」から「どれだけ速くキャリアからDACTEファイルを収集できるか」へと移ります。これは、バッチ収集ワークフローで対処できるプロセスではありますが、抽出ステップの範囲外です。

バッチ処理による運送費分析のための計算列

バッチワークフローの真の価値は、書類に記載されている情報をより速く抽出することではなく、計算や推論を必要とする列を追加できることにあります。手動入力では、計算のたびに行ごとに数式を適用する必要があるため、このような処理は規模に応じて拡張できません。

基本的なCT-e抽出を意思決定支援ツールに変える3つの計算列をご紹介します。

計算列名ロジック実現できること
1kgあたりの運送費(Valor do Serviço ÷ 総重量)vTPrestを総重量で除算ルート別のコストベンチマーク — どの運送業者がどのルートで最も高いR$/kgを請求しているかを把握
実効ICMS率(vICMS ÷ 課税標準)実際のICMS額を課税標準で除算税率の検証 — 適用された税率が想定される州間税率(7%または12%)から逸脱している書類をフラグ付け
支払業者への支払差額(受取額 - サービス料金)vRecをvTPrestから減算源泉徴収分析 — 税控除額(IRRF、PIS、COFINS、CSLL)を表示し、予期しない差額をフラグ付け

各計算列は抽出中に実行されます。AIがDACTEからソースフィールドを読み取り、計算を実行し、結果を出力スプレッドシートに書き込みます。300件の書類のバッチでは、抽出後の数式作業を一切行わずに、各計算列に300の値が生成されます。運送業者契約を管理するチームにとっては、1kgあたりの運送費の列だけで、数週間分の手動データ収集を代替できる可能性があります。

推論列 — カスタム列抽出の3つ目のモード — は、バッチ出力をさらに充実させることができます。例えば、ルートタイプ(選択肢:地域内 / 地域間)という名前の列は、AIに出発地と到着地の市区町村を評価させ、ルートを分類させます。これにより、手動プロセスではバッチ内のすべての書類に適用する時間がなかったセグメンテーションの次元が追加されます。

バッチ抽出の洞察: バッチ処理の価値は、人間より速く入力できることではありません。それは、毎回すべての書類に同じロジックを適用できることです。そして、計算列は労力を追加することなく、そのロジックを拡張します。

1つのバッチで異なる運送業者のレイアウトを処理する方法

ブラジルの道路貨物業界は非常に細分化されています。ANTT(国家陸上運輸庁)によると、RNTRCシステムに登録されている運送業者は65万社を超え、JSLやSequoiaのような大手上場物流企業から、1台のトラックを所有する個人事業主運送業者(transportador autônomo)まで多岐にわたります。各運送業者のDACTEレイアウトはSEFAZテンプレートのバリエーションですが、その差異は非常に大きいため、テンプレートベースのOCRシステムでは運送業者ごとに個別の設定が必要になります。

この細分化こそが、CT-e貨物書類においてバッチ抽出がこれまで実用的でなかった主な理由です。ある大手メーカーの入荷貨物に関する300件の書類バッチには、30~50社の異なる運送業者のCT-e書類が含まれる可能性があります。文字位置を照合してデータを抽出する従来のOCRは、学習していないレイアウトに遭遇すると機能しなくなります。そして、50もの運送業者のレイアウトを学習させることは、貨物アナリストにとって現実的なワークフローではありません。

テンプレート不要の抽出は、AIが意味に基づいて読み取るため、この問題を解決します。JSLのDACTEのサイドバー表に印刷された「Valor do Serviço(サービス料金)」も、BraspressのDACTEのフッター行に印刷された「Valor do Serviço(サービス料金)」も、同じ列定義によって特定されます。モデルは、ブラジルの貨物書類上のどの位置にあっても「サービス料金」が何であるかを理解します。単一のバッチで、50社の運送業者のCT-e書類を同じ列定義ファイルで処理でき、出力されるスプレッドシートには、すべての書類の完全な行が含まれます。システムが以前に見たことのあるレイアウトの運送業者の書類だけではありません。

貨物アナリストにとっての実際的な利点は次のとおりです。当月分のすべてのDACTEファイルを、運送業者に関係なく収集し、まとめてアップロードします。バッチワークフローでは、運送業者ごとに仕分けしたり、サブバッチを作成したり、実行のたびに設定を変更したりする必要はありません。

着地原価計算のためのCT-e費用とNF-e購入額のバッチ突合

運送費のみを追跡する月次原価台帳は、運送業者のパフォーマンスデータを提供します。各CT-e運送料金を対応するNF-e商品価額に突合する台帳は、調達チームが利益率分析に実際に必要とする単位あたりの着地原価を提供します。

突合の仕組みは単一ドキュメントのワークフローと同じです。各CT-eは、それが運送するNF-eのアクセスキー(Chave de Acesso)を参照します(混載貨物の場合は複数のNF-eアクセスキー)。バッチ内の各CT-eから参照先のNF-eアクセスキーを抽出することで、運送費スプレッドシートに、NF-e購入台帳への外部キーとして機能する列が追加されます。2つのスプレッドシート間でXLOOKUPを使用すると、各出荷について、NF-eからの商品価額、CT-eからの運送費、および計算された着地原価を表示する結合ビューが作成されます。

この突合は、CT-eバッチとNF-eバッチの両方が同じ抽出ワークフローで処理される場合に、さらに強力になります。NF-eデータ抽出ガイドでは、NF-e購入ドキュメントの列定義について説明しており、2つの出力スプレッドシート(商品価額用と運送費用用)がアクセスキー列でマージされます。以前は丸一日かかっていた四半期ごとの着地原価分析が、数分で完了するスプレッドシートのマージ作業になります。

CT-eがNF-e(商品請求書)やMDF-e(貨物マニフェスト)とともにブラジルの電子ドキュメントエコシステムにどのように位置づけられるかについては、ブラジル電子ドキュメントハブガイドをご覧ください。このガイドでは、すべてのブラジル税務ドキュメントに共通するSEFAZ認可フローについて説明しています。

よくある質問

1回のバッチで処理できるCT-eドキュメントの数に制限はありますか?

バッチあたりのファイル数に制限はありません。実質的な制約は、ご利用のプランの総ページ許容量です。1つのCT-e DACTEは1~2ページです。Proプラン(月1,500ページ)の場合、500件のCT-eドキュメント(各1ページ)を処理するチームは、月間容量の3分の1を使用し、他のドキュメントタイプのための余裕が残ります。バッチ出力は、ボリュームに関係なく、すべてのドキュメントを1つのExcelファイルに結合します。

運送会社ごとに異なるDACTEレイアウトのテンプレートは必要ですか?

いいえ。テンプレート不要の抽出は、位置ではなく意味に基づいて読み取ります。JSLのDACTE(サイドバーに表示される場合があります)とBraspressのDACTE(フッターの表に表示される場合があります)のICMSフィールドは、AIが運送書類上の「ICMS」を理解するため、同じ列定義で特定されます。50社の異なる運送会社が混在するバッチでも、1つの列定義ファイルで対応できます。

計算列を使ってバッチ全体のICMS税率を検証できますか?

はい、これは計算列の最も価値のある用途の一つです。実効ICMS税率(vICMS ÷ 課税標準)を計算する計算列は、バッチ内のすべての書類で期待される州間税率(7%または12%)と一致する値を生成します。計算された税率が期待値から乖離している行は、Excelの簡単な条件付き書式ルールによって出力で強調表示され、300行の検証作業が、強調表示された例外のスポットチェックに変わります。CT-e ICMS計算エラーガイドでは、具体的な税率ルールと、各タイプの乖離が示す内容について説明しています。

一部のDACTE PDFが横向きにスキャンされていたり、解像度が低い場合はどうなりますか?

AIビジョンモデルは、向きや適度な解像度のばらつきに対応します。200 DPIで15度傾いたスキャンDACTEでも正しく処理されます。モデルはテキストの向きを検出し、従来のOCRのように傾き補正の前処理を必要とせず、文脈に基づいて読み取ります。非常に低い解像度(150 DPI未満)や深刻な照明アーティファクトがある場合、フィールドレベルの精度は低下する可能性がありますが、再スキャンを必要とせず、レビュー可能な部分的な結果が抽出されます。

バッチ抽出を使って、月ごとの運送費を比較するにはどうすればよいですか?

各月のバッチを個別のExcelファイルにエクスポートし、それらの月次ファイルを1つの年度累計スプレッドシートに追加します。毎月同じ列定義を使用するため、ファイルの列構造は同一であり、行を追加することで積み重ねることができます。「1kgあたりの運送費」などの計算列が各月のエクスポートに組み込まれているため、月次の料金トレンド分析には、積み重ねたデータセットに対するピボットテーブルだけで十分です。月ごとの数式調整は不要です。

運送チームを手動入力からバッチ抽出に移行するにはどうすればよいですか?

まず、1か月間の並行運用から始めてください。その月のCT-e書類を、手動(既存のワークフロー)とバッチ抽出(新しいワークフロー)の両方で処理します。2つの出力を比較すると、抽出出力の方がタイプミスが少なく、列構造がより一貫しており、書類セットを完全にカバーしていることがわかります。この並行運用により、翌月からチームを抽出のみに切り替えるための具体的な根拠が得られます。ほとんどのチームでは、出力への信頼を構築するために1サイクルの移行期間が必要であり、それを維持するために追加のサイクルは必要ありません。

📮 contact email: [email protected]