Ngiêm cấm sử đụng PROXY và VPS vào mục đích trái pháp luật bạn sẽ phải chịu toàn bộ trách nhiệm trước pháp luật khi sử dụng dịch vụ của chúng tôi tks!
FRED API vintage dữ liệu: observation date và bản sửa

FRED API vintage dữ liệu: observation date và bản sửa số liệu

Chuyên viên Kỹ thuật ProxyVN 05-01-2026 Đang tính... phút đọc

FRED API vintage dữ liệu là cách hỏi "lúc đó người ta biết con số nào", thay vì chỉ lấy con số mới nhất. Bài này viết cho người phân tích chuỗi kinh tế cần tái lập kết quả. ProxyVN không có khóa FRED, nên đã gọi tệp CSV công khai của ALFRED ngày 05/11/2026 và thấy cùng một quý GDP có sáu giá trị theo sáu thời điểm.

FRED API vintage dữ liệu: mục tiêu và phạm vi không lặp

Phần này chốt bài toán, đầu ra và những gì bài không làm, vì dữ liệu kinh tế rất dễ bị đọc thành dự báo.

Bài toán cần giải

Một nhóm viết báo cáo muốn kiểm lại một nhận định cũ: tăng trưởng quý 3/2023 đã được công bố bao nhiêu vào thời điểm đó. Họ tải chuỗi GDP mới nhất, lấy quý 3/2023 và thấy con số khác hẳn bài báo năm 2023. Họ tưởng bài báo sai. Thật ra chuỗi đã được sửa nhiều lần, và con số họ tải hôm nay chưa từng tồn tại vào tháng 10/2023.

Đầu ra nghiệm thu

Đầu ra là bảng gồm series, observation date, realtime start, realtime end, giá trị, đơn vị và tần suất. Đi kèm là một ví dụ bản sửa số liệu có thật. Người đọc bảng phải trả lời được hai câu: số này nói về thời kỳ nào, và số này được biết từ ngày nào.

Ranh giới với World Bank và Eurostat

Bài World Bank API và bài Eurostat API lấy chỉ tiêu theo quốc gia hoặc dataset, thường chỉ quan tâm bản hiện hành. Bài này quan tâm mô hình phiên bản của dữ liệu. Cùng một quan sát có nhiều giá trị theo thời gian biết được, và đó là điểm riêng của FRED cùng ALFRED.

Không phải dự báo hay lời khuyên đầu tư

Bài không đưa dự báo kinh tế, không gợi ý đầu tư, không đánh giá chính sách. Các số GDP, thất nghiệp, việc làm chỉ dùng để minh họa cách dữ liệu được sửa. Một lần sửa số không nói lên nền kinh tế tốt hay xấu.

Giới hạn của lab cần nói ngay

FRED API yêu cầu khóa, lab không có khóa và không đăng ký tài khoản. Lời gọi không khóa trả HTTP 400 với thông điệp Variable api_key is not set. Vì vậy các đoạn gọi API trong bài là ví dụ theo tài liệu, chưa chạy thành công. Số liệu thật lấy từ tệp CSV công khai của ALFRED, là ứng dụng vintage của cùng nhà cung cấp.

Ai nên đọc

Bài hợp với người phân tích kinh tế, nhà báo dữ liệu, sinh viên nghiên cứu cần tái lập, kỹ sư dựng kho dữ liệu vĩ mô. Người chỉ cần vẽ biểu đồ hiện tại có thể dùng số mới nhất, nhưng vẫn nên ghi ngày tải.

Thuật ngữ dùng trong bài

Observation date là thời kỳ mà số đo nói tới, ví dụ quý 3/2023. Realtime period là khoảng thời gian một giá trị được coi là số hiện hành. Vintage date là ngày một phiên bản chuỗi xuất hiện. First release là lần công bố đầu. Revision là bản sửa. Hai trục thời gian này là ý chính của cả bài.

Hai trục thời gian

