コストコのガソリン価格を追跡

2026/08/25 2:21

コストコのガソリン価格を追跡

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

ライブダッシュボードを構築することで、著者はホルムズ海峡の燃料危機イベント期間中の約155日間にわたり、アメリカ合衆国内の約600カ所のコストコ倉庫におけるガソリン価格を追跡しました。データ収集には 2 つのコストコ API エンドポイント—that is

AjaxGetGasPricesService
AjaxWarehouseBrowseLookupView
(latitude、longitude、
hasGas=true
、および
populateWarehouseDetails=true
を必要とする)—が使用されました。API が倉庫ごとのコール数を 50 に制限しているため、緯度 25°N–50°N および経度 -125°W から -65°W の範囲におけるグリッドスイープに加え、アラスカとハワイの特定の点を対象として実施したスキャンは、60 秒未満で完了しました。結果は TigerData を通じて TimescaleDB(Postgres の拡張) に保存され、設定上の問題を解消した後、Cloudflare Workers にデプロイされた Next.js アプリケーションを介して提供されました。

分析では、約 600 カ所の倉庫全体で合計 38,101 回の価格変動が記録され、1 日平均 246 回の変動が観測されました。値下げの方が値上げよりも多かったことが示され、具体的には 20,535 件の値下げに対して 17,566 件の値上げがあり、純粋なバランスは追加的な値下げが 2,969 件となりました。歴史的にコストコのガソリンスタンドは周辺の駅より 15~20 セント安価で運営されてきましたが、これらのマージンは固定された割引ではなく、市場のボラティリティと共に変動します。タイムラインには 2026 年 6 月 17 日に署名された米・イラン協定、2026 年 7 月 2 日における同協定の崩壊、および 2026 年 7 月から 8 月にかけてのタンカー攻撃といった主要イベントがマッピングされており、地政学的緊張期間中にコストコがガソリンスタンドを損失リーダーとして活用して競合他社を値下げて牽制した様子が示されています。検索可能なデータベースは現在、消費者が価格低下を待つべきか即時に購入すべきかを判断するのを支援するとともに、エネルギー危機期における燃料価格戦略に関する洞察を提供し、コスト効果の高い技術を利用することで小売業者に役立つ情報を提供しています。著者はまた CRV から Tesla Model Y に乗り換えたため、個人的な移動において倉庫の選択は無関係となりました。

本文

ホルムズ海峡危機下のコストコガソリン価格追跡プロジェクト

掲載された全ての見解および内容は、私が個人として独自のものであり、現在の所属企業もまた以前の所属企業を代表するものではありません。本ウェブサイトは個人的な立場で保守・管理されています。技術的なコンテンツは教育目的のために共有されています。

プロジェクトの背景と動機

  • 地理的状況: 昨年 4 月頃、ほぼ正確に2 つのコストコ倉庫の間に住んでいました。
  • 課題:
    • コストコ公式ウェブサイトでは個々の倉庫ページに情報が埋め込まれているだけで、中央集権的な価格公開がなされていませんでした。
    • 住んでいる地域から近い 2 つの倉庫でも、価格が一致していません
  • コストコのガソリン戦略:
    • 「失いリーダー(Loss Leader)」としての有名で、通常は周辺のスタンドよりも15〜20 セント安く設定されています。
    • この価格差だけで迂回運転も検討されますが、どちらの倉庫を選ぶべきか明確にするには不足でした。
  • 動機の変化:
    • タンパ市という広大な都市で通勤しており、公共交通機関がないためガス価格の高騰に意識が向き始めました。
    • 他のガソリンスタンドと同じペースで値上がりしているのか、コストコの「失いリーダー」戦略が維持されているのか疑問を持ちました。
  • 結論: 過去にこうした傾向を把握するための適切な方法が存在しないため、独自のデータ収集システムを構築することにしました。

データ収集の実装(API エンドポイントの発掘)

