{
  "_id": "6a60506214e95619b75d8482",
  "Type": "Package",
  "Package": "fundsr",
  "Title": "Rolling Differences (CAGR and Log), Survival and Other Financial\nPlanning Plots",
  "Version": "0.5.0",
  "Authors@R": "person(\"Stanislav\", \"Traykov\", , \"st@gmuf.com\", role = c(\"aut\", \"cre\"))",
  "Description": "A small tidyverse-based framework for importing and\nplotting UCITS ETF and index data, ETF liquidity measures, as\nwell as survival curves and other plots related to financial\nplanning.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.3",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "URL": "https://stantraykov.github.io/fundsr/,\nhttps://github.com/StanTraykov/fundsr",
  "BugReports": "https://github.com/StanTraykov/fundsr/issues",
  "Config/testthat/edition": "3",
  "Config/pak/sysreqs": "libicu-dev libxml2-dev libx11-dev",
  "Repository": "https://stantraykov.r-universe.dev",
  "Date/Publication": "2026-03-28 05:51:23 UTC",
  "RemoteUrl": "https://github.com/StanTraykov/fundsr",
  "RemoteRef": "v0.5.0",
  "RemoteSha": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-22 05:00:36 UTC",
    "User": "root"
  },
  "Author": "Stanislav Traykov [aut, cre]",
  "Maintainer": "Stanislav Traykov <st@gmuf.com>",
  "_user": "stantraykov",
  "_type": "src",
  "_file": "fundsr_0.5.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/262a75aad83f01bbc691fb5e3321702d440893d1ce9ed14bccc387fa01df095c",
  "_filesize": 1648811,
  "_sha256": "262a75aad83f01bbc691fb5e3321702d440893d1ce9ed14bccc387fa01df095c",
  "_expires": "2026-10-30T05:08:47.000Z",
  "_created": "2026-07-22T05:00:36.000Z",
  "_published": "2026-07-22T05:08:50.076Z",
  "_jobs": [
    {
      "job": 88835820141,
      "time": 161,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8518793975"
    },
    {
      "job": 88835820142,
      "time": 148,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8518790629"
    },
    {
      "job": 88835820120,
      "time": 229,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8518859821"
    },
    {
      "job": 88835820143,
      "time": 151,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8518845241"
    },
    {
      "job": 88835332410,
      "time": 215,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8518750878"
    },
    {
      "job": 88835820117,
      "time": 128,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8518785445"
    },
    {
      "job": 88835820140,
      "time": 83,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8518773398"
    },
    {
      "job": 88835820152,
      "time": 84,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8518773716"
    },
    {
      "job": 88835820195,
      "time": 94,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8518775967"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695",
  "_status": "success",
  "_upstream": "https://github.com/StanTraykov/fundsr",
  "_commit": {
    "id": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
    "author": "Stan Traykov <st@gmuf.com>",
    "committer": "Stan Traykov <st@gmuf.com>",
    "message": "Increment version number to 0.5.0\n",
    "time": 1774677083
  },
  "_maintainer": {
    "name": "Stanislav Traykov",
    "email": "st@gmuf.com",
    "login": "stantraykov",
    "description": "",
    "uuid": 36573153
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "scales",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "xml2",
      "role": "Imports"
    },
    {
      "package": "curl",
      "role": "Suggests"
    },
    {
      "package": "DiagrammeR",
      "role": "Suggests"
    },
    {
      "package": "kableExtra",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "svglite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "stantraykov",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-13",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v0.5.0",
      "date": "2026-03-28"
    }
  ],
  "_topics": [
    "data-visualization",
    "diy-investing",
    "etfs",
    "finance",
    "financial-planning",
    "index-funds",
    "investing",
    "liquidity",
    "personal-finance",
    "survival-curves",
    "tidyverse",
    "tracking-differences"
  ],
  "_stars": 6,
  "_contributors": [
    {
      "user": "stantraykov",
      "count": 5,
      "uuid": 36573153
    }
  ],
  "_userbio": {
    "uuid": 36573153,
    "type": "user",
    "name": "Stanislav Traykov",
    "followers": 7
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/fundsr"
  },
  "_devurl": "https://github.com/stantraykov/fundsr",
  "_pkgdown": "https://stantraykov.github.io/fundsr/",
  "_searchresults": 5,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/fundsr.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "add_data_loader",
    "add_fund_index_map",
    "add_fund_urls",
    "adjust_for_split",
    "build_all_series",
    "chance_alive",
    "chance_alive_es_aasmr",
    "clear_data_loaders",
    "clear_fund_index_map",
    "clear_inkscape_queue",
    "clear_storage",
    "download_fund_data",
    "export_pngs",
    "fundsr_default_session",
    "fundsr_example_data",
    "fundsr_options",
    "fundsr_session",
    "get_fund_index_map",
    "get_storage",
    "import_fund",
    "join_env",
    "load_fund",
    "plot_chance_alive",
    "plot_chance_alive_es_aasmr",
    "plot_roll_diffs",
    "read_es_aasmr",
    "read_life_table",
    "read_timeseries",
    "read_timeseries_excel",
    "reset_state",
    "roll_diffs",
    "run_data_loaders",
    "run_plots",
    "save_plot",
    "store_timeseries"
  ],
  "_help": [
    {
      "page": "add_data_loader",
      "title": "Register a data loader",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "add_data_loader"
      ]
    },
    {
      "page": "add_fund_index_map",
      "title": "Add to fund-index map",
      "concept": [
        "fund-index map functions"
      ],
      "topics": [
        "add_fund_index_map"
      ]
    },
    {
      "page": "add_fund_urls",
      "title": "Add entries to the fund download list",
      "concept": [
        "download functions"
      ],
      "topics": [
        "add_fund_urls"
      ]
    },
    {
      "page": "adjust_for_split",
      "title": "Adjust a time series for a stock split",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "adjust_for_split"
      ]
    },
    {
      "page": "build_all_series",
      "title": "Run all registered data loaders and join all loaded series into a big tibble.",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "build_all_series"
      ]
    },
    {
      "page": "chance_alive",
      "title": "Compute conditional survival (chance alive) by age",
      "concept": [
        "survival curve functions"
      ],
      "topics": [
        "chance_alive"
      ]
    },
    {
      "page": "chance_alive_es_aasmr",
      "title": "Compute cohort-style survival from Eurostat EUROPOP2023 mortality assumptions",
      "concept": [
        "survival curve functions"
      ],
      "topics": [
        "chance_alive_es_aasmr"
      ]
    },
    {
      "page": "clear_data_loaders",
      "title": "Clear registered data loaders",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "clear_data_loaders"
      ]
    },
    {
      "page": "clear_fund_index_map",
      "title": "Clear fund-index map",
      "concept": [
        "fund-index map functions"
      ],
      "topics": [
        "clear_fund_index_map"
      ]
    },
    {
      "page": "clear_inkscape_queue",
      "title": "Clear queued Inkscape exports",
      "concept": [
        "plot export utilities"
      ],
      "topics": [
        "clear_inkscape_queue"
      ]
    },
    {
      "page": "clear_storage",
      "title": "Clear storage",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "clear_storage"
      ]
    },
    {
      "page": "download_fund_data",
      "title": "Download fund data according to the configured download list",
      "concept": [
        "download functions"
      ],
      "topics": [
        "download_fund_data"
      ]
    },
    {
      "page": "export_pngs",
      "title": "Export queued SVGs to PNG via Inkscape",
      "concept": [
        "plot export utilities"
      ],
      "topics": [
        "export_pngs"
      ]
    },
    {
      "page": "fundsr_default_session",
      "title": "Get the default fundsr session",
      "concept": [
        "config functions"
      ],
      "topics": [
        "fundsr_default_session"
      ]
    },
    {
      "page": "fundsr_example_data",
      "title": "Get the path to an example file shipped with the package.",
      "concept": [
        "example helpers"
      ],
      "topics": [
        "fundsr_example_data"
      ]
    },
    {
      "page": "fundsr_options",
      "title": "Set fundsr package options",
      "concept": [
        "config functions"
      ],
      "topics": [
        "fundsr_options"
      ]
    },
    {
      "page": "fundsr_session",
      "title": "Create a fundsr session",
      "concept": [
        "config functions"
      ],
      "topics": [
        "fundsr_session"
      ]
    },
    {
      "page": "get_fund_index_map",
      "title": "Get the internal fund index map",
      "concept": [
        "fund-index map functions"
      ],
      "topics": [
        "get_fund_index_map"
      ]
    },
    {
      "page": "get_storage",
      "title": "Get the internal fund storage",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "get_storage"
      ]
    },
    {
      "page": "import_fund",
      "title": "Import a fund's NAV data and optionally register its benchmark mapping",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "import_fund"
      ]
    },
    {
      "page": "join_env",
      "title": "Join all data frames in an environment with optional late joins",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "join_env"
      ]
    },
    {
      "page": "load_fund",
      "title": "Deprecated alias for 'import_fund()'.",
      "concept": [
        "deprecated functions"
      ],
      "topics": [
        "load_fund"
      ]
    },
    {
      "page": "plot_chance_alive",
      "title": "Plot chance alive by age",
      "concept": [
        "survival curve functions"
      ],
      "topics": [
        "plot_chance_alive"
      ]
    },
    {
      "page": "plot_chance_alive_es_aasmr",
      "title": "Plot cohort-style survival from Eurostat EUROPOP2023 assumptions",
      "concept": [
        "survival curve functions"
      ],
      "topics": [
        "plot_chance_alive_es_aasmr"
      ]
    },
    {
      "page": "plot_roll_diffs",
      "title": "Plot rolling return differences against benchmark",
      "concept": [
        "rolling difference functions"
      ],
      "topics": [
        "plot_roll_diffs"
      ]
    },
    {
      "page": "read_es_aasmr",
      "title": "Read Eurostat EUROPOP2023 mortality-assumption table (proj_23naasmr)",
      "concept": [
        "survival curve functions"
      ],
      "topics": [
        "read_es_aasmr"
      ]
    },
    {
      "page": "read_life_table",
      "title": "Read HMD period life tables (1x1) from disk",
      "concept": [
        "survival curve functions"
      ],
      "topics": [
        "read_life_table"
      ]
    },
    {
      "page": "read_timeseries",
      "title": "Read a time series file (CSV/TSV) with a date + one or more value columns",
      "concept": [
        "fund/index file readers"
      ],
      "topics": [
        "read_timeseries"
      ]
    },
    {
      "page": "read_timeseries_excel",
      "title": "Read a time series from an Excel workbook",
      "concept": [
        "fund/index file readers"
      ],
      "topics": [
        "read_timeseries_excel"
      ]
    },
    {
      "page": "reset_state",
      "title": "Clear fundsr session state",
      "concept": [
        "config functions"
      ],
      "topics": [
        "reset_state"
      ]
    },
    {
      "page": "roll_diffs",
      "title": "Compute rolling annualized tracking difference statistics",
      "concept": [
        "rolling difference functions"
      ],
      "topics": [
        "roll_diffs"
      ]
    },
    {
      "page": "run_data_loaders",
      "title": "Run registered data loaders",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "run_data_loaders"
      ]
    },
    {
      "page": "run_plots",
      "title": "Generate and export rolling-differences from a specification",
      "concept": [
        "plot export utilities"
      ],
      "topics": [
        "run_plots"
      ]
    },
    {
      "page": "save_plot",
      "title": "Save a plot as SVG and/or PNG and queue for Inkscape conversion",
      "concept": [
        "plot export utilities"
      ],
      "topics": [
        "save_plot"
      ]
    },
    {
      "page": "store_timeseries",
      "title": "Store a cached object in the package storage environment",
      "concept": [
        "fund/index workflow functions"
      ],
      "topics": [
        "store_timeseries"
      ]
    }
  ],
  "_pkglogo": "https://github.com/StanTraykov/fundsr/raw/v0.5.0/man/figures/logo.png",
  "_readme": "https://github.com/StanTraykov/fundsr/raw/v0.5.0/README.md",
  "_rundeps": [
    "bit",
    "bit64",
    "cellranger",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "dplyr",
    "farver",
    "generics",
    "ggplot2",
    "glue",
    "gtable",
    "hms",
    "isoband",
    "labeling",
    "lifecycle",
    "lubridate",
    "magrittr",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "purrr",
    "R6",
    "RColorBrewer",
    "readr",
    "readxl",
    "rematch",
    "rlang",
    "S7",
    "scales",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "tzdb",
    "utf8",
    "vctrs",
    "viridisLite",
    "vroom",
    "withr",
    "xml2"
  ],
  "_vignettes": [
    {
      "source": "importing-and-computing-differences.Rmd",
      "filename": "importing-and-computing-differences.html",
      "title": "Importing Data and Computing Rolling Differences",
      "author": "Stanislav Traykov",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The master table",
        "Setup",
        "Importing",
        "store_timeseries()",
        "import_fund()",
        "Building the master table",
        "Advanced joining",
        "Downloading NAV histories",
        "Retrieving benchmarks from fund files",
        "Using data loaders",
        "Resetting and reloading",
        "Calculating differences",
        "Plotting",
        "Output"
      ],
      "created": "2026-03-28 05:23:05",
      "modified": "2026-03-28 05:23:05",
      "commits": 1
    }
  ],
  "_score": 3.4771212547196626,
  "_indexed": true,
  "_nocasepkg": "fundsr",
  "_universes": [
    "stantraykov"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-07-22T05:03:13.000Z",
      "distro": "resolute",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/78cc71f1f2bde1a63041909e00b224f747ea009ab04c872dc33fa528466f54ec",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-07-22T05:03:01.000Z",
      "distro": "resolute",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/6ee1bae858ae52195d0a75afc64a4964198c057e5d14a298276e5975ebd0bd6e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-07-22T05:07:15.000Z",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/ad555c682309ccc5a796e380d59e22137c6856d6487578b6058b24c18ef60e3b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-07-22T05:06:25.000Z",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/f30792946f2947d14e5d5234adbab6b9a7cd39a309b7b3d89d82bc27debf913c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.5.0",
      "date": "2026-07-22T05:03:03.000Z",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/d423e9a1fbfdebe0fc13159958bdb163c5bc94564c7af091b58d608abce9fcdd",
      "status": "success",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-07-22T05:01:48.000Z",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/bb29154ba2138a5c1b9f05e694b679e2945e243bc80c877404b8b7d8b522cedb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-07-22T05:01:51.000Z",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/a9aa2ecba2f88a7e54a1f08097b31343249daad287ad37502e058bdb59a97bff",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-07-22T05:01:58.000Z",
      "commit": "c13c9e33067ccc0bd9ae6d47b8538d3f6952661f",
      "fileid": "https://r2.ropensci.org/6ed2fb0dd903325ead19e7527fbe6821cef98f0b58dda35a2a3f544a996996a8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/stantraykov/actions/runs/29892401695"
    }
  ]
}