jdate = rec["JOURNAL_DATE"]
# Year folder from JOURNAL_DATE; fallback to 1901 if missing/unparseable
try:
year = getattr(jdate, "year", None) or int(str(jdate)[:4])
except Exception:
year = 1901
if not isinstance(year, int):
year = 1901
jdate_str = jdate.strftime("%Y-%m-%d") if hasattr(jdate, "strftime") else str(jdate)
folder = os.path.join(output_dir, str(year), bu_, jid) # out/<YEAR>/<BU>/<JOURNAL_ID>
ensure_dir(folder)