productivity
Indices of Productivity Using Data Envelopment Analysis (DEA)
Description
Levels and changes of productivity and profitability are measured with various indices. The package contains the multiplicatively complete Färe-Primont, Fisher, Hicks-Moorsteen, Laspeyres, Lowe, and Paasche indices, as well as the classic Malmquist productivity index. Färe-Primont and Lowe indices verify the transitivity property and can therefore be used for multilateral or multitemporal comparison. Fisher, Hicks-Moorsteen, Laspeyres, Malmquist, and Paasche indices are not transitive and are only to be used for binary comparison. All indices can also be decomposed into different components, providing insightful information on the sources of productivity and profitability changes. In the use of Malmquist productivity index, the technological change index can be further decomposed into bias technological change components. The package also allows to prohibit technological regression (negative technological change). In the case of the Fisher, Hicks-Moorsteen, Laspeyres, Paasche and the transitive Färe-Primont and Lowe indices, it is furthermore possible to rule out technological change. Deflated shadow prices can also be obtained. Besides, the package allows parallel computing as an option, depending on the user's computer configuration. All computations are carried out with the nonparametric Data Envelopment Analysis (DEA), and several assumptions regarding returns to scale are available. All DEA linear programs are implemented using 'lp_solve'.
Downloads
371
Last 30 days
11754th
897
Last 90 days
3.4K
Last year
Trend: +64.2% (30d vs prior 30d)
0
Last 30 days
24
Last 90 days
98
Last year
Trend: -100% (30d vs prior 30d)
5
Last 7 days
26
Last 30 days
0
All-time
autoCRAN-only: this name is served only by autoCRAN, so the count is exact.
CRAN Check Status
Show all 13 flavors
| Flavor | Status |
|---|---|
| r-devel-linux-x86_64-debian-clang | NOTE |
| r-devel-linux-x86_64-debian-gcc | NOTE |
| r-devel-linux-x86_64-fedora-clang | NOTE |
| r-devel-linux-x86_64-fedora-gcc | NOTE |
| r-devel-windows-x86_64 | NOTE |
| r-oldrel-macos-arm64 | NOTE |
| r-oldrel-macos-x86_64 | NOTE |
| r-oldrel-windows-x86_64 | NOTE |
| r-patched-linux-x86_64 | NOTE |
| r-release-linux-x86_64 | NOTE |
| r-release-macos-arm64 | NOTE |
| r-release-macos-x86_64 | NOTE |
| r-release-windows-x86_64 | NOTE |
Check details (15 non-OK)
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only):
File ‘fareprim.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘fisher.Rd’:
https://doi.org/10.1007/BF00158354
File ‘hicksmoorsteen.Rd’:
https://doi.org/10.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only):
File ‘fareprim.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘fisher.Rd’:
https://doi.org/10.1007/BF00158354
File ‘hicksmoorsteen.Rd’:
https://doi.org/10.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Check History
NOTE 0 OK · 13 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE May 11, 2026
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only
...[truncated]...
.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only
...[truncated]...
.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
WARNING 0 OK · 12 NOTE · 1 WARNING · 0 ERROR · 0 FAILURE May 10, 2026
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only
...[truncated]...
.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only
...[truncated]...
.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
NOTE 0 OK · 14 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 10, 2026
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only
...[truncated]...
.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
CRAN incoming feasibility
Maintainer: ‘Yann Desjeux <yann.desjeux@inra.fr>’
Package CITATION file contains call(s) to old-style personList() or
as.personList(). Please use c() on person objects instead.
Found the following URLs which should use \doi (with the DOI name only
...[truncated]...
.1111/j.1467-9957.2010.02169.x
https://doi.org/10.1111/j.1467-8489.2010.00512.x
File ‘lowe.Rd’:
https://doi.org/10.1093/ajae/aas023
File ‘usagri.Rd’:
https://doi.org/10.2307/1244458
https://doi.org/10.1111/j.0002-9092.2004.00683.x
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Rd files
checkRd: (-1) paasche.Rd:91: Lost braces
91 | \code{OSME} \tab Output-oriented scale-mix efficiency score \emph{(code{orientation = "out"})}\cr
| ^
Code
Structure
Lines of code
5,490
Files
33
Compiled share
0%
Has compiled src
No
Language breakdown
API
Exported functions
10
Internal functions
33
Recent export changes
Testing & CI
Has tests
No
Test-to-code ratio
0.00
testthat edition
–
CI present
No
CI type
[]
PR gated
No
Docs
Return-value doc rate
100%
\dontrun example ratio
27.3%
Roxygen coverage
100%
Has pkgdown
No
NEWS present
Yes
Health & Security signals
Informational signals; not verdicts.
on.exit coverage
–
Unsafe pattern score
0
Dep constraint coverage
0%
Secret pattern count
0
Bundled 3rd-party code
2 items
Portability & License
Min R version
2.15.3
System requirements
–
C++ standard
–
License
GPL-3
License flags
SPDX valid, OSI approved
History
Versions
4
First release
2016-11-14
Latest release
2018-03-28
Avg cadence
178 days
Cold removal rate
–
Dep drift
8
LOC over versions
Per-file churn detail lives in the source pipeline: https://github.com/r-observatory/cran-code-metrics.