{
  "_id": "6ad13c460edca5be25021ac0",
  "Package": "investlabr",
  "Title": "Research Workflows for Macro and Cross-Asset Analysis",
  "Version": "0.0.6.2",
  "Authors@R": "person(\"Oliver\", \"Zhou\", email = \"oliver.yxzhou@gmail.com\",\nrole = c(\"aut\", \"cre\"))",
  "Author": "Oliver Zhou [aut, cre]",
  "Maintainer": "Oliver Zhou <oliver.yxzhou@gmail.com>",
  "Description": "Reusable research workflows for macro-financial and\ncross-asset analysis. The package sits on top of data packages\nsuch as 'investdatar' and focuses on transforming existing\nmarket and macro data into analysis-ready research tables,\nfactor and indicator constructions, event and regime overlays,\nsensitivity estimates, scenario comparisons, and research-grade\nvisualization outputs. Portfolio risk-return comparisons use\nthe mean-variance framework of Markowitz (1952)\n<doi:10.1111/j.1540-6261.1952.tb01525.x>. Research-side\nvolatility simulations include the generalized autoregressive\nconditional heteroskedasticity model of Bollerslev (1986)\n<doi:10.1016/0304-4076(86)90063-1>.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/OliverLDS/investlabr",
  "BugReports": "https://github.com/OliverLDS/investlabr/issues",
  "Encoding": "UTF-8",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.0.0",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-15 20:44:36 UTC",
    "User": "root"
  },
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-15 19:17:18 UTC",
  "RemoteUrl": "https://github.com/cran/investlabr",
  "RemoteRef": "HEAD",
  "RemoteSha": "0424180883e7fa6a572c003e35dee7fe414c21d6",
  "_user": "cran",
  "_type": "src",
  "_file": "investlabr_0.0.6.2.tar.gz",
  "_fileid": "https://r2.ropensci.org/1e9a88578aaffbf5aa5f3a1a0c09022c0f796243e31011581e73d5ebd9f4987c",
  "_filesize": 1901610,
  "_sha256": "1e9a88578aaffbf5aa5f3a1a0c09022c0f796243e31011581e73d5ebd9f4987c",
  "_expires": "2027-01-23T20:49:08.000Z",
  "_created": "2026-10-15T20:44:36.000Z",
  "_published": "2026-10-15T20:49:10.833Z",
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 116661619127,
      "time": 133,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12005332915"
    },
    {
      "job": 116661619037,
      "time": 143,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12005683209"
    },
    {
      "job": 116661619168,
      "time": 140,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12005537913"
    },
    {
      "job": 116661619530,
      "time": 139,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12006026050"
    },
    {
      "job": 116660299677,
      "time": 169,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12005192715"
    },
    {
      "job": 116661619232,
      "time": 118,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12005921285"
    },
    {
      "job": 116661619290,
      "time": 221,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12005558011"
    },
    {
      "job": 116661619442,
      "time": 180,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12005632966"
    },
    {
      "job": 116661619308,
      "time": 216,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12006670452"
    },
    {
      "job": 116661619484,
      "time": 149,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12006260928"
    }
  ],
  "_upstream": "https://github.com/cran/investlabr",
  "_commit": {
    "id": "0424180883e7fa6a572c003e35dee7fe414c21d6",
    "author": "Oliver Zhou <oliver.yxzhou@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.0.6.2\n",
    "time": 1792091838
  },
  "_maintainer": {
    "name": "Oliver Zhou",
    "email": "oliver.yxzhou@gmail.com",
    "login": "oliverlds",
    "description": "Learn, Discover, Share",
    "uuid": 97855548
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "data.table",
      "version": ">= 1.12.4",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.5.0",
      "role": "Imports"
    },
    {
      "package": "ggrepel",
      "role": "Imports"
    },
    {
      "package": "grid",
      "role": "Imports"
    },
    {
      "package": "gridExtra",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "patchwork",
      "role": "Imports"
    },
    {
      "package": "quadprog",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "scales",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "Rcpp",
      "role": "Imports"
    },
    {
      "package": "svglite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-42",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.0.6.2",
      "date": "2026-10-15"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "oliverlds",
      "count": 1,
      "uuid": 97855548
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 631,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/investlabr"
  },
  "_devurl": "https://github.com/oliverlds/investlabr",
  "_searchresults": 0,
  "_topics": [
    "cpp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/investlabr.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.0.6.2",
      "date": "2026-10-15"
    }
  ],
  "_exports": [
    "brief_data_as_of",
    "brief_plot_registry_entry",
    "brief_plot_registry_entry_v3",
    "brief_plot_registry_validate",
    "brief_plot_registry_write",
    "brief_plot_registry_write_from_meta",
    "brief_score_label",
    "eval_event_performance",
    "eval_portfolio_performance",
    "eval_strat_performance",
    "eval_strat_plot_scatter_maxdd_annret",
    "eval_strat_plot_tsline_eq",
    "factor_bounded_score",
    "gen_candle_plots_with_sr_dts",
    "gen_candle_plots_with_sr_lines",
    "gen_facet_plot_from_multicol_ts",
    "gen_grid_of_plots_with_labels",
    "gen_plot_comparing_events",
    "gen_plot_event_tsline_cum_ret",
    "gen_rolling_monthly_stats",
    "gen_yield_curve_plot",
    "gen_yield_curve_plot_grid",
    "get_optimal_weights",
    "get_yield_data_DT",
    "prep_backtest_result_from_equity",
    "prep_fill_forward",
    "prep_ratio_ohlc",
    "prep_recent_changes",
    "prep_series_wide",
    "prep_zscore",
    "sim_ar1_dgp",
    "sim_ar2_dgp",
    "sim_ar3_dgp",
    "sim_arch1_dgp",
    "sim_forward_fan",
    "sim_garch11_dgp",
    "sim_ma1_dgp",
    "sim_scenario_path",
    "viz_annotate_event_lines",
    "viz_annotate_last_value",
    "viz_annotate_regime_bands",
    "viz_annotate_source_caption",
    "viz_candle_base",
    "viz_forward_fan",
    "viz_palette_get",
    "viz_series_lines",
    "viz_style_get",
    "viz_style_set",
    "viz_theme_apply"
  ],
  "_help": [
    {
      "page": "brief_data_as_of",
      "title": "Calculate a conservative artifact data date",
      "topics": [
        "brief_data_as_of"
      ]
    },
    {
      "page": "brief_plot_registry_entry",
      "title": "Build a deprecated schema 2.0 research-artifact registry entry",
      "topics": [
        "brief_plot_registry_entry"
      ]
    },
    {
      "page": "brief_plot_registry_entry_v3",
      "title": "Build one canonical schema 3.0 research-artifact registry entry",
      "topics": [
        "brief_plot_registry_entry_v3"
      ]
    },
    {
      "page": "brief_plot_registry_validate",
      "title": "Validate a research-artifact plot registry",
      "topics": [
        "brief_plot_registry_validate"
      ]
    },
    {
      "page": "brief_plot_registry_write",
      "title": "Write a research-artifact plot registry to JSON",
      "topics": [
        "brief_plot_registry_write"
      ]
    },
    {
      "page": "brief_plot_registry_write_from_meta",
      "title": "Build and write a research-artifact registry from metadata sidecars",
      "topics": [
        "brief_plot_registry_write_from_meta"
      ]
    },
    {
      "page": "brief_score_label",
      "title": "Format the latest bounded research score",
      "topics": [
        "brief_score_label"
      ]
    },
    {
      "page": "eval_event_performance",
      "title": "Evaluate event performance",
      "topics": [
        "eval_event_performance"
      ]
    },
    {
      "page": "eval_portfolio_performance",
      "title": "Evaluate optimized portfolio performance",
      "topics": [
        "eval_portfolio_performance"
      ]
    },
    {
      "page": "eval_strat_performance",
      "title": "Evaluate strategy performance",
      "topics": [
        "eval_strat_performance"
      ]
    },
    {
      "page": "eval_strat_plot_scatter_maxdd_annret",
      "title": "Scatter: annual return vs max drawdown",
      "topics": [
        "eval_strat_plot_scatter_maxdd_annret"
      ]
    },
    {
      "page": "eval_strat_plot_tsline_eq",
      "title": "Plot equity curve (time series)",
      "topics": [
        "eval_strat_plot_tsline_eq"
      ]
    },
    {
      "page": "factor_bounded_score",
      "title": "Map standardized pressure into a bounded research score",
      "topics": [
        "factor_bounded_score"
      ]
    },
    {
      "page": "gen_candle_plots_with_sr_dts",
      "title": "Generate candlestick plot with support and resistance zones",
      "topics": [
        "gen_candle_plots_with_sr_dts"
      ]
    },
    {
      "page": "gen_candle_plots_with_sr_lines",
      "title": "Generate candlestick plot with support and resistance lines",
      "topics": [
        "gen_candle_plots_with_sr_lines"
      ]
    },
    {
      "page": "gen_facet_plot_from_multicol_ts",
      "title": "Plot multiple time-series columns as facets",
      "topics": [
        "gen_facet_plot_from_multicol_ts"
      ]
    },
    {
      "page": "gen_grid_of_plots_with_labels",
      "title": "Arrange plots in a labeled grid layout",
      "topics": [
        "gen_grid_of_plots_with_labels"
      ]
    },
    {
      "page": "gen_plot_comparing_events",
      "title": "Compare two event-study average paths",
      "topics": [
        "gen_plot_comparing_events"
      ]
    },
    {
      "page": "gen_plot_event_tsline_cum_ret",
      "title": "Plot cumulative event-study return paths",
      "topics": [
        "gen_plot_event_tsline_cum_ret"
      ]
    },
    {
      "page": "gen_rolling_monthly_stats",
      "title": "Generate rolling monthly strategy statistics",
      "topics": [
        "gen_rolling_monthly_stats"
      ]
    },
    {
      "page": "gen_yield_curve_plot",
      "title": "Generate U.S. Treasury yield curve plot",
      "topics": [
        "gen_yield_curve_plot"
      ]
    },
    {
      "page": "gen_yield_curve_plot_grid",
      "title": "Generate yield curve comparison grid",
      "topics": [
        "gen_yield_curve_plot_grid"
      ]
    },
    {
      "page": "get_optimal_weights",
      "title": "Compute optimal strategy weights",
      "topics": [
        "get_optimal_weights"
      ]
    },
    {
      "page": "get_yield_data_DT",
      "title": "Get yield data for given dates",
      "topics": [
        "get_yield_data_DT"
      ]
    },
    {
      "page": "prep_backtest_result_from_equity",
      "title": "Build A Backtest Result Row From An Equity Curve",
      "topics": [
        "prep_backtest_result_from_equity"
      ]
    },
    {
      "page": "prep_fill_forward",
      "title": "Carry the latest observed value forward",
      "topics": [
        "prep_fill_forward"
      ]
    },
    {
      "page": "prep_ratio_ohlc",
      "title": "Build Synthetic OHLC For A Price Ratio",
      "topics": [
        "prep_ratio_ohlc"
      ]
    },
    {
      "page": "prep_recent_changes",
      "title": "Extract recent finite first differences",
      "topics": [
        "prep_recent_changes"
      ]
    },
    {
      "page": "prep_series_wide",
      "title": "Combine labeled time series into a research-ready wide table",
      "topics": [
        "prep_series_wide"
      ]
    },
    {
      "page": "prep_zscore",
      "title": "Standardize a numeric series",
      "topics": [
        "prep_zscore"
      ]
    },
    {
      "page": "sim_ar1_dgp",
      "title": "Simulate an AR(1) data-generating process",
      "topics": [
        "sim_ar1_dgp"
      ]
    },
    {
      "page": "sim_ar2_dgp",
      "title": "Simulate an AR(2) data-generating process",
      "topics": [
        "sim_ar2_dgp"
      ]
    },
    {
      "page": "sim_ar3_dgp",
      "title": "Simulate an AR(3) data-generating process",
      "topics": [
        "sim_ar3_dgp"
      ]
    },
    {
      "page": "sim_arch1_dgp",
      "title": "Simulate an ARCH(1) data-generating process",
      "topics": [
        "sim_arch1_dgp"
      ]
    },
    {
      "page": "sim_forward_fan",
      "title": "Simulate a forward percentile fan from historical changes",
      "topics": [
        "sim_forward_fan"
      ]
    },
    {
      "page": "sim_garch11_dgp",
      "title": "Simulate a GARCH(1,1) data-generating process",
      "topics": [
        "sim_garch11_dgp"
      ]
    },
    {
      "page": "sim_ma1_dgp",
      "title": "Simulate an MA(1) data-generating process",
      "topics": [
        "sim_ma1_dgp"
      ]
    },
    {
      "page": "sim_scenario_path",
      "title": "Construct deterministic scenario paths",
      "topics": [
        "sim_scenario_path"
      ]
    },
    {
      "page": "viz_annotate_event_lines",
      "title": "Add event-line annotations to a plot",
      "topics": [
        "viz_annotate_event_lines"
      ]
    },
    {
      "page": "viz_annotate_last_value",
      "title": "Add a direct label for the last observation in a series",
      "topics": [
        "viz_annotate_last_value"
      ]
    },
    {
      "page": "viz_annotate_regime_bands",
      "title": "Add regime-band annotations to a plot",
      "topics": [
        "viz_annotate_regime_bands"
      ]
    },
    {
      "page": "viz_annotate_source_caption",
      "title": "Append a standardized source caption to a plot",
      "topics": [
        "viz_annotate_source_caption"
      ]
    },
    {
      "page": "viz_candle_base",
      "title": "Generate a base candlestick plot",
      "topics": [
        "viz_candle_base"
      ]
    },
    {
      "page": "viz_forward_fan",
      "title": "Plot a forward percentile fan",
      "topics": [
        "viz_forward_fan"
      ]
    },
    {
      "page": "viz_palette_get",
      "title": "Get visualization palette values",
      "topics": [
        "viz_palette_get"
      ]
    },
    {
      "page": "viz_series_lines",
      "title": "Plot one or more research series",
      "topics": [
        "viz_series_lines"
      ]
    },
    {
      "page": "viz_style_get",
      "title": "Get resolved visualization style",
      "topics": [
        "viz_style_get"
      ]
    },
    {
      "page": "viz_style_set",
      "title": "Set default visualization style and context",
      "topics": [
        "viz_style_set"
      ]
    },
    {
      "page": "viz_theme_apply",
      "title": "Apply a standardized investlabr plot theme",
      "topics": [
        "viz_theme_apply"
      ]
    }
  ],
  "_readme": "https://github.com/cran/investlabr/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "data.table",
    "farver",
    "ggplot2",
    "ggrepel",
    "glue",
    "gridExtra",
    "gtable",
    "isoband",
    "jsonlite",
    "labeling",
    "lifecycle",
    "patchwork",
    "quadprog",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "S7",
    "scales",
    "vctrs",
    "viridisLite",
    "withr",
    "yaml"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_score": 1.6989700043360187,
  "_indexed": false,
  "_nocasepkg": "investlabr",
  "_universes": [
    "cran",
    "oliverlds"
  ],
  "_indexurl": "https://oliverlds.r-universe.dev/investlabr",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:46:44.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/360a0573d8a700f29dfb4411afe609633a9aebc6a6a823763da7bea7118cdab0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:46:59.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/98295bc23bc8ac1e3f8b4d0d3794bea7e17117d112795c6b563c211b34118133",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:46:54.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/6fb0dacd5135c0b0908d69684285286baebc8c5b411979342f4efb646e2ab7f6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:46:51.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/d4c71ab2e13a0b1608005dfbe706681c9697cfd91b2f818f9e570b95a3d678ce",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:46:58.000Z",
      "arch": "emscripten",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/e62428b8c531ab4a3c358b01ea9c24cdc14f81b4491527efe95aeab1bfe8f4d4",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:47:41.000Z",
      "arch": "aarch64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/307a9ec8f6a02e9b6439570aba60e48c328214bb6a0bc135af5cdad9cd2a4bef",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:45:56.000Z",
      "arch": "x86_64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/f1806c08f39127dbdfb288463bf97cf4bda374b7724f7a42cc49ee965745ecb5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:47:45.000Z",
      "arch": "aarch64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/bc5bee8c1847ae4439ef8f42735640f956e8c2e0a73b3f5eedea87597d46a434",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.6.2",
      "date": "2026-10-15T20:46:09.000Z",
      "arch": "x86_64",
      "commit": "0424180883e7fa6a572c003e35dee7fe414c21d6",
      "fileid": "https://r2.ropensci.org/fea21b470435970a7275aba81a0efd5a0cf345043d5fd20c2ac9bb7b43357af1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/38803896523"
    }
  ]
}