OpenChart
Claude·Codex와 함께하는 무료 데스크톱 차트 도구. 알림 설정·차트 움직임 분석·데이터 제공자 선택
1993년부터 현재까지의 페소를 인플레이션 누적, 연간율, 공식·블루 달러 차이와 함께 변환
Convertí pesos de cualquier mes desde 1993 a pesos de hoy, con inflación acumulada, tasa anualizada y la divergencia del dólar oficial vs blue.
금융Python · TypeScriptGitHub @lucasdaddiego온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기What is X pesos from year Y worth today? Argentine inflation and peso purchasing power from real INDEC + BCRA data: a spliced CPI (IPC San Luis for the 2007-2015 INDEC-intervention years) plus official vs blue dollar. Reproducible Python pipeline + static TypeScript / Observable Plot app.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗What is X pesos from year Y worth today? This tool answers it from real INDEC and BCRA data — it downloads the official consumer-price and exchange-rate series, splices them into one continuous monthly index, and converts any past peso amount into today's purchasing power, plus its value in dollars at the official and blue (informal) rates. No eyeballed inflation, no single broken series across the years the INDEC was intervened.
▶ Try it live: peso.daddiego.com.ar
Validated to the official figures. The spliced index reproduces INDEC's published Dec–Dec inflation for 2017–2025 to the decimal (24.8 · 47.6 · 53.8 · 36.1 · 50.9 · 94.8 · 211.4 · 117.8 · 31.5 %), the IPC-GBA 2002 collapse (40.9 %), and 1:1 convertibility FX — plus a pinned cumulative regression check that $1.000 of January 2003 ≈ $1.65M of May 2026 (derived once from this same splice, so it catches a chaining error, not an error shared by every build).
It has two parts:
pipeline/ — an offline, reproducible Python pipeline (uv, standard-library only) that fetches the
real source series, splices them, validates against known anchors, and emits one small,
provenance-stamped JSON artifact.web/ — a static Vite + TypeScript site that reads that JSON and renders honest graphics
(purchasing-power decay, the official-vs-blue dollar gap, annual/monthly inflation, the spliced
index itself) plus the USD divergence — all lookups, no client-side statistics.make setup # uv sync (python deps) + npm install (web deps)
make data # fetch → splice (build JSON) → validate (vs INDEC/BCRA)
make test # python + web unit tests, each gated at 100% coverage
make lint # ruff + mypy + tsc
make up # vite dev server → http://localhost:5180
make build # static bundle in web/dist/
make deploy # publish web/dist/ to Cloudflare Pages (needs wrangler auth)
make (or make help) lists every target. make data fetches the INDEC IPC series (GBA, San
Luis, Nacional), the BCRA reference dollar and the Bluelytics history, writes
data/series.v1.json and web/public/series.v1.json, and asserts the reproduction of the official
numbers. The steps can also be run one at a time with uv run python -m pipeline.{fetch,build,validate}.
datos.gob.ar (INDEC IPC ×3, BCRA dólar) + Bluelytics (blue)
└─ pipeline/ fetch → splice (chain MoM, rebase to 100) → validate → emit
└─ web/public/series.v1.json (versioned, provenance-stamped)
└─ web/ Vite + TS + Observable Plot (lookups + honest charts only)
The equivalent today of X pesos of month m is simply X × 100 / CPI[m], where the spliced
index is rebased so the latest month = 100. USD endpoints divide by that month's official or blue
rate.
docs/metodologia.md, and the "Metodología" section in the app.pipeline/ config (pinned series + anchors) · fetch · load · splice · build · validate · artifact_check · watch
tests/ pytest suite for pipeline/ — offline, synthetic fixtures, 100% statement+branch coverage
data/ series.v1.json (raw/ is gitignored)
web/ index.html · src/{main,charts,inflation,format,usd,types}.ts · styles.css · test/ (vitest, 100%)
docs/ metodologia.md
Both layers are gated at 100% coverage — statements and branches:
pipeline/ — pytest against tiny synthetic series (no network).web/src/ — vitest + jsdom, every render path exercised against the committed artifact.make test runs both; make lint runs ruff + mypy + tsc. GitHub Actions enforce it,
path-filtered so a web-only change never reaches for the data sources; every action is pinned to
a commit SHA and Dependabot (.github/dependabot.yml) keeps the pins, npm and uv current:
| Workflow | What it does |
|---|---|
deploy.yml | web typecheck + vitest 100% gate + production build, then (only if that passed) the Cloudflare Pages deploy: production on push, preview per PR |
python.yml | ruff + mypy + pytest 100% gate (offline, fast) |
data.yml | the pipeline still reproduces INDEC/BCRA, and the committed artifact matches the rebuild |
data-update.yml | monthly watch — when INDEC publishes a newer month, bumps the vintage and pushes it to master (which deploys); a draft PR instead when the rebuild needs a human (a new year's Dec–Dec anchor) |
cleanup.yml | deletes a PR's preview deployments when the PR closes |
The series are vintage-pinned in pipeline/config.py (DATA_VINTAGE): every month at or
before the vintage is fixed, so a fresh fetch reproduces the committed artifact even as the upstream
APIs append new months. To update to a newer month, bump DATA_VINTAGE, run make data, and commit
the regenerated JSON; the monthly watch (data-update.yml, pipeline/watch.py) does exactly that on
the 20th and pushes the result to master with the ipc-watch deploy key (a bypass actor of the
protect-master ruleset), so the site redeploys on its own. A bump that completes a calendar year
must also add that year's INDEC Dec–Dec figure to INDEC_NACIONAL_ANNUAL, or make data fails:
that bump arrives as a draft PR whose body says which year. Downstream,
argentina-income-percentile polls
the deployed series.v1.json on the 21st. If a source
ever revises a past month, data.yml flags the drift.
Static bundle + one JSON → ideal for Cloudflare Pages. deploy.yml runs the web tests, builds
web/dist/ and, only once the tests passed, uploads it with wrangler on every push to master
(production) and on every pull request (a per-branch preview URL); cleanup.yml removes a PR's
previews once it closes. Both need the
CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID repository secrets — without them the workflow
still builds but skips the upload. make deploy does the same upload by hand (needs wrangler
auth). Headers come from web/public/_headers. The Pages project is valor-peso
(CF_PROJECT in the Makefile), served at valor-peso.pages.dev
behind the custom domain peso.daddiego.com.ar.
The rigorous spine — the spliced CPI and the official FX — is validated to published figures. The
one judgement call is using IPC San Luis for 2007–2015: it's a credible provincial
alternative to the discredited official series, but it's one choice among several (IPC Congreso,
CABA, other provinces) that tell the same story with slightly different numbers. The README and the
app surface this honestly; the alternative is documented and swappable in config.py.
Code: MIT. · Data: see NOTICE.
Elaboración propia en base a series oficiales del INDEC (IPC) y del BCRA (tipo de cambio), vía datos.gob.ar, empalmadas con el IPC de San Luis para el período de intervención del INDEC (2007–2015), y cotización informal histórica de Bluelytics.