コストコ側はデータ収集に対して極めて協力的でした。主要なエンドポイントと特徴は以下の通りです。

  • AjaxGetGasPricesService
    :
    • ガス価格を取得します。
    • 入力形式は
      ID1_ID2_ID3_ID4
      (アンダースコアを区切り記号として採用)です。
  • AjaxWarehouseBrowseLookupView
    (必要な情報源):
    • 名前の通り、緯度と経度をパラメータにして倉庫を検索します。
    • populateWarehouseDetails=true
      を設定することで、以下の詳細情報を取得できます。
      • 住所・営業時間
      • 提供するサービス
      • フードコートの有無
      • ガス価格(最重要)

利用可能な API リクエスト例

GET /AjaxWarehouseBrowseLookupView?latitude=27.95&longitude=-82.45&hasGas=true&populateWarehouseDetails=true&countryCode=US
  • 注意点:
    • populateWarehouseDetails
      を使用するとレスポンスボディが非常に大きくなります。
    • API は 1 回のコールで最大 50 ヵ所の倉庫のみを返すため、全国規模のカバレッジを得るには地図全体をスイープ(走査)する必要があります。

全国的なスイープ処理の実装アプローチ

アメリカ合衆国全土の座標グリッドを設定し、各ポイントからデータを収集して重複を除く方式を採用しました。

  • 対象エリア:
    • コストコ所在地約600 ヵ所
    • 1 レスポンスあたり 50 ヵ所を返すため、北米大陸全体をカバーするグリッド(ステップ 3)に加え、アラスカ・ハワイ向けに手動で追加ポイントを設定。
  • 実装コード(Python / async):
    def grid_points(step: int = 3) -> list[tuple[float, float]]:
        points = []
        for lat in range(25, 50, step):
            for lng in range(-125, -65, step):
                points.append((float(lat), float(lng)))
        # アラスカ・ハワイの追加ポイント
        points.extend([
            (61.2, -149.9),  # アンカレッジ
            (64.8, -147.7),  # フェアバンクス
            (21.3, -157.8),  # ホノルル
            (20.9, -156.5),  # カフルイ
        ])
        return points
    
    async def fetch_all_costcos() -> list[CostcoStation]:
        points = grid_points()
        seen: dict[int, CostcoStation] = {}
        semaphore = asyncio.Semaphore(CONCURRENCY)
    
        async with httpx.AsyncClient(headers=HEADERS, timeout=30) as client:
            tasks = [fetch_point(client, lat, lng, semaphore, ts)
                     for lat, lng in points]
            results = await asyncio.gather(*tasks)
    
        # 重複 ID を除外してユニークな倉庫のみを保持
        for result in results:
            for station in result:
                seen.setdefault(station.id, station)
    
        return list(seen.values())
    
  • 処理効率:
    • リクエスト数の制限と再試行ロジックを組み込むことでサーバー負荷を管理。
    • 全体のスイープ作業は60 秒以下で完了し、1 回の実行ですべての現在の価格・住所・座標を取得可能。

データ保存と可視化(時系列データベース)

プロジェクトの本質的な目的は、時間の経過とともに価格変動を観察することにあるため、時系列データ管理が不可欠でした。

保存先:TimescaleDB

  • 選定理由: PostgreSQL の拡張であり、既存のクエリ言語・ツールを活用しつつ時系列機能を追加可能。
  • メリット:
    • 無料
    • 設定が迅速(TigerData 社によるサポート)。
    • 同じ約 600 ヵ所の倉庫を繰り返しサンプリングし、過去データとの比較が可能。

可視化:Next.js アプリケーション

  • 技術スタック:
    • Next.js アプリケーション。
    • Tailwind CSS を使用したスタイリング(Excel シート風にはしない)。
    • Cloudflare Workers でデプロイメントを動作。
  • 機能:
    • 検索可能なリアルタイムデータベースの提供。
    • 各倉庫に個別ページを設定し、SEO 対策として検索エンジンによるインデックス化を許可
    • 「どの倉庫に行くべきか」と悩むユーザーが API を逆エンジニアリングする手間をかけずに照会できるようにした。