Hãy hình dung một bảng có hàng là thời kỳ và cột là ngày biết. Khi anh em tải số mới nhất, anh em chỉ nhìn cột ngoài cùng bên phải. Khi nghiên cứu lại một quyết định trong quá khứ, cột cần nhìn là cột của ngày đó. Tải một cột mà gọi là cả bảng là nguồn của mọi nhầm lẫn.

Thu FRED series và phân biệt observation date với realtime vintage trong FRED API vintage dữ liệu

Phần này đi qua tài liệu API và đường lấy dữ liệu thật mà lab dùng được.

Nguồn tài liệu đã đọc

Lab đọc trang tổng quan FRED API, trang Real-Time Periods, trang series/observations và điều khoản dùng API. Phần dữ liệu đến từ ALFRED tại alfred.stlouisfed.org.

Tham số của series/observations

Tài liệu mô tả realtime_start và realtime_end để chọn cửa sổ thời gian biết. Tham số observation_start và observation_end chọn thời kỳ. Tham số vintage_dates chọn một danh sách ngày cụ thể. Tham số output_type chọn cách trình bày nhiều vintage. Đây là bốn tham số cần hiểu trước khi viết code.

import os, requests
 
r = requests.get("https://api.stlouisfed.org/fred/series/observations", params={
    "series_id": "GDPC1",
    "api_key": os.environ["FRED_API_KEY"],
    "file_type": "json",
    "observation_start": "2023-07-01",
    "observation_end": "2023-07-01",
    "realtime_start": "2023-10-01",
    "realtime_end": "2024-12-31",
}, timeout=60)
print(r.json()["observations"])

Đoạn này là ví dụ theo tài liệu, chưa chạy vì thiếu khóa. Mỗi dòng observations có realtime_start, realtime_end, date, value. Với cửa sổ như trên, cùng date có thể hiện nhiều dòng, mỗi dòng ứng với một khoảng thời gian số đó có hiệu lực.

Gọi không khóa

Lab gọi /fred/series?series_id=GDPC1&file_type=json và nhận HTTP 400 với error_code 400, thông điệp Variable api_key is not set kèm liên kết tới trang khóa. Thông điệp này rõ ràng, nên script có thể bắt ngay. Khóa đọc từ biến môi trường, không ghi vào notebook chia sẻ.

Bẫy lớn nhất: tham số bị bỏ qua

Lab thử tệp CSV của trang FRED thường với id=GDPC1 và vintage_date. Bốn ngày 2024-01-01, 2024-12-31, 2025-12-31, 2026-11-01 đều trả 319 dòng, dòng cuối là quý 3/2026 giá trị 24611.077. Thậm chí vintage 1990 vẫn trả HTTP 200 với dữ liệu mới. Tham số vintage_date bị bỏ qua mà không có cảnh báo nào, và tiêu đề cột vẫn chỉ là GDPC1.

Đường đúng là ALFRED

Cùng tham số đó gọi vào alfred.stlouisfed.org/graph/alfredgraph.csv thì khác hẳn. Tiêu đề cột thành GDPC1_20240101, dòng cuối là quý 3/2023, giá trị 22490.692. Hậu tố ngày trong tên cột là bằng chứng phiên bản. Một quy tắc đơn giản: nếu tên cột không có ngày vintage thì không phải dữ liệu vintage.

import csv, io, requests, time
 
s = requests.Session()
s.headers["User-Agent"] = "ProxyVN-docs-lab/1.0 (+https://proxy.vn/)"
A = "https://alfred.stlouisfed.org/graph/alfredgraph.csv"
 
def vintage(sid, d):
    r = s.get(A, params={"id": sid, "vintage_date": d}, timeout=60)
    r.raise_for_status()
    rows = list(csv.reader(io.StringIO(r.text)))
    assert rows[0][1].startswith(sid + "_"), rows[0]
    time.sleep(3)
    return rows[0][1], dict(rows[1:])
 
h, x = vintage("GDPC1", "2023-10-26")
print(h, len(x), x["2023-07-01"])

Output thật là GDPC1_20231026, 307 dòng, 22491.567. Dòng assert chặn đúng bẫy vừa nêu: gọi nhầm tệp FRED thường thì tên cột không có hậu tố và script dừng ngay.

Giới hạn khoảng quan sát

