-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpbc-report.qmd
1003 lines (777 loc) · 34 KB
/
pbc-report.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
title: "Posit Benefit Corporation"
subtitle: 2024 Annual Report
fig-width: 7
fig-height: 3
format:
typst:
font-paths: assets/fonts
mainfont: Open Sans
template-partials:
- typst-template.typ
- typst-show.typ
filters:
- layout.lua
- mark.lua
gfm:
shift-heading-level-by: 1
fig-dpi: 300
html:
shift-heading-level-by: 1
minimal: true
shortcodes:
- colbreak.lua
filters:
- ignore-layout.lua
keep-typ: true
execute:
echo: false
---
```{r}
#| label: setup
#| include: false
library(ggplot2)
library(tidyverse)
library(here)
library(thematic)
library(ragg)
library(showtext)
posit_colors <- list(
blue = "#447099",
grey = "#404041",
orange = "#EE6331",
dark_blue_2 = "#213D4F",
dark_blue_3 = "#17212B",
light_blue_1 = "#D1DBE5",
light_blue_2 = "#A2B8CB"
)
thematic_on(bg = "white", fg = posit_colors$grey, accent = posit_colors$blue,
font = "Open Sans")
pydf <- read.csv(here("data", "pypi_stats.csv"), col.names = c("date", "downloads", "pkg"))
rdf <- read.csv(here("data","rpkgs.csv"), col.names = c("date", "downloads", "pkg"))
tidyvdf <- read.csv(here("data","tidyverse_pkgs.csv"), col.names = c("date", "downloads", "pkg"))
tidymdf <- read.csv(here("data", "tidymodels_pkgs.csv"), col.names = c("date", "downloads", "pkg"))
rlibdf <- read.csv(here("data","rlib_pkgs.csv"), col.names = c("date", "downloads", "pkg"))
rcondf <- read.csv(here("data","rcon_pkgs.csv"), col.names = c("date", "downloads", "pkg"))
rstudiodf <- read.csv(here("data","rstudio_os_dls.csv"), col.names = c("date", "downloads"))
rstudiodf$pkg <- "RStudio"
quarto_rstudio_dls <- read.csv(here("data", "quarto_rstudio_dls.csv"), col.names = c("date", "downloads"))
quarto_rstudio_dls$pkg <- "quarto"
quarto_gh_dls <- read.csv(here("data", "quarto_gh_downloads.csv"), col.names = c("date", "name", "downloads"))
quarto_gh_dls$date <- as.character(as.Date(quarto_gh_dls$date))
singlepltfunc <- function(df, package) {
return(
df %>%
filter(pkg == package) %>%
ggplot(aes(x=as.Date(date), y=cumsum(as.numeric(downloads)))) +
geom_line(color = posit_colors$blue, linewidth = 0.75) +
scale_x_date(labels=scales::label_date_short()) +
scale_y_continuous(
labels = scales::label_number(scale_cut = scales::cut_short_scale())
) +
xlab("") +
ylab("Cumulative Downloads") +
ggtitle(package)+
theme(panel.background = element_rect(fill = "#EDF0F5"),
plot.margin = margin(5.5, 8.5, 5.5, 5.5))
)
}
```
::: {.page-blue}
```{=typst}
#counter(page).update(1)
```
# A Message from our CEO
::: {.cols-2}
Posit aims to create free and open-source software for data science,
scientific research, and technical communication in a sustainable way,
because it benefits everyone when the essential tools to produce and
consume knowledge are available to all, regardless of economic means.
We believe corporations should fulfill a purposeful benefit to the
public and be run for the benefit of all stakeholders including
employees, customers, and the larger community.
As a Delaware Public Benefit Corporation (PBC) and a Certified B
Corporation®, Posit's open-source mission and commitment to a beneficial
public purpose are codified in our charter, requiring our corporate
decisions to balance the interests of the community, customers,
employees, and shareholders.
B Corps^TM^ meet the highest verified standards of social and
environmental performance, transparency, and accountability. Posit
measures its public benefit by utilizing the non-profit B Lab®'s "Impact
Assessment", a rigorous assessment of a company's impact on its workers,
customers, community, and environment.
{{< colbreak >}}
In 2019, Posit (then RStudio) met the B Corporation certification
requirements set by the B Lab. In 2023, our certification was renewed,
and we are proud to share that our B Lab Impact Assessment score rose
from 86.1 to 92.5 with this renewal. The B Lab certification process
uses credible, comprehensive, transparent, and independent standards to
measure social and environmental performance. Details of these
assessments can be found on our [B Lab company
page](https://www.bcorporation.net/en-us/find-a-b-corp/company/rstudio/).
To fulfill its beneficial purposes, Posit intends to remain an
independent company over the long term. With the support of our
customers, employees, and the community, we remain excited to contribute
useful solutions to the important problems of knowledge they face.
```{=typst}
#place(right, dy: 3em)[
```
*J.J. Allaire* \
CEO, Posit PBC
```{=typst}
]
```
:::
:::
# Introduction
::: {.cols-2}
Posit's mission is to create free and open-source software for data
science, scientific research, and technical communication. We do this to
enhance the production and consumption of knowledge by everyone,
regardless of economic means, and to facilitate collaboration and
reproducible research, both of which are critical to the integrity and
efficacy of work in science, education, government, and industry.
In addition to our open source products, Posit produces a modular
platform of commercial software products that enable teams to adopt R,
Python, and other open-source data science software at scale. Posit also
offers online services that make it easier to learn and use data science
tools over the web.
Together, Posit's open-source software and commercial software form a
virtuous cycle. In most companies, a "customer" is someone who pays
you. For us, the definition of a customer must include the open source
community, with whom we exchange the currencies of attention, respect,
and love. When we deliver value to our open source users, they will
likely bring our software into their professional environments, which
opens up the possibility of commercial partnerships. To keep this cycle
flowing, our open source developers must know and care about the
integrations with proprietary solutions that matter to our enterprise
customers. {{< colbreak >}} It also means that Posit's commercial teams consistently
provide value to individuals who may never directly spend a dollar with
us.
Posit's approach is not typical. Traditionally, scientific and technical
computing companies create exclusively proprietary software. While it
can provide a robust foundation for investing in product development,
proprietary software can also create excessive dependency that is not
good for data science practitioners and the community. In contrast,
Posit provides core productivity tools, packages, protocols, and file
formats as open-source software so customers aren't overly dependent on
a single software vendor. Additionally, while our commercial products
enhance the development and use of our open-source software, they are
not fundamentally required for those without the need or the ability to
pay for them.
As of May 2024, Posit is spending \~38% of its engineering resources on
open-source software development, and is leading contributions to over
350 open-source projects. Posit-led projects targeted a
broad range of areas including the RStudio IDE; infrastructure libraries
for R and Python; numerous packages and tools to streamline data
manipulation, exploration and visualization, modeling, and machine
learning; and integration with external data sources. Posit also
sponsors or contributes to many open-source and community projects led
by others, including NumFOCUS, the R Consortium, the Python Software
Foundation, DuckDB, Pandoc, pyodide, and ProseMirror, as well as dozens
of smaller projects via the Open Source Collective or directly on
Github. Additional information about our products and company
contributions for the past two years can be found in our ["Year In
Review" blog
posts](https://posit.co/blog/2023-posit-year-in-review/).
{{< colbreak >}}
Today, millions of people download and use Posit open-source products in
their daily lives. Additionally, more than 10,000 customers that
purchase our professional products help us sustain and grow our mission.
It is inspiring to help so many people participate in global economies
that increasingly reward data literacy, and know that our tools help
produce insights essential to navigating our complex world.
:::
```{=typst}
#place(bottom, dy: 1.25in,
align(center,
image("assets/images/1-1547.jpg",
width: 100% + 2.5in, fit: "cover")
)
)
```
{{< pagebreak >}}
# Posit's Charter and Statement of Public Benefit
::: {.cols-2}
## Posit's Charter
We want Posit to serve a meaningful public purpose, and we run the
company for the benefit of our customers, employees, and the community
at large. That's why we're organized as a Public Benefit Corporation
(PBC).
What makes a PBC different from other types of corporations?
> *"A 'public benefit corporation' is a for-profit corporation organized
> under and subject to the requirements of this chapter that is intended
> to produce a public benefit or public benefits and to operate in a
> responsible and sustainable manner."*
> --- [Delaware Public Benefit Corporations
> Law](https://delcode.delaware.gov/title8/c001/sc15/)
As a PBC and Certified B Corporation, we must meet the highest verified
standards of social and environmental performance, transparency, and
accountability. Our directors and officers have a fiduciary
responsibility to address social, economic, and environmental needs
while still overseeing our business goals.
{{< colbreak >}}
## Posit's Statement of Public Benefit
Creation of free and open source software for data science, scientific
research, and technical communication:
> 1\) To enhance the production and consumption of knowledge by
> everyone, regardless of economic means.
>
> 2\) To facilitate collaboration and reproducible research, both of
> which are critical for ensuring the integrity and efficacy of
> scientific work.
:::
{{< pagebreak >}}
## Our primary obligations as a PBC and Certified B Corporation
::: {.cols-2}
### Public Benefit Corporation
*How we built our company charter*
- The board of directors shall manage or direct the business and affairs of the public benefit corporation in a manner that balances the pecuniary interests of the stockholders, the best interests of those materially affected by the corporation's conduct, and the specific public benefit or public benefits identified in its certificate of incorporation.
- A public benefit corporation shall no less than biennially provide its stockholders with a statement as to the corporation's promotion of the public benefit or public benefits identified in the certificate of incorporation and of the best interests of those materially affected by the corporation's conduct.
{{< colbreak >}}
### Certified B Corp
*How we hold ourselves accountable to our charter*
- Demonstrate high social and environmental performance by achieving a B Lab Impact Assessment score of 80 or above and passing the risk review.
- Make a legal commitment by changing our corporate governance structure to be accountable to all stakeholders, not just shareholders, and achieve benefit corporation status if available in our jurisdiction.
- Exhibit transparency by allowing information about our performance measured against B Lab's standards to be publicly available on our B Corp profile on B Lab's website.
:::
{{< pagebreak >}}
# Posit's Open Source Development Projects
::: {.cols-2}
Before the company re-branded in 2022, Posit (then RStudio) was often
thought of as an "R company" in the data community because of its
dedication to developing and maintaining some of the most used R
libraries in the world. However, Posit has always been better described
as a *scientific software* company. Supporting Python (via the
[reticulate](https://github.com/rstudio/reticulate)
package, RStudio language support), working with relational databases
and data platforms such as Apache Spark (a cross-platform data frame
compatibility via [feather/Apache
Arrow](https://github.com/apache/arrow)), and much more
mean that we've never been solely an "R company".
{{< colbreak >}}
Since the 2021 PBC report, Posit has released several new packages in
the Python and R ecosystems and continues to maintain and grow the
libraries previously developed. The following subsections highlight
selected Posit software projects of interest to the broad data science
community. Where metrics are published, please note these represent a
*lower bound* on the actual number, as it is difficult-to-impossible to
account for every install and usage in the world.
:::
```{=typst}
#place(bottom, dy: 1.25in,
align(center,
image("assets/images/2-0616.jpg",
width: 100% + 2.5in, fit: "cover")
)
)
```
{{< pagebreak >}}
::: {.page-banner image_paths='("assets/images/quarto-logo-dark.svg",)' image_height="50%"}
## Quarto
::: {.cols-2}
In July 2022, [Posit
announced](https://posit.co/blog/announcing-quarto-a-new-scientific-and-technical-publishing-system/)
the [Quarto](https://quarto.org/) project, an open-source
scientific and technical publishing system as a successor to the [R
Markdown](https://rmarkdown.rstudio.com/) library. While
Quarto incorporates the lessons learned from over 10 years of developing
R Markdown into an entirely new project, it's likely still quite
familiar to users of R Markdown as they share two core dependencies:
Knitr and Pandoc. In fact, despite the fact that Quarto does some things
differently, most existing R Markdown documents can be rendered
unmodified using Quarto.
{{< colbreak >}}
Quarto allows users to choose from multiple computational engines
(Knitr, Jupyter, and Observable), which makes it easy to use Quarto with
R, Python, Julia, JavaScript and many other languages. It also allows
users to author documents as plain text markdown or Jupyter Notebooks,
and publish to numerous outputs such as HTML, PDF, MS Word, ePub and
more. Finally, the community has already extended Quarto , as shown by
the
[quartodoc](https://machow.github.io/quartodoc/get-started/overview.html)
project for developing API documentation.
There are 5 full time equivalent (FTE) employees developing open-source
Quarto products as of May 2024.
:::
```{r}
#| label: quarto
quarto_rstudio_by_version <- quarto_rstudio_dls %>%
summarise(downloads = sum(downloads)) %>%
mutate(minor_version = "0.9")
quarto_by_version <- quarto_gh_dls %>%
filter(!str_detect(name, "changelog"), !str_detect(name, "checksums")) %>%
mutate(
version = str_extract(name, "[01]\\.[0-9]\\.[0-9]+"),
minor_version = str_extract(version, "[01]\\.[0-9]")
) %>%
bind_rows(quarto_rstudio_by_version) %>%
group_by(minor_version) %>%
summarise(
total = sum(downloads),
min_date = min(as.Date(date)),
max_date = max(as.Date(date))
) %>%
mutate(minor_version = if_else(minor_version == 1.5, "1.5\nPre-release", minor_version))
quarto_by_version %>%
ggplot(aes(minor_version, cumsum(total))) +
geom_line(aes(group = 1), color = posit_colors$blue, linewidth = 0.75) +
scale_y_continuous(
labels = scales::label_number(scale_cut = scales::cut_short_scale())
) +
xlab("Minor Version") +
ylab("Cumulative Downloads") +
ggtitle("Quarto")+
theme(panel.background = element_rect(fill = "#EDF0F5"))
```
:::
::: {.page-banner image_paths='("assets/images/shiny-logo.png",)' image_height="50%"}
## Shiny
::: {.cols-2}
Shiny has been a mainstay in the R community since its launch in 2012,
providing a web application framework that makes it easy to tell data
stories in interactive point-and-click web applications. In April 2023,
Posit released the Python version of Shiny, bringing the same great
reactive programming model and modular design to the PyData ecosystem.
{{< colbreak >}}
Shiny applications can be shared with others via an open-source [Shiny
Server](https://posit.co/products/open-source/shinyserver/),
the hosted [shinyapps.io](http://shinyapps.io) service, or
with [Posit
Connect](https://posit.co/products/enterprise/connect/).
Shiny and related packages include shiny
([Python](https://shiny.posit.co/py/),
[R](https://shiny.posit.co/r/getstarted)),
[bslib](https://rstudio.github.io/bslib/),
[shinytest](https://rstudio.github.io/shinytest/),
[shinyloadtest](https://rstudio.github.io/shinyloadtest/),
[shinydashboard](https://rstudio.github.io/shinydashboard/),
[leaflet](https://rstudio.github.io/leaflet/), and
[crosstalk](https://rstudio.github.io/crosstalk/).
There are 5 FTE Posit employees developing the open-source Shiny and
Shiny Server products as of May 2024.
:::
```{r}
#| label: shiny
#| fig-height: 2.75
singlepltfunc(pydf, "shiny") + ggtitle("Shiny for Python")
singlepltfunc(rdf, "shiny") + ggtitle("Shiny for R")
```
:::
{{< pagebreak >}}
::: {.page-banner image_paths='("assets/images/hexes/gt.svg",)'}
## gt / Great Tables
::: {.cols-2}
When presenting an analysis, a table can often convey the results more
concisely than the most beautiful and interactive of charts. However,
the experience of creating and displaying tables in R and Python has
been mixed, especially when you want to display something beyond a plain
data frame representation.
{{< colbreak >}}
To that end, the [gt](https://gt.rstudio.com/) and [Great
Tables](https://posit-dev.github.io/great-tables/articles/intro.html)
packages have defined a "grammar of tables" to solve this problem (in R
and Python, respectively), analogous to the "grammar of graphics" for
specifying charts.
As of May 2024, there is 1 FTE Posit employee developing gt / Great
Tables open-source packages.
:::
```{r}
#| label: gt
singlepltfunc(pydf, "great_tables")
singlepltfunc(rdf, "gt")
```
:::
::: {.page-banner image_paths='("assets/images/hexes/vetiver.svg",)'}
## Vetiver
::: {.cols-2}
[Vetiver](https://vetiver.posit.co/) solves the issues
around versioning, sharing, deploying and monitoring predictive models
served via APIs. Available for both R and Python, vetiver is extensible
via generics that support many common types of models. {{< colbreak >}} Vetiver also
provides the "model cards" functionality, which can help to generate
documentation by extracting some information about the generated model.
:::
```{r}
#| label: vetiver
singlepltfunc(pydf, "vetiver") + ggtitle("vetiver for Python")
singlepltfunc(rdf, "vetiver") + ggtitle("vetiver for R")
```
:::
::: {.page-banner}
## Posit Public Package Manager
::: {.cols-2}
WIth the ubiquity of open source software in our daily lives, one area
that most people don't think about is 'How do you distribute that
software quickly and securely to the end user?'. To that end, Posit
created [Posit Package
Manager](https://posit.co/products/enterprise/package-manager/),
which gives companies a means for providing curated repositories,
repository snapshots for better reproducibility, the ability to air-gap
the repository for enhanced security and much more.
{{< colbreak >}}
As part of our commitment to improving the quality and availability of
open source software for all, Posit hosts a public instance of Posit
Package Manager called [Posit Public Package
Manager](https://packagemanager.posit.co/client/#/) that
mirrors CRAN, PyPI and Bioconductor. This mirror served nearly 40
million downloads per month in Q1 2024.
:::
```{=typst}
#v(6em)
#place(right, dy: -3em, image("assets/images/hexes/webr.svg", height: 5em))
```
## webR
::: {.cols-2}
[WebR](https://docs.r-wasm.org/webr/latest/) has the
ambitious goal of bringing the R language to the browser, removing the
need for a backend server for computation. It also allows for
computation to be done on the client machine, supporting use cases that
are infeasible or undesirable for using server-side processing (such as
not wanting to send personal data over the internet). {{< colbreak >}}
Also, by making
the most of the user's device capabilities, webR can improve performance
and lower app hosting costs.
There is 1 FTE Posit employee developing webR open-source products as of
May 2024.
:::
:::
::: {.page-banner image_paths='("assets/images/hexes/plotnine.png",)'}
## Plotnine
::: {.cols-2}
[Plotnine](https://plotnine.org/) is an implementation of
the grammar of graphics in Python, heavily influenced by ggplot2 in R.
Built upon the ubiquitous
[matplotlib](https://matplotlib.org/) plotting library, {{< colbreak >}}
custom (and otherwise complex) plots are easy to reason about and build
incrementally, while the simple plots remain simple to create.
:::
```{r}
#| label: plotnine
singlepltfunc(pydf, "plotnine")
```
:::
::: {.page-banner image_paths='("assets/images/hexes/siuba.svg",)'}
## Siuba
::: {.cols-2}
[Siuba](https://siuba.org/) is a port of dplyr and other R
libraries. It's aim is to make data science faster through a consistent
interface of verbs for working with real-world data: filter, arrange,
select, mutate and summarize. {{< colbreak >}}
Siuba supports several backends including
pandas, [DuckDB](https://duckdb.org/) and SQL, providing a
"write once, run many" freedom for your analytics code.
:::
```{r}
#| label: siuba
singlepltfunc(pydf, "siuba")
```
:::
::: {.page-banner image_paths='("assets/images/hexes/RStudio.svg",)'}
## RStudio Integrated Development Environment
::: {.cols-2}
[RStudio](https://posit.co/products/open-source/rstudio/)
is a multi-language IDE designed for Data Science with R and Python. It
augments the standard code console with an editor that can display
Notebooks, launch apps, highlight code syntax, spot code errors, and
directly execute code. Built into the IDE are tools for debugging,
plotting, browsing files, and managing project histories and workspaces.
Together these tools make data scientists and developers much more
efficient.
{{< colbreak >}}
There are 5 FTE Posit employees developing the RStudio IDE open-source
desktop and server products as of May 2024.
:::
```{r}
#| label: rstudio
singlepltfunc(rstudiodf, "RStudio")
```
:::
::: {.page-banner image_paths='("assets/images/hexes/tidyverse.svg", )'}
## Tidyverse
::: {.cols-2}
The [tidyverse](https://www.tidyverse.org/) is an
opinionated collection of R packages designed for data science. All
packages share an underlying design philosophy, grammar and data
structures.
The tidyverse consists of nine core packages (including ggplot2, tidyr
and readr) and 31 packages overall.
{{< colbreak >}}
There are 9 FTE Posit employees developing Tidyverse and related
open-source products as of May 2024.
:::
```{r}
#| label: tidyverse
tidyvdf %>%
group_by(date) %>%
summarise(downloads = sum(downloads)) -> tidyvdf
tidyvdf$pkg <- "Tidyverse"
singlepltfunc(tidyvdf, "Tidyverse")
```
:::
::: {.page-banner image_paths='("assets/images/hexes/tidymodels.svg", )'}
## Tidymodels
::: {.cols-2}
[Tidymodels](https://www.tidymodels.org/) is a cohesive
collection of packages that perform tasks relevant to statistical
modeling and machine learning. Tidymodels packages share a common syntax
and design philosophy, and are designed to work seamlessly with
Tidyverse packages.
{{< colbreak >}}
There are currently 42 tidymodels packages on CRAN. Popular tidymodels
packages include parsnip, rsample, recipes, tune and yardstick.
There are 3 FTE Posit employees developing Tidymodels and related
open-source products as of May 2024.
:::
```{r}
#| label: tidymodels
tidymdf %>%
group_by(date) %>%
summarise(downloads = sum(downloads)) -> tidymdf
tidymdf$pkg <- "Tidymodels"
singlepltfunc(tidymdf, "Tidymodels")
```
:::
::: {.page-banner image_paths='("assets/images/hexes/sparklyr.svg", "assets/images/hexes/reticulate.svg", "assets/images/hexes/tensorflow.svg")'}
## Connectivity Packages
::: {.cols-2}
Posit increases the efficiency of customers by making open-source
packages that connect data scientists to spreadsheets, databases,
distributed storage frameworks for big data, machine learning platforms,
and the programming environments of other languages, like python.
{{< colbreak >}}
Connectivity packages include:
[sparklyr](https://spark.posit.co/), [tensorflow for R](https://tensorflow.rstudio.com/),
[keras](https://keras.posit.co/),
[odbc](https://solutions.posit.co/connections/db/r-packages/odbc/),
and [reticulate](https://rstudio.github.io/reticulate/).
There are 3 FTE Posit employees creating connectivity-related
open-source packages as of May 2024.
:::
```{r}
#| label: connectivity
rcondf %>%
group_by(date) %>%
summarise(downloads = sum(downloads)) -> rcondf
rcondf$pkg <- "R Connectivity"
singlepltfunc(rcondf, "R Connectivity")
```
:::
::: {.page-banner image_paths='("assets/images/hexes/devtools.svg","assets/images/hexes/usethis.svg", "assets/images/hexes/roxygen2.svg", "assets/images/hexes/testthat.svg", "assets/images/hexes/pkgdown.svg")'}
## R Infrastructure Tools (r-lib)
::: {.cols-2}
R-lib is a large collection of R packages that make it easier to build,
find, and use effective tools for data analysis.
```{r}
#| include: false
#| eval: false
repos_json <- gh::gh("/orgs/{org}/repos", org = "r-lib", .limit = Inf)
names <- sapply(repos_json, "[[", "name")
length(intersect(names, rownames(available.packages())))
```
{{< colbreak >}}
There are currently 114 R-lib packages. Popular packages
include [devtools](https://devtools.r-lib.org/),
[testthat](https://testthat.r-lib.org/),
[roxygen2](https://roxygen2.r-lib.org/),
[pkgdown](https://pkgdown.r-lib.org/) and
[usethis](https://usethis.r-lib.org/).
:::
```{r}
#| label: rlibs
rlibdf %>%
group_by(date) %>%
summarise(downloads = sum(downloads)) -> rlibdf
rlibdf$pkg <- "R-Lib"
singlepltfunc(rlibdf, "R-Lib")
```
:::
::: {.page-banner fill="posit_colors.blue" image_paths='("assets/images/BLab_B_Impact_Assessment-white.png",)' image_height="75%"}
# B Lab® Impact Assessment Results
::: {.cols-2}
The BLab Impact Assessment is composed of questions in five Impact
Areas: Governance, Workers, Community, Environment, and Customers.
Posit's assessment results are available to the public
[here](https://www.bcorporation.net/en-us/find-a-b-corp/company/rstudio/).
We completed our first Impact Assessment in 2019 and earned an overall
score of **86.1.** We are proud to report that our latest score from our
recertification process in 2023, is **92.5**. To put this in context,
the threshold for B Lab certification is a score of 80 or higher, and
the median score for ordinary businesses who take the assessment is
50.9. Posit seeks to continually improve our internal governance,
increase our workforce diversity and employee development efforts,
expand our stewardship of the environment, deepen our engagement in our
communities, and better serve our customers so that our public benefit
will continue to improve each year.
{{< colbreak >}}
In our initial assessment, we received high marks for incorporating as a
benefit corporation, the health, wellness, safety, and financial
security of our employees, and for educating and serving customers. We
identified formal goal setting, career development, diversity, equity &
inclusion, civic engagement & giving, and air & climate as areas for
improvement.
:::
:::
## Summary of Score Improvements Since 2019
The B Lab's Impact assessment standards have evolved since 2019 (we are
now on version 6 of the assessment). New questions were added, and
thresholds for performance were raised in other cases. Of the scored
questions we responded to in our most recent assessment, 38 were
unchanged from 2019, 71 were modified from 2019 wording, and 22 were
brand new questions. On the unchanged or modified questions, we have
gained points in the areas listed below.
```{=html}
<table class="table">
<colgroup>
<col style="width: 25%">
<col style="width: 35%">
<col style="width: 40%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;"><strong>Impact Area</strong></th>
<th style="text-align: left;"><strong>Topic</strong></th>
<th style="text-align: left;"><strong>% Achievement Gain since 2019</strong></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;" rowspan="2">Community</td>
<td style="text-align: left;">Civic Engagement & Giving</td>
<td style="text-align: left;">39%</td>
</tr>
<tr class="even">
<td style="text-align: left;">Diversity, Equity, & Inclusion</td>
<td style="text-align: left;">60%</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Customers</td>
<td style="text-align: left;">Customer Stewardship</td>
<td style="text-align: left;">28%</td>
</tr>
<tr class="even">
<td style="text-align: left;">Environment</td>
<td style="text-align: left;">Air & Climate</td>
<td style="text-align: left;">75%</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Governance</td>
<td style="text-align: left;">Ethics & Transparency</td>
<td style="text-align: left;">37%</td>
</tr>
<tr class="even">
<td style="text-align: left;" rowspan="3">Workers</td>
<td style="text-align: left;">Career Development</td>
<td style="text-align: left;">62%</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Engagement & Satisfaction</td>
<td style="text-align: left;">50%</td>
</tr>
<tr class="even">
<td style="text-align: left;">Financial Security</td>
<td style="text-align: left;">58%</td>
</tr>
</tbody>
</table>
```
```{=typst}
#v(1em)
```
::: {.cols-2}
## Community
### Civic Engagement and Giving
In addition to the open-source software we make freely available, and
the open source data science package development produced by Posit
engineers, Posit recognizes the importance of contributing financially
to other valuable open-source and community initiatives. To date, Posit
has given over \$1.9M to projects led by others. Current commitments
include contributing to NumFOCUS, the R Consortium, the R Foundation,
DuckDB, the Eclipse Foundation, and the authors and maintainers of
several other open-source projects.
Posit's financial support also extends beyond the world of open source
data science. Since 2020, Posit and its employees have given over \$60k
to over 135 nonprofits. Our donations reach a range of community-based
causes, including organizations dedicated to racial equality, equal
justice, LGBTQ+ support, and access to education. Alongside our
donations to open source software development, this pool of charitable
contributions contributes to the important work many are doing to
increase the accessibility of data science for all. Our scoring in this
area of the B Lab assessment has increased by 39.5% since 2019.
### Diversity, Equity, and Inclusion
Since our initial B Lab assessment in 2019, Posit has continued to focus
on increasing the strength of our team by utilizing talent practices
that encourage diverse people to apply, join, and thrive at Posit.
Specific changes made in recent years include the formation of a
diversity, equity, inclusion, and accessibility council (DEIA Council),
as well as the sponsoring of employee resource groups (ERG's). We report
our progress on our diversity metrics, as defined in the B Lab
Assessment, in each quarter's board meeting. We also pay close attention
to issues of equity in compensation, hiring and interviewing, and
employee experience. Our efforts to date have yielded increases in the
percentages of women and those with minority racial or ethnic identities
in both management and the employee population as a whole -- and our
recent assessment results reflect these gains.
## Customers
We have made meaningful improvements in our care for customers in the
past few years -- particularly in our standards for managing customer
data and privacy. Since 2019, we have formalized our approach to data
privacy and compliance -- we now conduct thorough internal and external
audits and train all employees on the essentials of guarding customer
data. These changes have increased our assessment performance by 28%
since 2019.
## Environment
We are happy to share that our assessment scores for Air and Climate
impacts have improved by 75% since 2019. In November 2020, Posit
achieved carbon neutrality by purchasing carbon offsets that counter the
environmental impact of business travel (primarily for our annual
conference and internal meetings). As a remote-first organization, we do
not generate meaningful greenhouse gas emissions outside of air travel.
By offsetting this impact through the funding of reforestation work in
both South America and closer to home in Massachusetts, we hope to
neutralize Posit's potential damage to our planet.
## Governance
A company's positive governance impact is measured by the extent to
which the company is accountable to stakeholders, and the extent to
which its decision-making is transparent to all constituents. In 2019,
RStudio scored 16.1 points out of a possible 21.9+ points in the
Governance Impact Area, including 10 points awarded for the specific
legal structures we have established as a Benefit Corporation that
preserve our mission and consider our stakeholders regardless of company
ownership.
In our latest assessment, our governance score improved by 37% via
improvements in ethics and transparency areas, including anti-corruption
and code of ethics training for employees, and more rigorous financial
controls and financial transparency with employees. Looking ahead, we
plan to incorporate more social and community benefit metrics in our
corporate reporting, including board meeting updates, so that all of our
stakeholders are aware of our ongoing progress and can help support our
success.
## Workers
We have made significant strides in our Worker assessment category since
2019, with scores increasing by 50% or more in areas such as career
development, engagement and satisfaction, and financial security for our
employees. {{< colbreak >}} Investments in employee career development include in-house
management training programs, tooling and education to support
constructive feedback, and documentation of job levels, pay ranges, and
career paths within our major functions. In 2021, we initiated an annual
organizational health survey, which allows us to collect and respond to
employee feedback. We have also augmented our benefits to include a
"lifestyle savings account" (LSA) funded by Posit that each individual
can choose to apply to home office, professional development, wellness,
or financial health expenses as they see fit. All together, we are
working to continuously improve the value offered to our workers as our
company grows.
:::
```{=typst}
#place(bottom, dy: 1.25in,
align(center,
image("assets/images/Conf-2023-Crowd.jpg",
width: 100% + 2.5in, fit: "cover")
)
)
```
```{=typst}
#back_page(repo: "https://github.com/posit-dev/bcorp-report/")[