ホルムズ海峡危機への影響分析

プロジェクトを開始したタイミングは、ホルムズ海峡の緊張が石油市場を不安定にした直後でした。タンパ市から近い港湾であり、閉鎖の脅威だけでガス価格を急騰させる可能性があります。

データ集約の結果(155 日間の追跡)

  • 総変更数: 38,101 件の個別価格変更が発生。
    • 平均:1 日あたり 246 件の変更。
  • 増減バランス:
    • 値下げ:20,535 件
    • 値上げ:17,566 件
    • 結果:値下げの方が約 2,969 件多かった
出来事日付
米国─イラン合意署名2026 年 6 月 17 日
合意崩壊2026 年 7 月 2 日
タンカーへの攻撃再開2026 年 7 月 23 日
ハマス系グループがタンカーを攻撃2026 年 8 月 13 日

考察と行動の変化

  • 市場原理の確認:
    • 立派なコストコでもホルムズ海峡の影響からは免れられず、ガスを切り捨て問題として捉えても市場の流れに追従する必要があることが示されました。
  • 私の個人的な対応(エビデンスに基づいた意思決定):
    1. ガスタンクから数セントを削るためのシステムを月単位で最適化。
    2. CR-V をテスラ モデル Y に乗り換える
    3. テスラに切り替えた結果、2 つの倉庫間の15 セントの価格差を追いかけても得られる金額より多い車料金を毎月支払うことになりました。

結論

  • 「どのコストコに行けばよいか」という質問に対し、ついに必要なインフラストラクチャを手に入れることで、個人として永遠にこの疑問を不要なものにしました。
  • (参考:フロリダ州で最も良いナンバープレートの組み合わせに関する詳細は別記事をご覧ください。)

謝辞

このプロジェクトに携わった方やコミュニティへの感謝の意を申し上げます。

  • 校閲協力: Kai, Neesh, Ari, Landon, Mark, Jaden
  • サポート: Creamcheese Babgel の皆様

同じ日のほかのニュース

一覧に戻る →

2026/08/26 6:39

Python の事前宣言定数は少し奇妙です

## Japanese Translation: Python は 6 つのプリデークレードされた項目を持っています:`True`, `False`, `None`, `__debug__`, `Ellipsis`(`...`), および `NotImplemented`。これらはしばしば「定数」と呼ばれますが、その挙動は大きく異なります。 このうち 4 つ(`True`, `False`, `None`, `__debug__`)は通常の識別子ではなく特別な構文的トークンです。そのため: • `x.True` などの式は `SyntaxError` を発生させます。 • 他の文脈では構文上問題がないにもかかわらず、これらに直接代入または削除を行うことは `SyntaxError` を引き起こします(例:`__debug__ = 67` または `del __debug__`)。 • オブジェクト上の属性経由でのアクセス(例:`obj.__debug__`)は無効ではありませんが、`builtins` 内のエントリを変更する(`getattr`/`setattr` を通じて)ことは、構文的トークンの挙動には影響しません。 対照的に、`Ellipsis` と `NotImplemented` は通常のビルトイン関数に近い動作を示します: • 代入によってグローバルにシャドウ化されることが可能です(例:`NotImplemented = 67`)。 • `builtins` 内の値を変更してもモジュールレベルでの名前には影響しますが、構文的トークン(`...` または `NotImplemented` という識別子)そのものには変更はありません。 さらに、`__debug__` は通常 `True` ですが、Python を `-O` フラグで実行すると `False` になります。これら 6 つの項目を区別する exact な設計理由、特になぜ 4 つだけが構文的トークンとして特別扱いされ、残りの 2 つは通常のビルトインとして扱われるのかは、現在も不明です。

2026/08/25 22:01

Apple、M6 と M5 Ultra を発表する