Tham số cosd và coed cắt khoảng thời kỳ trong CSV. Lab thử từ 2019-01-01 tới 2023-12-31 và nhận tệp 431 byte thay vì hơn 6 KB. Với chuỗi dài, cách này giảm tải rõ rệt. Khi chỉ so vài quý thì không cần tải cả lịch sử từ 1947.

Vintage không rơi đúng ngày phát hành

Lab gọi vintage 2023-10-28, một ngày thứ Bảy, và nhận cột GDPC1_20231028 với giá trị quý 3 là 22491.567, đúng bằng bản 26/10. Như vậy tên cột theo ngày hỏi, còn số là bản có hiệu lực tại ngày đó. Hai ngày khác nhau có thể cùng một phiên bản. Muốn biết các ngày phát hành thật, API có series/vintagedates theo tài liệu.

Ngày ngoài phạm vi

Vintage 1980-01-01 trả 404, có lẽ vì GDPC1 chưa có bản lưu từ thời điểm đó. Vintage 2030-01-01 trả 200 với tên cột GDPC1_20261105, tức bị đưa về ngày hiện tại. Script nên chặn ngày tương lai trước khi gọi. Series không tồn tại trả 404.

Chọn series ID và khoảng observation date trong FRED API vintage dữ liệu

Lab chọn ba chuỗi có tính chất sửa số khác nhau, để anh em thấy mức độ không đồng đều.

Ba chuỗi trong lab

Ba chuỗi khác nhau

Ba chuỗi khác nhau

GDPC1 là GDP thực của Mỹ theo quý. PAYEMS là số việc làm phi nông nghiệp theo tháng. UNRATE là tỷ lệ thất nghiệp theo tháng. Mỗi chuỗi có lịch công bố và kiểu sửa khác nhau, nên một chính sách chung cho mọi chuỗi là không ổn. Trang ALFRED của GDPC1 ghi đơn vị là Billions of Chained 2017 Dollars, điều chỉnh mùa vụ theo tỷ lệ năm, tần suất quý.

Observation date là ngày đầu kỳ

Trong CSV, quý 3/2023 mang nhãn 2023-07-01, không phải ngày cuối quý hay ngày công bố. Tháng 6/2025 của UNRATE là 2025-06-01. Người mới hay hiểu đây là ngày số được phát hành. Lúc ghép với dữ liệu khác, phải quy về đúng kỳ, không ghép theo ngày.

Số lịch sử cũng tăng theo vintage

Số dòng của GDPC1 tăng dần: 286 ở vintage 27/07/2018, 307 ở vintage 2023, 310 ở vintage 09/2024, 314 ở vintage 09/2025, 319 ở vintage 10/2026. Mỗi quý thêm một dòng. Dòng cuối trong mỗi vintage luôn là số còn non, sắp bị sửa. Nếu chỉ xem biểu đồ, anh em không nhận ra được điều đó.

Chọn khoảng theo câu hỏi

Câu hỏi "quý 3/2023 được biết là bao nhiêu" chỉ cần một observation date và nhiều vintage. Câu hỏi "chuỗi trông thế nào vào tháng 10/2023" cần một vintage và cả chuỗi. Câu hỏi "người ta sửa nhiều cỡ nào" cần nhiều cả hai. Xác định câu hỏi trước thì số lời gọi giảm đi rất nhiều.

Mã chuỗi là khóa

Series ID ổn định hơn tên hiển thị. Tuy vậy một chuỗi có thể bị ngừng hoặc thay bằng chuỗi khác khi nguồn đổi phân loại. Bảng nên giữ ID, tên đầy đủ và ngày kiểm. Đừng dùng tên mô tả làm khóa, nhất là khi tên có năm gốc như "Chained 2017 Dollars".

Ghi chú mùa vụ

Nhiều chuỗi có hai phiên bản, điều chỉnh mùa vụ và không điều chỉnh. PAYEMS có điều chỉnh mùa vụ. Chuỗi không điều chỉnh có ID khác. So nhầm hai bản sẽ cho ra dao động lớn trông như tin tức. Cột seasonal_adjustment cần có trong bảng metadata của series.

