This summarises the use of my shiny apps (at https://shiny.psyctc.org/). It will evolve a bit through 2024 as, I hope, use increases.

Current data

Info

Value

First date in data

2024-02-07

Last date in data

2024-05-16

This analysis time/date

03:13 on 17/05/2024

Number of days

99

Number of sessions

810

Mean sessions per day

8.18

I am not using any way to separate different users and session is per app, so if someone used multiple apps during one visit to the server, each app used is counts as a separate session.

Numbers of sessions per app

Here’s the number of times each app has been used during that period.

App

Sessions

First used

Last used

Days available

Sessions per day

Days used

% days used

RCI1

248

2024-02-07

2024-05-16

100

2.480

60

60.0%

CSC1

166

2024-02-07

2024-05-15

100

1.660

59

59.0%

ECDFplot

75

2024-02-07

2024-05-13

100

0.750

23

23.0%

CORE-OM_scoring

54

2024-04-16

2024-05-16

31

1.742

28

90.3%

COREpapers1

54

2024-05-11

2024-05-16

6

9.000

6

100.0%

Histogram_and_summary1

33

2024-03-25

2024-05-06

53

0.623

14

26.4%

CIproportion

22

2024-02-07

2024-05-05

100

0.220

16

16.0%

Cronbach1Feldt

22

2024-02-07

2024-05-16

100

0.220

17

17.0%

CIcorrelation

18

2024-02-07

2024-05-16

100

0.180

16

16.0%

CIdiff2proportions

15

2024-02-07

2024-05-06

100

0.150

8

8.0%

CImean

13

2024-02-07

2024-05-08

100

0.130

12

12.0%

Screening1

13

2024-02-07

2024-05-01

100

0.130

9

9.0%

plotCIPearson

11

2024-02-07

2024-05-16

100

0.110

8

8.0%

CISD

9

2024-02-07

2024-05-07

100

0.090

8

8.0%

Spearman-Brown

9

2024-05-03

2024-05-13

14

0.643

5

35.7%

g_from_d_and_n

9

2024-02-07

2024-05-02

100

0.090

7

7.0%

Gaussian1

8

2024-03-05

2024-05-15

73

0.110

7

9.6%

RCI2

8

2024-02-07

2024-05-16

100

0.080

5

5.0%

Create_univariate_data

7

2024-04-09

2024-05-14

38

0.184

6

15.8%

CISpearman

6

2024-02-07

2024-05-16

100

0.060

4

4.0%

Bonferroni1

5

2024-03-24

2024-05-13

54

0.093

5

9.3%

CSClookup2a

5

2024-02-07

2024-05-16

100

0.050

4

4.0%

The columns of Sessions per day and of Percentage days used are rather misleading as different apps have been available for very different numbers of days. I won’t be able to get a less misleading forest plot of the mean usage per day per app until there has been far more usage than we have had so far so I will maybe add that later in the year.

However, I can get confidence intervals for proportions on what usage we already have so here’s a less misleading forest plot of proportion of the available days on which each app was used. The dotted reference line marks the overall usage as a proportion of days available across all the apps.

Here’s a map of usage per app against dates. The sizes of the points show how many times the app was used on that day. The y axis sorts by first date used and then by descending total number of times used.

That shows that currently (24.iii.24) most of the apps are shown as first being used on the same day (7.ii.2024) which was the first date I set up the app use logging (and I tested all the then existing apps that day so all appear on the day). The most used apps with come lower on the y axis within first use dates.

Sessions per day

Here’s the breakdown of sessions per day.

Like the map against time above this shows very clearly one large burst of use after the apps were publicised through the Systemic Research Centre Email list (5.iii.24) and a smaller one after a posting to the IDANET list (9.iii.24).

Breaking that down by app gives me this.

And facetting by app gives this.

Breakdown by day of the week

Weekday

n

percent

Mon

1,475

18%

Tue

2,614

31%

Wed

1,740

21%

Thu

657

8%

Fri

561

7%

Sat

320

4%

Sun

961

12%

Same sorted!

Weekday

n

percent

Tue

2,614

31%

Wed

1,740

21%

Mon

1,475

18%

Sun

961

12%

Thu

657

8%

Fri

561

7%

Sat

320

4%

Time of day

I’ve broken this down by hour. The server is to some extent protected behind a proxy at my ISP which is good for forcing https access but it does mean that I don’t know where people come from so this is all UMT (i.e. old “GMT”: internet time). I think it also suggests, assuming that most accesses are during working hours, that most visitors/users are coming to the site from Europe or the Americas.

Hour

n

percent

0

4

0%

1

2

0%

2

4

0%

3

6

1%

4

4

0%

5

27

3%

6

63

8%

7

39

5%

8

81

10%

9

40

5%

10

26

3%

11

27

3%

12

52

6%

13

50

6%

14

110

14%

15

35

4%

16

30

4%

17

45

6%

18

26

3%

19

28

3%

20

53

7%

21

41

5%

22

12

1%

23

5

1%

Same sorted.

Hour

n

percent

14

110

14%

8

81

10%

6

63

8%

20

53

7%

12

52

6%

13

50

6%

17

45

6%

21

41

5%

9

40

5%

7

39

5%

15

35

4%

16

30

4%

19

28

3%

5

27

3%

11

27

3%

10

26

3%

18

26

3%

22

12

1%

3

6

1%

23

5

1%

0

4

0%

2

4

0%

4

4

0%

1

2

0%

Browsers

For what little it’s worth, these are the browser IDs picked up by shiny (in descending order of frequency).

Browser

n

Firefox 125

131

Chrome 124

94

Firefox 124

69

Chrome 101

67

Chrome 122

67

Chrome 123

60

Firefox 123

44

Chrome 86

38

Firefox 122

34

Safari 17

31

Chrome 103

28

Chrome 100

27

Chrome 121

25

Chrome 104

21

Chrome 102

17

Chrome 119

13

Safari 16

10

Firefox 126

8

Chrome 112

4

Safari 15

3

Chrome 109

2

Chrome 114

2

Firefox 102

2

Opera 109

2

Chrome 110

1

Chrome 115

1

Chrome 117

1

Chrome 120

1

Chrome 125

1

Chrome 94

1

Firefox 115

1

Safari 604

1

I think the numbers are the version number of the browser when the browser reports that. This is more sensible isn’t it?

Browser

n

Chrome

471

Firefox

289

Safari

45

Opera

2

Durations of sessions

A bit more interesting is the durations of the sessions.
Some sessions don’t have a recorded termination time, currently that’s true for 265, i.e. 32.7% of the sessions. This could include occasional session still active at the time at which the copy of the database was pulled. However, I think most will be where someone leaves the session open. I have capped the sessions at one hour in the analyses below.

So most, as you would expect given the nature of the apps, are sessions lasting only a few minutes.

Values input

Where it might be useful to me to know more about the usage I am logging input values for some apps. Here’s the breakdown of the numbers of sessions in which inputs were recorded.

app_name

n

percent

COREpapers1

3,471

60.1%

CSC1

970

16.8%

RCI1

729

12.6%

ECDFplot

136

2.4%

Histogram_and_summary1

129

2.2%

CORE-OM_scoring

128

2.2%

Spearman-Brown

111

1.9%

Cronbach1Feldt

26

0.4%

Create_univariate_data

19

0.3%

CImean

14

0.2%

CIproportion

11

0.2%

CIcorrelation

8

0.1%

CISpearman

7

0.1%

Screening1

5

0.1%

CISD

4

0.1%

plotCIPearson

4

0.1%

Gaussian1

3

0.1%

CIdiff2proportions

2

0.0%

RCI2

2

0.0%

And here are the variables by app, nVisits is the total number of sessions with recorded inputs for that app, nVars is the number of variables that have been input for that app. Finally, nVals is the number of distinct values that have been input for that variable.

app_name

id

nVisits

nVars

nVals

COREpapers1

authName

3,471

55

87

date1

3,471

55

39

date2

3,471

55

31

embedded

3,471

55

9

filterAssStructure

3,471

55

14

filterCORElanguages

3,471

55

15

filterCOREmeasures

3,471

55

12

filterFormats

3,471

55

6

filterGenderCats

3,471

55

7

mainPlotDownload-filename

3,471

55

3

mainPlotDownload-format

3,471

55

1

or

3,471

55

4

or2

3,471

55

3

or3

3,471

55

4

or4

3,471

55

3

or5

3,471

55

2

otherMeasure

3,471

55

26

otherMeasures_cell_clicked

3,471

55

18

otherMeasures_cells_selected

3,471

55

11

otherMeasures_columns_selected

3,471

55

11

otherMeasures_row_last_clicked

3,471

55

5

otherMeasures_rows_all

3,471

55

59

otherMeasures_rows_current

3,471

55

58

otherMeasures_rows_selected

3,471

55

21

otherMeasures_search

3,471

55

28

otherMeasures_state

3,471

55

62

paperLang

3,471

55

11

papers2_cell_clicked

3,471

55

34

papers2_cells_selected

3,471

55

12

papers2_columns_selected

3,471

55

12

papers2_row_last_clicked

3,471

55

7

papers2_rows_all

3,471

55

84

papers2_rows_current

3,471

55

84

papers2_rows_selected

3,471

55

33

papers2_search

3,471

55

41

papers2_state

3,471

55

91

papers_cell_clicked

3,471

55

74

papers_cells_selected

3,471

55

53

papers_columns_selected

3,471

55

53

papers_row_last_clicked

3,471

55

14

papers_rows_all

3,471

55

643

papers_rows_current

3,471

55

645

papers_rows_selected

3,471

55

107

papers_search

3,471

55

59

papers_state

3,471

55

647

reqEmpCOREdata

3,471

55

15

reqOA

3,471

55

12

reqOpenData

3,471

55

5

tabSelected

3,471

55

101

therOrGen

3,471

55

25

vecAssStructure

3,471

55

29

vecCORElanguages

3,471

55

7

vecFormats

3,471

55

5

vecGenderCats

3,471

55

7

vecWhichCOREused

3,471

55

22

CSC1

SDHS

970

7

191

SDNHS

970

7

194

dp

970

7

21

maxPoss

970

7

105

meanHS

970

7

207

meanNHS

970

7

218

minPoss

970

7

34

RCI1

SD

729

8

362

ci

729

8

21

compute

729

8

134

dp

729

8

2

generate

729

8

5

max

729

8

2

min

729

8

1

rel

729

8

202

ECDFplot

annotationSize

136

32

6

fileHeight

136

32

6

fileHeightQuantiles

136

32

2

fileWidth

136

32

6

fileWidthQuantiles

136

32

2

inputType

136

32

7

pastedData

136

32

5

summary_cell_clicked

136

32

2

summary_cells_selected

136

32

2

summary_columns_selected

136

32

2

summary_rows_all

136

32

4

summary_rows_current

136

32

4

summary_rows_selected

136

32

2

summary_search

136

32

2

summary_state

136

32

4

tabSelected

136

32

26

textSize

136

32

6

textSizeQuantiles

136

32

2

tibQuantiles_cell_clicked

136

32

2

tibQuantiles_cells_selected

136

32

2

tibQuantiles_columns_selected

136

32

2

tibQuantiles_rows_all

136

32

4

tibQuantiles_rows_current

136

32

4

tibQuantiles_rows_selected

136

32

2

tibQuantiles_search

136

32

2

tibQuantiles_state

136

32

4

title

136

32

6

titleQuantiles

136

32

2

xLab

136

32

6

xLabQuantiles

136

32

2

yLab

136

32

6

yLabQuantiles

136

32

2

Histogram_and_summary1

bins

129

24

6

contents_cell_clicked

129

24

4

contents_cells_selected

129

24

4

contents_columns_selected

129

24

4

contents_rows_all

129

24

8

contents_rows_current

129

24

8

contents_rows_selected

129

24

4

contents_search

129

24

4

contents_state

129

24

8

dataType

129

24

6

file1

129

24

6

plotDownload-format

129

24

1

summary_cell_clicked

129

24

3

summary_cells_selected

129

24

3

summary_columns_selected

129

24

3

summary_rows_all

129

24

6

summary_rows_current

129

24

6

summary_rows_selected

129

24

3

summary_search

129

24

3

summary_state

129

24

6

title

129

24

7

var

129

24

9

xLab

129

24

8

yLab

129

24

9

CORE-OM_scoring

compData_cell_clicked

128

27

4

compData_cells_selected

128

27

4

compData_columns_selected

128

27

4

compData_rows_all

128

27

4

compData_rows_current

128

27

10

compData_rows_selected

128

27

4

compData_search

128

27

4

compData_state

128

27

16

contents_cell_clicked

128

27

2

contents_cells_selected

128

27

2

contents_columns_selected

128

27

2

contents_rows_all

128

27

4

contents_rows_current

128

27

4

contents_rows_selected

128

27

2

contents_search

128

27

2

contents_state

128

27

4

dp

128

27

6

file1

128

27

14

summary_cell_clicked

128

27

1

summary_cells_selected

128

27

1

summary_columns_selected

128

27

1

summary_rows_all

128

27

1

summary_rows_current

128

27

1

summary_rows_selected

128

27

1

summary_search

128

27

1

summary_state

128

27

1

tabSelected

128

27

28

Spearman-Brown

currK

111

13

9

currRel

111

13

8

maxK

111

13

6

plotDownload-filename

111

13

1

reliabilities_cell_clicked

111

13

3

reliabilities_cells_selected

111

13

3

reliabilities_columns_selected

111

13

3

reliabilities_rows_all

111

13

20

reliabilities_rows_current

111

13

22

reliabilities_rows_selected

111

13

3

reliabilities_search

111

13

3

reliabilities_state

111

13

22

step

111

13

8

Cronbach1Feldt

alpha

26

4

17

dp

26

4

1

k

26

4

7

n

26

4

1

Create_univariate_data

charSeparator

19

10

4

dataTable_cell_clicked

19

10

1

dataTable_cells_selected

19

10

1

dataTable_columns_selected

19

10

1

dataTable_rows_all

19

10

2

dataTable_rows_current

19

10

2

dataTable_rows_selected

19

10

1

dataTable_search

19

10

1

dataTable_state

19

10

2

generate

19

10

4

CImean

SD

14

5

4

SE

14

5

1

dp

14

5

2

mean

14

5

3

n

14

5

4

CIproportion

ci

11

4

1

dp

11

4

2

n

11

4

3

x

11

4

5

CIcorrelation

R

8

2

7

n

8

2

1

CISpearman

n

7

2

1

rs

7

2

6

Screening1

prev

5

1

5

CISD

SD

4

4

1

SDorVar

4

4

1

ci

4

4

1

n

4

4

1

plotCIPearson

R

4

1

4

Gaussian1

n

3

2

2

nBins

3

2

1

CIdiff2proportions

n1

2

1

2

RCI2

compute

2

1

2

So far nVars is a fixed number for each app as it’s going to be maximum number of input values the app requests from the user. Some apps, e.g. RCI1, have a variable “compute” that is just the button instructing the app to run which wasn’t present in early iterations of the app. Another change is that as I get more savvy about shiny some apps, perhaps existing ones, may develop a step-by-step interface so that the numbers of variables input for each use of the app may differ a bit depending on what the user has chosen to do.

Inputs for the RCI1 app

It becomes a bit messy to analyse the inputs as it has to be done (as far as I can currently see) individually by app. It was quite useful as I could see that it had, at least at some point, been possible to enter impossible zero values for reliability and SD. I have now filtered those values out.

Here’s a breakdown for RCI1. These counts only include values that the user entered manually so if the user just left the value at the default value that isn’t counted (however, if the user changes it and then back to the default value, that entry of the default value is counted). I guess I could fix that by filling in the default value where a variable doesn’t appear in the inputs for the session. I’m not sure that’s sufficiently interesting to be worth the faff.

I guess that the .7 entry for the CI was probably me checking the app worked even for that value but I can’t remember for sure. Otherwise it seems entirely sensible that the only other non-default value was .9. The spread of the reliability values is more interesting and looks sensible to me, similarly for the SD.

I guess I could make the app a more interesting information gathering tools if I invited users to input the scale/score being used (i.e. “CORE-OM total”, “BDI-II total”) and even perhaps also ask about dataset (e.g. “my last six months baseline values”, or “the Sheffield X study”) but I think the amount of post-processing that would be necessary to get anything even halfway clean out of that seems unlikely to make this worth the programming/cleaning hassle.

Version history