## Japanese Translation: 8 月 25 日(2026 年)、カリフォルニア州クアパティーノでアップルは、地域のアートフィシャルインテリジェンスを変革することを目的とした革命的なシリコンチップを発表しました。頭部のイノベーションは、Mac mini 向けの新しい **M6 チップ**であり、画期的な **2 ナノメートル製造プロセス**を特徴としています。このチップは、12 コア CPU(2 つのスーパークコア、4 つのパフォーマンスコア、および 6 つのエフィシェンシーコアから構成)、ニューラルアクセラレータを備えた 12 コア GPU、そして最大 32GB の統一メモリを高速で最大 170GB/s の速度でサポートします。 新しい Mac Studio とペア付けられているのは、アップルの最初のクワッドダイアーキテクチャであり、高度なウルトラフュージョン技術を利用した **M5 Ultra**です。これは、最大 36 コアの CPU コアと最大 80 コアの GPU コアで構成され、1.2TB/s の帯域幅で驚くべき 512GB の統一メモリをサポートする大規模なスケーラビリティを提供します。M5 Ultra は、AI における M3 Ultra に比べて最大 4.5 倍のパーク GPU コンピューティングを提供するため、大きなパフォーマンスの向上が期待されます。両方のチップは、高解像度のビデオ編集や複雑なエージェントワークフローを可能にする先進的なグラフィック機能を備えており、第 3 世代レイトレーシングとハードウェア加速メッシュシェーディングが含まれています。 これらのアップグレードにより、「Apple Intelligence」(2026 年秋の macOS 27 で、Apple Beta Software プログラムを通じて利用可能)がユーザーデバイスの上で完全に動作し、数百億パラメータを持つ最先端 AI モデルをクラウドサーバーに依存せずにホストできるようになります。新しい開発者フレームワークにより、Xcode や Core ML のようなツールを使用して大規模言語モデルのローカルでの微調整が可能となり、英語、中国語、日本語、韓国語を含む複数の言語で利用できる強力なプライバシー重視のオンデバイス AI 計算への決定的なシフトを示しています。

2026/08/25 23:06

OpenAI Jalapeño:Nvidia Blackwell より優れている

## Japanese Translation: OpenAI は、Broadcom との協力による約 16 ヶ月の開発(2024 年中盤から開始)を経て、「Jalapeño」という推論専用の ASIC を発表しました。LLM の推論のためにゼロから設計された Jalapeño は、過剰な特殊化ではなく極限までのハードウェア・ソフトウェアのコデザインと一般化に依存しており、推定的デコードや特定のワークロード調整を必要とせず、あらゆるモデル推論シナリオで高い性能を実現しています。 InferenceX スイートを用いた独立したベンチマーク(Hot Chips で実施)により、Jalapeño はトークン毎ワットあたりで Nvidia、AMD、Google のチップを上回ることが確認されました。TSMC の N3P プロセスで作製され、HBM4 メモリを備えるこのチップは、GPU に見られる固定されたレイテンシを排除するために順序変換コアと L1 キャッシュを採用し、MXFP 数値形式およびウェイト定数型シンタリック配列を用いて性能の急激な低下を防いでいます。OpenAI の独自プログラミング言語「Gluon」は、高効率を実現するために直接永続スレッドにマッピングされたハンドチューニング済みカーネルを可能にしています。 システムアーキテクチャは、CPU ホストラック(「Katsu」、AMD EPYC プロセッサ搭載)と ASIC ラック(「Vindaloo」、トレイあたり 16 チップ)から構成されます。この設計により、ハイブリッド銅線/光ネットワークを活用して最大 2,048 ユニットまで柔軟にグローバルなスケールアップが可能です。2025 年 11 月にタプトアウト(A0 ステッピング)され、初版はすぐにデプロイが可能で、タプトアウト直後にスループットの大幅な向上が実現されています。現在ファブ内にある将来の B0 ステッピングでは、効率性が約 25% 向上しており、Nvidia の Rubin チップに比べて優れた消費電力性能を提供します。生産は 2027 年に段階的に増産され、多くの出力は翌年の後半に期待されており、OpenAI パートナーが信頼性データを収集する期間としては 1 月までとされています。