Đặt realtime, vintage scope theo câu hỏi nghiên cứu của FRED API vintage dữ liệu

Phần này chốt ba kiểu câu hỏi và ba cách lấy dữ liệu tương ứng.

Kiểu một: số hiện hành

Dùng khi vẽ biểu đồ hôm nay. Không truyền realtime, mặc định là ngày gọi. Vẫn nên ghi ngày tải, vì bảng tải hôm nay khác bảng tải quý sau. Với kiểu này, câu chú thích đúng là "theo số liệu tính tới ngày tải".

Kiểu hai: số tại một thời điểm

Dùng khi tái lập một quyết định hoặc một mô hình. Anh em đặt realtime_start và realtime_end cùng một ngày, hoặc gọi ALFRED với một vintage_date. Mọi số trong tập đều là số được biết tại ngày đó. Nghiên cứu dự báo mà dùng số đã sửa sẽ vô tình cho mô hình biết tương lai.

Kiểu ba: lịch sử sửa số

Dùng khi đo độ tin cậy của lần công bố đầu. Anh em lấy nhiều vintage cho một khoảng quan sát. Tài liệu có output_type để chọn cách trình bày, ví dụ theo vintage. Lab mô phỏng kiểu này bằng cách gọi ALFRED nhiều lần với ngày khác nhau.

Bảng chọn nhanh

Bảng: Bảng chọn nhanh

Câu hỏi

Cách lấy

Bẫy cần tránh

Biểu đồ hôm nay

Mặc định

Quên ghi ngày tải

Số biết tại ngày X

realtime hoặc vintage_date

Gọi nhầm tệp FRED thường

Mức sửa số của một kỳ

Nhiều vintage

So qua lần đổi năm gốc

Kiểm mô hình quá khứ

Vintage theo từng thời điểm

Dùng số đã sửa

Lỗi nhìn trước tương lai

Một mô hình kiểm thử trên quá khứ bằng chuỗi mới nhất đang dùng thông tin chưa ai có lúc đó. Số quý 3/2023 đã sửa chỉ xuất hiện về sau. Kết quả kiểm thử nhờ vậy đẹp hơn thực tế. Bài không bàn chuyện mô hình, chỉ nhắc rằng lỗi này bắt nguồn từ việc bỏ qua trục thời gian thứ hai.

Cửa sổ realtime theo tài liệu

Trang Real-Time Periods giải thích rằng mọi dữ liệu trong FRED gắn với một khoảng thời gian thực. Mặc định khoảng đó là ngày hôm nay. Với FRED mặc định chỉ có dữ liệu hiện hành, với ALFRED thì có lịch sử. Chuỗi không có lịch sử lưu sẽ trả ít vintage hơn anh em tưởng, nên phải kiểm trước.

Lấy danh sách vintage

Khi có khóa, endpoint series/vintagedates trả mọi ngày một chuỗi được sửa. Danh sách đó là đầu vào cho vòng lặp. Không có khóa thì lab dùng các ngày đã biết từ lịch công bố của GDP. Lab chọn 26/10, 29/11, 21/12/2023 ứng với ba lần công bố của quý 3/2023.

r = requests.get("https://api.stlouisfed.org/fred/series/vintagedates", params={
    "series_id": "GDPC1", "api_key": os.environ["FRED_API_KEY"],
    "file_type": "json", "realtime_start": "2023-01-01", "realtime_end": "2023-12-31",
}, timeout=60)
print(r.json()["vintage_dates"])

Đoạn này theo tài liệu, chưa chạy. Anh em dùng nó để thay danh sách ngày viết tay.

So giá trị cùng observation qua hai vintage với FRED API vintage dữ liệu

Đây là phần cốt lõi: ví dụ bản sửa số liệu có thật.

Quý 3/2023 qua sáu vintage

Sáu giá trị một quý

Sáu giá trị một quý

Bảng dưới là output thật của ALFRED cho GDPC1. Cột cuối do lab tính: tỷ lệ tăng so với quý trước, quy về năm, từ hai số trong cùng vintage.

