Python 56.2%
TeX 43.7%
1from __future__ import annotations23import os4from datetime import date, datetime5from pathlib import Path67from dotenv import load_dotenv89load_dotenv()1011PROJECT_ROOT = Path(__file__).resolve().parents[1]1213DATA_RAW = PROJECT_ROOT / "data" / "raw"14DATA_RAW_POLY = DATA_RAW / "polymarket"15DATA_RAW_FRED = DATA_RAW / "fred"16DATA_RAW_YAHOO = DATA_RAW / "yahoo"17DATA_PROCESSED = PROJECT_ROOT / "data" / "processed"18FIGURES = PROJECT_ROOT / "figures"19TABLES = PROJECT_ROOT / "results" / "tables"20PAPER = PROJECT_ROOT / "paper"21LOGS = PROJECT_ROOT / "logs"2223GAMMA_API = "https://gamma-api.polymarket.com"24CLOB_API = "https://clob.polymarket.com"2526FRED_API_KEY = os.getenv("FRED_API_KEY", "")2728# ---------------------------------------------------------------------------29# Market registry30# ---------------------------------------------------------------------------3132FED_JUNE_2026_EVENT_ID = 10177233FED_JUNE_2026_MARKETS = {34 "50+ bps decrease": {"id": "906972", "token": "11088456156829969846055197785216933275644828685751065736355063877671766078668"},35 "25 bps decrease": {"id": "906973", "token": "65193234666628291664907888364936366210882855780775260579670618454938932816097"},36 "No change": {"id": "906974", "token": "30767812841387255642892182147223249245546960790037785428969725073478408781530"},37 "25 bps increase": {"id": "906975", "token": "54688507565884542490190759171719899637340549418956975710651891089424379775735"},38 "50+ bps increase": {"id": "906976", "token": "11019686559003253359318459636510036787285735855494197538476668773993811283380"},39}4041ELECTION_2024_EVENT_ID = 90319342ELECTION_2024_MARKETS = {43 "Donald Trump": {"id": "253591", "token": "21742633143463906290569050155826241533067272736897614950488156847949938836455"},44 "Kamala Harris": {"id": "253596", "token": "69236923620165904972967806948244475009793726478846816743760350969833698291913"},45}4647FED_CLOSED_MARKETS = {48 "Dec 2025 - 50+ bps decrease": {"id": "570360"},49 "Jan 2026 - 50+ bps decrease": {"id": "601697"},50 "Jan 2026 - 25+ bps increase": {"id": "601700"},51 "Mar 2026 - 25+ bps increase": {"id": "654415"},52}5354KEY_BINARY_MARKETS = [55 {"id": "253591", "name": "Trump wins 2024", "category": "politics"},56 {"id": "253596", "name": "Harris wins 2024", "category": "politics"},57 {"id": "906974", "name": "Fed June no change", "category": "economics"},58]5960# ---------------------------------------------------------------------------61# FOMC meeting dates (2024–2026)62# ---------------------------------------------------------------------------6364FOMC_DATES = [65 date(2024, 1, 31), date(2024, 3, 20), date(2024, 5, 1),66 date(2024, 6, 12), date(2024, 7, 31), date(2024, 9, 18),67 date(2024, 11, 7), date(2024, 12, 18),68 date(2025, 1, 29), date(2025, 3, 19), date(2025, 5, 7),69 date(2025, 6, 18), date(2025, 7, 30), date(2025, 9, 17),70 date(2025, 10, 29), date(2025, 12, 17),71 date(2026, 1, 28), date(2026, 3, 18), date(2026, 5, 6),72 date(2026, 6, 17), date(2026, 7, 29), date(2026, 9, 16),73 date(2026, 10, 28), date(2026, 12, 16),74]7576CPI_RELEASE_DATES = [77 date(2024, 1, 11), date(2024, 2, 13), date(2024, 3, 12),78 date(2024, 4, 10), date(2024, 5, 15), date(2024, 6, 12),79 date(2024, 7, 11), date(2024, 8, 14), date(2024, 9, 11),80 date(2024, 10, 10), date(2024, 11, 13), date(2024, 12, 11),81 date(2025, 1, 15), date(2025, 2, 12), date(2025, 3, 12),82 date(2025, 4, 10), date(2025, 5, 13), date(2025, 6, 11),83 date(2025, 7, 15), date(2025, 8, 12), date(2025, 9, 10),84 date(2025, 10, 14), date(2025, 11, 12), date(2025, 12, 10),85 date(2026, 1, 14), date(2026, 2, 11), date(2026, 3, 11),86 date(2026, 4, 14), date(2026, 5, 12), date(2026, 6, 10),87]8889NFP_RELEASE_DATES = [90 date(2024, 1, 5), date(2024, 2, 2), date(2024, 3, 8),91 date(2024, 4, 5), date(2024, 5, 3), date(2024, 6, 7),92 date(2024, 7, 5), date(2024, 8, 2), date(2024, 9, 6),93 date(2024, 10, 4), date(2024, 11, 1), date(2024, 12, 6),94 date(2025, 1, 10), date(2025, 2, 7), date(2025, 3, 7),95 date(2025, 4, 4), date(2025, 5, 2), date(2025, 6, 6),96 date(2025, 7, 3), date(2025, 8, 1), date(2025, 9, 5),97 date(2025, 10, 3), date(2025, 11, 7), date(2025, 12, 5),98 date(2026, 1, 9), date(2026, 2, 6), date(2026, 3, 6),99 date(2026, 4, 3), date(2026, 5, 8), date(2026, 6, 5),100]101102ELECTION_KEY_DATES = {103 "Biden dropout": date(2024, 7, 21),104 "Trump assassination attempt": date(2024, 7, 13),105 "Harris-Trump debate": date(2024, 9, 10),106 "Election day": date(2024, 11, 5),107}108109YAHOO_TICKERS = ["SPY", "^TNX", "^VIX", "BTC-USD", "ETH-USD"]110YAHOO_START = "2024-01-01"111YAHOO_END = "2026-06-01"112113# ---------------------------------------------------------------------------114# Matplotlib style115# ---------------------------------------------------------------------------116117MPL_STYLE = {118 "font.family": "serif",119 "font.serif": ["Times New Roman", "DejaVu Serif"],120 "font.size": 10,121 "axes.titlesize": 11,122 "axes.labelsize": 10,123 "xtick.labelsize": 9,124 "ytick.labelsize": 9,125 "legend.fontsize": 9,126 "figure.figsize": (6.5, 4.0),127 "figure.dpi": 300,128 "savefig.dpi": 300,129 "savefig.bbox": "tight",130 "axes.spines.top": False,131 "axes.spines.right": False,132 "axes.grid": True,133 "grid.alpha": 0.3,134 "grid.linestyle": "--",135 "lines.linewidth": 1.2,136}137138JOF_COLORS = {139 "primary": "#1f4e79",140 "secondary": "#c0392b",141 "tertiary": "#27ae60",142 "quaternary": "#f39c12",143 "gray": "#7f8c8d",144 "light": "#bdc3c7",145}146