{
  "_id": "6addee5880bb7a3cbf50b306",
  "Package": "whence",
  "Type": "Package",
  "Title": "Explain Where a Number Came from in 'shiny' Apps",
  "Version": "0.1.0.9000",
  "Authors@R": "person(\ngiven = \"Tanmay\",\nfamily = \"Chanda\",\nemail = \"tanmaychanda96@gmail.com\",\nrole = c(\"aut\", \"cre\", \"cph\"))",
  "Description": "Lets the viewer of a 'shiny' dashboard click a number, a\nrow of a summary table or a bar of a 'ggplot2' plot, and see\nwhere it came from. The pipeline that makes the result is split\ninto its steps. Each step is run in turn, and the number of\nrows after each step is recorded. The result is an attrition\nwaterfall that shows how many rows each step removed, and what\nshare of the rows that was, together with code that reproduces\nthe result. The steps are found from the expression alone, so\nthe pipeline does not need to be rewritten. The rows that\ncontribute to a result, and the rows that a step removed, are\nfound only when the viewer asks for them.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "URL": "https://github.com/tenmeh/whence, https://tenmeh.github.io/whence/",
  "BugReports": "https://github.com/tenmeh/whence/issues",
  "Config/testthat/edition": "3",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "cmake make libuv1-dev zlib1g-dev",
  "Repository": "https://tenmeh.r-universe.dev",
  "Date/Publication": "2026-10-25 09:07:11 UTC",
  "RemoteUrl": "https://github.com/tenmeh/whence",
  "RemoteRef": "HEAD",
  "RemoteSha": "e25c7f0e6616896c906ce008268796dbfab77342",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-25 11:51:59 UTC",
    "User": "root"
  },
  "Author": "Tanmay Chanda [aut, cre, cph]",
  "Maintainer": "Tanmay Chanda <tanmaychanda96@gmail.com>",
  "_user": "tenmeh",
  "_type": "src",
  "_file": "whence_0.1.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/ed2d38a36d624ab1c793830c4b29a2dc650d292a29437869f9a36b36bd3fc0be",
  "_filesize": 256975,
  "_sha256": "ed2d38a36d624ab1c793830c4b29a2dc650d292a29437869f9a36b36bd3fc0be",
  "_expires": "2027-02-02T11:56:07.000Z",
  "_created": "2026-10-25T11:51:59.000Z",
  "_published": "2026-10-25T11:56:08.904Z",
  "_upstream": "https://github.com/tenmeh/whence",
  "_status": "success",
  "_maintainer": {
    "name": "Tanmay Chanda",
    "email": "tanmaychanda96@gmail.com",
    "login": "tenmeh",
    "linkedin": "in/tanmay-chanda",
    "description": "Building things",
    "uuid": 81738153
  },
  "_jobs": [
    {
      "job": 121160795068,
      "time": 121,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12597796702"
    },
    {
      "job": 121160795080,
      "time": 143,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12598216077"
    },
    {
      "job": 121160795313,
      "time": 213,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12598300391"
    },
    {
      "job": 121160795067,
      "time": 142,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12596929621"
    },
    {
      "job": 121160074690,
      "time": 206,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12597796464"
    },
    {
      "job": 121160795086,
      "time": 127,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12597074615"
    },
    {
      "job": 121160795070,
      "time": 78,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12598355545"
    },
    {
      "job": 121160795113,
      "time": 79,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12597936440"
    },
    {
      "job": 121160795131,
      "time": 75,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12598370014"
    }
  ],
  "_buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574",
  "_commit": {
    "id": "e25c7f0e6616896c906ce008268796dbfab77342",
    "author": "Tanmay Chanda <81738153+tenmeh@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "feat: trace joins, collect() and lazy tables (#11)\n\n* feat: trace joins, collect() and lazy tables\n\n- inner_join(), left_join(), semi_join() and anti_join() are steps.\n  A new `added` column in the stages counts rows that a join added by\n  matching a row more than once, apart from the removed rows. An inner\n  join counts its unmatched rows with one anti_join(). whence_rows()\n  follows the joins, and gives rows of the main source only.\n- collect(), compute(), as_tibble() and as.data.frame() are hidden steps\n  that keep every row.\n- A lazy table from dbplyr, arrow, dtplyr or a prudent duckplyr gives one\n  clear error. With a collect() in the chain, the waterfall starts there\n  instead, and the reason says so.\n- `lazy = \"count\"` (or options(whence.lazy = \"count\")) counts every step\n  of a lazy pipeline with one count query per step. Rows are found from\n  the first collect() on.\n- The version is 0.1.0.9000. The backends are in Suggests.\n\n* ci: check on R 4.1 without arrow, which needs R 4.2\n\narrow is only in Suggests, and its tests skip when it is not installed.\npak now ignores it on the R 4.1 job, and R CMD check does not insist on\nsuggested packages that a system cannot install.\n\n* ci: accept the missing-suggests note on the job without arrow\n\n* ci: also check on R 4.1 without duckplyr, whose duckdb needs R 4.2",
    "time": 1792919231
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "version": ">= 1.7.0",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "arrow",
      "role": "Suggests"
    },
    {
      "package": "DBI",
      "role": "Suggests"
    },
    {
      "package": "dbplyr",
      "role": "Suggests"
    },
    {
      "package": "dplyr",
      "role": "Suggests"
    },
    {
      "package": "dtplyr",
      "role": "Suggests"
    },
    {
      "package": "duckplyr",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "reactable",
      "role": "Suggests"
    },
    {
      "package": "RSQLite",
      "role": "Suggests"
    },
    {
      "package": "shinytest2",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tidyr",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "tenmeh",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-42",
      "n": 12
    },
    {
      "week": "2026-43",
      "n": 2
    }
  ],
  "_tags": [],
  "_stars": 1,
  "_contributors": [
    {
      "user": "tenmeh",
      "count": 14,
      "uuid": 81738153
    }
  ],
  "_userbio": {
    "uuid": 81738153,
    "type": "user",
    "name": "Tanmay Chanda",
    "followers": 1,
    "description": "Building things"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/whence"
  },
  "_devurl": "https://github.com/tenmeh/whence",
  "_pkgdown": "https://tenmeh.github.io/whence/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/whence.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/tenmeh/whence",
  "_realowner": "tenmeh",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-10-24"
    }
  ],
  "_exports": [
    "renderWhence",
    "renderWhencePlot",
    "renderWhenceTable",
    "whence_code",
    "whence_group",
    "whence_opened",
    "whence_rows",
    "whence_table",
    "whence_trace",
    "whence_value",
    "whenceOutput",
    "whencePlotOutput",
    "whenceTableOutput"
  ],
  "_help": [
    {
      "page": "whence_group",
      "title": "Explain one row of a summary table",
      "topics": [
        "whence_group"
      ]
    },
    {
      "page": "whence_opened",
      "title": "The panel that the viewer has open",
      "topics": [
        "whence_opened"
      ]
    },
    {
      "page": "whence_rows",
      "title": "The rows that make the value, or the rows that a step removed",
      "topics": [
        "whence_rows"
      ]
    },
    {
      "page": "whence_table",
      "title": "Trace where the rows of a summary table came from",
      "topics": [
        "whence_table"
      ]
    },
    {
      "page": "whence_trace",
      "title": "Trace where a number came from",
      "topics": [
        "whence_trace"
      ]
    },
    {
      "page": "whence_value",
      "title": "Parts of a trace",
      "topics": [
        "whence_code",
        "whence_value"
      ]
    },
    {
      "page": "whenceOutput",
      "title": "An output that explains where its number came from",
      "topics": [
        "renderWhence",
        "whenceOutput"
      ]
    },
    {
      "page": "whencePlotOutput",
      "title": "A plot whose bars and points explain where they came from",
      "topics": [
        "renderWhencePlot",
        "whencePlotOutput"
      ]
    },
    {
      "page": "whenceTableOutput",
      "title": "A summary table whose rows explain where they came from",
      "topics": [
        "renderWhenceTable",
        "whenceTableOutput"
      ]
    }
  ],
  "_pkglogo": "https://github.com/tenmeh/whence/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/tenmeh/whence/raw/HEAD/README.md",
  "_rundeps": [
    "base64enc",
    "bslib",
    "cachem",
    "cli",
    "commonmark",
    "digest",
    "fastmap",
    "fontawesome",
    "fs",
    "glue",
    "htmltools",
    "httpuv",
    "jquerylib",
    "jsonlite",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "otel",
    "promises",
    "R6",
    "rappdirs",
    "Rcpp",
    "rlang",
    "sass",
    "shiny",
    "sourcetools",
    "withr",
    "xtable"
  ],
  "_score": 3,
  "_indexed": true,
  "_nocasepkg": "whence",
  "_universes": [
    "tenmeh"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:54:01.000Z",
      "distro": "resolute",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/c2f6d7ce1074e11953961693ba4c022496a0c61043ef28d088fbf46f8daeff59",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:54:18.000Z",
      "distro": "resolute",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/7aa5dd4807d4e320a2aba9c740f369238610db091c0c236913838db14d7bf986",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:55:28.000Z",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/a2b700d93ed80ee060aa765375c01876ebdeb84a7ede9107a3f4d3321d9ec0b4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:54:12.000Z",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/29da0ad2f94cf5d04bf277dff1aeb4b37f7e402f510dadf712eeb571c0c3dda9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:54:20.000Z",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/3cd7be6f235af8f23750c3dcc39cfac90d9aab71466b0a878e6db11b904a4fc2",
      "status": "success",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:53:07.000Z",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/7ccb24a8940a134c3d21455d1637258797f9af53e7a7274644e64f9a9be1423d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:53:06.000Z",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/aa93e2540f50e50cd01642480314f730e9a6f530a58a3be262d59a942dc7f2f8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0.9000",
      "date": "2026-10-25T11:53:06.000Z",
      "commit": "e25c7f0e6616896c906ce008268796dbfab77342",
      "fileid": "https://r2.ropensci.org/237f2ff52b607911d5cef1b1653fb2ebfba9b9e4fd654dfda58f8ce6951f9cf8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tenmeh/actions/runs/40190415574"
    }
  ]
}