Bảng: Quý 3/2023 qua sáu vintage

Vintage

Quý 2/2023

Quý 3/2023

Tăng quy năm do lab tính

26/10/2023

22225.350

22491.567

4.9%

29/11/2023

22225.350

22506.365

5.2%

21/12/2023

22225.350

22490.692

4.9%

26/09/2024

22539.418

22780.933

4.4%

25/09/2025

22580.499

22840.989

4.7%

29/10/2026

22577.556

22828.796

4.5%

Đọc bảng này

Trong ba tháng đầu, chỉ quý 3 thay đổi, quý 2 đứng yên. Tới vintage tháng 9/2024, cả hai quý nhảy lên hơn 300 tỷ, do đợt sửa theo năm. Mức tăng trưởng đi từ 4.9 lên 5.2, về 4.9, rồi 4.4, 4.7, 4.5. Không có con số nào "sai" tại thời điểm của nó. Chúng là các ước tính ở các mức thông tin khác nhau.

Mức sửa theo giá trị và theo tăng trưởng

Giá trị quý 3 từ lần đầu tới bản mới nhất tăng khoảng 337 tỷ đô la, tức khoảng 1.5 phần trăm. Tăng trưởng quy năm chỉ lệch 0.4 điểm phần trăm. Hai cách đo đó kể hai câu chuyện khác nhau, vì sửa cấp độ khác sửa tốc độ. Báo cáo cần nói rõ đang so cái gì.

Hàm so hai vintage

Hàm dưới gộp hai vintage theo observation date, tính chênh theo giá trị và phần trăm.

def compare(sid, d1, d2, dates):
    h1, a = vintage(sid, d1)
    h2, b = vintage(sid, d2)
    for k in dates:
        x, y = float(a[k]), float(b[k])
        print(k, x, y, round(y - x, 3), round((y / x - 1) * 100, 3))
 
compare("GDPC1", "2023-10-26", "2026-10-29", ["2023-04-01", "2023-07-01"])

Với hai ngày đó, quý 2/2023 đổi từ 22225.350 lên 22577.556 và quý 3/2023 từ 22491.567 lên 22828.796. Cột phần trăm cho biết mức sửa cấp độ.

Quý 2/2018 sửa nhỏ

Vintage 27/07/2018 cho quý 2/2018 là 18507.200, vintage 29/08/2018 là 18514.595. Đây là lần sửa thứ hai thông thường, chỉ khoảng 7 tỷ. Không phải lần sửa nào cũng lớn. Đo mức sửa trên nhiều kỳ mới có ý nghĩa, một ví dụ chỉ để minh họa cơ chế.

Đổi năm gốc phá so sánh trực tiếp

Quý 1/1947 có giá trị 2033.061 ở vintage 2018 và 2019, nhưng 2182.681 ở mọi vintage từ 10/2023. Quý cách đây gần 80 năm không có thêm thông tin mới. Thứ thay đổi là năm gốc của đô la cố định, từ 2012 sang 2017 theo tên đơn vị hiện tại. Khi đổi năm gốc, so cấp độ giữa hai vintage là so hai đơn vị khác nhau. Lúc đó nên so tốc độ tăng.

PAYEMS: dấu của tháng có thể đổi

Vintage 01/08/2025 cho tháng 5, 6, 7/2025 là 159452, 159466, 159539 nghìn người. Vintage 02/10/2026 cho cùng ba tháng là 158498, 158478, 158542. Mức chênh gần một triệu việc làm đến từ các đợt sửa, trong đó có sửa chuẩn hằng năm theo cách nhà thống kê gọi. Quan trọng hơn, tháng 6 ở bản cũ tăng 14 nghìn, còn ở bản mới giảm 20 nghìn.

Bảng: PAYEMS: dấu của tháng có thể đổi

Tháng

Vintage 01/08/2025

Vintage 02/10/2026

Đổi so tháng trước, bản cũ

Bản mới

05/2025

159452

158498

không tính

không tính

06/2025

159466

158478

+14

-20

07/2025

159539

158542

+73

+64

UNRATE gần như không đổi

Lab so hai vintage đầu và cuối năm 2026 cho tháng 6, 11, 12/2025: 4.1, 4.5, 4.4 ở cả hai. Tỷ lệ thất nghiệp theo chuỗi này ổn định hơn nhiều trong mẫu của lab. Số dòng khác nhau 936 và 945 do thêm tháng mới. Vì vậy mức quan tâm vintage phụ thuộc chuỗi, không nên áp một quy tắc chung.

Bảng so mức sửa

Khi cần so nhiều chuỗi, anh em dùng tỷ lệ, không dùng giá trị. Một con số trăm tỷ trong GDP nhỏ hơn nhiều so với vài nghìn trong một chuỗi nhỏ. Bài không kết luận chuỗi nào đáng tin hơn, vì lab chỉ đọc vài kỳ.

Giữ unit, frequency và cờ thiếu, không suy ra dự báo kinh tế từ FRED API vintage dữ liệu

Phần này giữ những cột giúp người đọc không hiểu sai.

Đơn vị đi theo vintage

Đơn vị đổi theo vintage

Đơn vị đổi theo vintage

Đơn vị của chuỗi có thể đổi theo thời gian, như ví dụ năm gốc. Vì vậy bảng metadata nên có thêm cột vintage, không phải một đơn vị cho cả chuỗi. Khi có khóa, endpoint series với realtime cho biết metadata tại thời điểm đó theo tài liệu. Lab chỉ đọc tên đơn vị hiện tại trên trang ALFRED.

Tần suất và phép gộp

GDPC1 theo quý, PAYEMS theo tháng. Tài liệu có tham số frequency và aggregation_method để gộp. Gộp phía nguồn tiện, nhưng số trong bảng không còn là số gốc. Bảng cần ghi rõ đã gộp thế nào. Lab không gộp.

Giá trị thiếu là dấu chấm

Tài liệu FRED biểu diễn giá trị thiếu bằng dấu chấm trong response API. CSV của lab có thể để ô trống. Script phải đọc được cả hai và đổi thành None, không đổi thành 0. Lab đọc UNRATE vintage 01/11/2026 và thấy đúng một ô trống trong 945 dòng: tháng 10/2025, nằm giữa 4.4 của tháng 9 và 4.5 của tháng 11. Ô đó không phải số 0 và không nên nội suy thành số thật.

def to_num(v):
    v = (v or "").strip()
    if v in ("", "."):
        return None
    return float(v)
 
print(to_num("22491.567"), to_num("."), to_num(""))

Hàm in 22491.567, None, None. Chỉ vài dòng nhưng tránh được lỗi cộng trung bình sai.

Không suy ra dự báo

Từ mức sửa của quá khứ không thể nói số sắp tới sẽ được sửa lên hay xuống. Bài cũng không dùng các số trên để nhận xét về kinh tế Mỹ. Trong báo cáo, câu đúng là "số quý 3/2023 đã được sửa từ X lên Y", không phải "kinh tế tốt hơn người ta nghĩ".

Ghi nguồn gốc của số

FRED là nơi tổng hợp, số GDP đến từ cơ quan thống kê của Mỹ. Điều khoản nhắc việc dùng dữ liệu theo quy định của bên thứ ba. Một số chuỗi có bản quyền riêng và giới hạn phân phối lại. Trước khi công bố lại, anh em xem ghi chú nguồn trên trang chuỗi.

Cột trạng thái cho kỳ mới

Kỳ cuối của mỗi vintage là số sơ bộ. Bảng nên có cột is_latest_obs_in_vintage. Biểu đồ có thể vẽ nét đứt cho các kỳ gần nhất, nhắc người đọc rằng phần đó còn được sửa.

Lưu vintage, đường tải và vai trò proxy với FRED API vintage dữ liệu

Phần này nói về cách lưu trữ để tự có lịch sử, và tại sao proxy không đóng vai trò gì đáng kể.

Mô hình bảng hai trục

Bảng dài có các cột series_id, obs_date, realtime_start, realtime_end, value. Một dòng mới chỉ được thêm khi giá trị đổi, và dòng cũ đóng realtime_end lại. Đây chính là mô hình của tài liệu FRED, và nó tương tự các bảng lịch sử trong kho dữ liệu.

def upsert(tbl, sid, obs, val, today):
    cur = [r for r in tbl if r["sid"] == sid and r["obs"] == obs and r["end"] is None]
    if cur and cur[0]["val"] == val:
        return "giu"
    if cur:
        cur[0]["end"] = today
    tbl.append({"sid": sid, "obs": obs, "val": val, "start": today, "end": None})
    return "moi"
 
t = []
print(upsert(t, "GDPC1", "2023-07-01", 22491.567, "2023-10-26"))
print(upsert(t, "GDPC1", "2023-07-01", 22491.567, "2023-10-28"))
print(upsert(t, "GDPC1", "2023-07-01", 22506.365, "2023-11-29"))
print(t)

Output là moi, giu, moi, và bảng có hai dòng, dòng đầu đóng tại 2023-11-29. Dự án tự chạy upsert hằng ngày sẽ có lịch sử riêng của mình kể cả với nguồn không có ALFRED.

Một phiên bản tự lưu khác ALFRED thế nào

Bảng tự chạy upsert ghi ngày anh em nhìn thấy số, còn ALFRED ghi ngày nguồn công bố. Nếu job chạy muộn hai ngày, realtime_start của anh em muộn hơn hai ngày. Với nghiên cứu cần chính xác tới ngày, nguồn có vintage chính thức tốt hơn. Với dashboard nội bộ, bảng tự lưu thường đủ dùng.

Nguồn không có vintage

Nhiều nguồn thống kê chỉ cho số mới nhất. Muốn có lịch sử, cách duy nhất là tự chụp lại đều đặn từ hôm nay. Bộ dữ liệu ECB, World Bank hay Eurostat trong cụm này đều có thể lưu theo cách đó. Lịch sử bắt đầu từ ngày anh em bắt đầu lưu, nên càng sớm càng có giá trị.

Kiểm tra bảng hai trục

Phép kiểm cơ bản là với một series và một obs_date, các khoảng realtime không được chồng nhau và chỉ có một dòng đang mở. Anh em chạy phép kiểm này sau mỗi lần nạp. Vi phạm thường đến từ việc chạy hai job cùng lúc. Lỗi loại này không làm hỏng biểu đồ ngay, nhưng làm truy vấn theo ngày trả hai giá trị.

Truy vấn theo ngày biết

Muốn biết số tại ngày D, anh em lọc các dòng có start nhỏ hơn hoặc bằng D, và end rỗng hoặc lớn hơn D. Câu lọc này là thứ làm bảng hai trục đáng giá. Trong ví dụ upsert ở trên, ngày 2023-11-01 trả 22491.567, ngày 2023-12-01 trả 22506.365.

Lịch tải

Chuỗi quý chỉ đổi vào ngày công bố, nên tải theo lịch phát hành là đủ. Tải hằng ngày cho vài chục chuỗi cũng nhẹ, nhưng không cần thiết. API có endpoint theo release để biết ngày công bố, lab chưa thử.

Nghỉ giữa lượt gọi

Lab nghỉ ba giây giữa các lần tải ALFRED. Tệp CSV là tính năng của trang web, không phải API có cam kết, nên không phù hợp cho pipeline sản xuất. Có khóa thì dùng API, vì đó là kênh chính thức và có điều khoản rõ ràng.

Proxy có cần không

Không. Khóa API miễn phí cho nhu cầu thông thường, và giới hạn gắn với khóa. Đổi IP không giải quyết gì. Điều khoản yêu cầu dùng đúng mục đích. Cách đặt nhịp có ở bài rate limit API khi dùng proxy.

Khi mạng công ty bắt buộc

Nếu buộc đi qua cổng ra, khai báo ở session, chuỗi theo định dạng proxy. Phần so vintage chạy offline. Vai trò proxy trong thu thập có ở bài Web Scraping proxy là gì.

Tác vụ khác cần IP Việt Nam thì anh em có thể mua proxy uy tín tại trang chủ ProxyVN.

Khóa phiên bản

Lab chạy Python 3.12.10, requests 2.34.2. Ghi rõ endpoint CSV đã dùng, vì tính năng của trang web có thể đổi không báo trước. Khi chuyển sang API, chạy lại một vài vintage để so với bảng cũ.

Đầu ra nghiệm thu bảng series, observation, realtime start, end và bản sửa số liệu của FRED API vintage dữ liệu

Mục này chốt bảng và danh sách kiểm.

Schema của bảng

Nghiệm thu bảng vintage

Nghiệm thu bảng vintage

Bảng: Schema của bảng

Cột

Ví dụ thật

Ghi chú

series_id

GDPC1

Khóa

obs_date

2023-07-01

Đầu kỳ

realtime_start

2023-11-29

Từ ngày biết

realtime_end

2023-12-20

Tới ngày biết

value

22506.365

None khi thiếu

units

Billions of Chained 2017 Dollars

Theo vintage

frequency

Quarterly

Theo chuỗi

source_url

alfredgraph.csv

Kênh lấy

Danh sách kiểm

  • Tên cột: có hậu tố ngày vintage, nếu không thì không phải vintage.
  • Hai trục: có cả obs_date và realtime.
  • Năm gốc: không so cấp độ qua lần đổi năm gốc.
  • Giá trị thiếu: đọc dấu chấm và ô trống thành None.
  • Kỳ cuối: đánh dấu là số sơ bộ.
  • Lời diễn giải: không suy ra dự báo.

Câu kết luận được phép viết

Từ lab có thể viết rằng quý 3/2023 của GDPC1 có sáu giá trị khác nhau qua sáu vintage. Tháng 6/2025 của PAYEMS đổi dấu thay đổi giữa hai vintage. Tệp FRED thường bỏ qua vintage_date. Không nên viết rằng chuỗi nào sai, hoặc xu hướng sửa số sẽ tiếp tục.

Những gì lab chưa chạy

Lab chưa gọi được FRED API với khóa, chưa chạy realtime_start, output_type, vintagedates, series, release. Cột realtime_end ví dụ trong bảng do lab suy từ ngày vintage kế tiếp, không phải API trả. Lab chỉ đọc ba chuỗi, vài kỳ.

Có hai trục thời gian: kỳ mà số nói tới và ngày mà người ta biết số đó. Tải một cột rồi gọi là cả bảng là nguồn của mọi nhầm lẫn.

FRED API vintage dữ liệu: câu hỏi thường gặp

Các câu dưới đây gom những điểm hay bị hỏi.

Có lấy vintage mà không cần khóa được không?

Lab lấy được qua tệp CSV của ALFRED. Pipeline thật nên dùng API có khóa.

Vì sao số quý 3/2023 tôi tải khác bài báo cũ?

Số đã được sửa nhiều lần. Dùng vintage cùng thời điểm bài báo.

Observation date 2023-07-01 có phải ngày công bố không?

Không. Đó là đầu kỳ của quý 3/2023. Ngày công bố nằm ở trục realtime.

Có nên so giá trị GDP giữa hai vintage?

Được, nếu cùng năm gốc. Khác năm gốc thì so tốc độ tăng.

Tệp fredgraph.csv có nhận vintage_date không?

Trong lab, tham số bị bỏ qua, mọi ngày đều trả dữ liệu mới nhất.

Vintage ngày nghỉ trả gì?

Bản có hiệu lực tại ngày đó, tên cột mang ngày hỏi.

Lần sửa có phải do số cũ sai không?

Không nhất thiết. Số đầu dựa trên thông tin chưa đủ, các bản sau bổ sung.

Proxy có giúp gì không?

Hầu như không. Giới hạn gắn với khóa, cần gì thì xin khóa của mình.

FRED API vintage dữ liệu và những điều cần nhớ

FRED API vintage dữ liệu giúp anh em trả lời đúng câu "lúc đó biết gì" khi tách observation date khỏi realtime, kiểm hậu tố vintage và không so qua đổi năm gốc. Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam khuyên anh em ghi rõ ngày biết số khi dùng FRED API vintage dữ liệu.

TIN TỨC LIÊN QUAN