Key Takeaway #1

Utilizing an IDE (Integrated Development Environment) such as RStudio will provide accessibility to increased understanding of data provided by clients and visualization tools that can be applied to the risk assessment procedures for audits.

Illustration of Visual Capabilities

Scatterplot

In order to demonstrate RStudio’s graphic capacity, the following illustration will discuss observations related to a population of penguins. The data compiled includes observations of three species of penguins, including the flipper length in millimeters and weight in grams. Correlations between flipper length and the total weight of each penguin may be represented visually, while also differentiating the results by species:

ggplot(data = penguins, 
       mapping = aes(x=flipper_length_mm, y=body_mass_g, color = species, shape = species)) + 
  labs(
    title = "Body mass and flipper length",
    subtitle = "Dimensions for Adelie, Chinstrap, and Gentoo Penguins",
    x = "Flipper length (mm)", y = "Body mass (g)",
    color = "Species", shape = "Species"
  ) + geom_point()

Smoothing methods can be implemented to increase the ease with which a user can interpret the information provided, as well as more plainly identify outliers.

ggplot(
  data = penguins,
  mapping = aes(x = flipper_length_mm, y = body_mass_g)
) +
  geom_point(mapping = aes(color = species, shape = species)) +
  geom_smooth(method = "lm") + 
  labs(
    title = "Body mass and flipper length",
    subtitle = "Dimensions for Adelie, Chinstrap, and Gentoo Penguins",
    x = "Flipper length (mm)", y = "Body mass (g)",
    color = "Species", shape = "Species"
  ) 

Boxplot

A boxplot is another method to apply when searching for population outliers. This visual tool individually specifies any observations that are outside the expected distribution range. The image below represents the population body mass by species and indicates there are two outliers (one lower and one higher) noted for the Chinstrap penguin species.

ggplot(penguins, aes(x = species, y = body_mass_g)) +
  geom_boxplot()

Key Takeaway #2

In addition to visualization tools, RStudio can also be used to evaluate data using techniques that are similar to Pivot Tables or other functions in Excel.

Data Evaluation

Applying the data used in the Sales Tax project, different summarization tools can be used to provide greater insight to the underlying data. The grouping below demonstrates how to group the different tax results and provide the count of applicable states and amount of sales included in each category.

 load("Maybe_SaaS.RData")

Maybe_Sum <- Maybe |> 
  group_by(Register) |> 
  summarise(Sales = sum(Sales), State = n_distinct(State)) |>
  arrange(desc(Sales))

Maybe_Sum
NA

Another way to look at the data would be to filter the states in which the company operates that have applicable requirements for SaaS taxes. This selection would provide opportunity to review locations that may not have met the requirements for a tax in the current year, but could rise to the applicable thresholds in future years.

SaaS_States <- filter(Maybe, SaaS == "TRUE")|> 
  arrange(desc(Sales))
SaaS_States

Current Applications

Visualization

I had not expected RStudio to provide the ability to visualize numerous dimensions in one chart. The coding required is also more accessible than I had anticipated.

One way that this tool may be incorporated into audit procedures would be to plot the relationship between water utility billing revenue and related costs of gallons purchased by month during the fiscal year. As multiple dimensions are able to be applied into one graph, the usage amounts of both purchases and billings can also also be included. This visual tool will support the gross profit analyses already included in audit procedures and assist in identifying the effect of rate increases.

Another potential application for utility billing would be to use a boxplot to depict customer usage each month and the invoiced amount. Investigation of any identified outliers could indicate customers not included in the billing cycle.

Evaluation

In current audits, significant data files are used in audit procedures. While Excel is most frequently used, limitations exist that may effect use across all clients. As of 2025, the size restriction for an Excel spreadsheet is 1,048,576 rows by 16,384 columns. While restrictions may not be a consideration for all clients, there are cetain situations where the detail information too large to be applicable to using Excel for evaluation.

Conclusion

As R is open-source, it is a cost-effective method for preparing analyses and provides a low barrier of entry. The software is available as as local download, enabling security settings for equipment to protect the information used in the IDE. The main barrier of entry is training on RStudio itself, which can be addressed through incorporating R functionality in ongoing staff training.

LS0tCnRpdGxlOiAiUmVmbGVjdGlvbiBOb3RlYm9vayAyIChDdW11bGF0aXZlKSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyBLZXkgVGFrZWF3YXkgIzEKClV0aWxpemluZyBhbiBJREUgKEludGVncmF0ZWQgRGV2ZWxvcG1lbnQgRW52aXJvbm1lbnQpIHN1Y2ggYXMgUlN0dWRpbyB3aWxsIHByb3ZpZGUgYWNjZXNzaWJpbGl0eSB0byBpbmNyZWFzZWQgdW5kZXJzdGFuZGluZyBvZiBkYXRhIHByb3ZpZGVkIGJ5IGNsaWVudHMgYW5kIHZpc3VhbGl6YXRpb24gdG9vbHMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byB0aGUgcmlzayBhc3Nlc3NtZW50IHByb2NlZHVyZXMgZm9yIGF1ZGl0cy4gCgojIyBJbGx1c3RyYXRpb24gb2YgVmlzdWFsIENhcGFiaWxpdGllcwoKIyMjIFNjYXR0ZXJwbG90CgpJbiBvcmRlciB0byBkZW1vbnN0cmF0ZSBSU3R1ZGlvJ3MgZ3JhcGhpYyBjYXBhY2l0eSwgdGhlIGZvbGxvd2luZyBpbGx1c3RyYXRpb24gd2lsbCBkaXNjdXNzIG9ic2VydmF0aW9ucyByZWxhdGVkIHRvIGEgcG9wdWxhdGlvbiBvZiBwZW5ndWlucy4gVGhlIGRhdGEgY29tcGlsZWQgaW5jbHVkZXMgb2JzZXJ2YXRpb25zIG9mIHRocmVlIHNwZWNpZXMgb2YgcGVuZ3VpbnMsIGluY2x1ZGluZyB0aGUgZmxpcHBlciBsZW5ndGggaW4gbWlsbGltZXRlcnMgYW5kIHdlaWdodCBpbiBncmFtcy4gQ29ycmVsYXRpb25zIGJldHdlZW4gZmxpcHBlciBsZW5ndGggYW5kIHRoZSB0b3RhbCB3ZWlnaHQgb2YgZWFjaCBwZW5ndWluIG1heSBiZSByZXByZXNlbnRlZCB2aXN1YWxseSwgd2hpbGUgYWxzbyBkaWZmZXJlbnRpYXRpbmcgdGhlIHJlc3VsdHMgYnkgc3BlY2llczoKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IHBlbmd1aW5zLCAKICAgICAgIG1hcHBpbmcgPSBhZXMoeD1mbGlwcGVyX2xlbmd0aF9tbSwgeT1ib2R5X21hc3NfZywgY29sb3IgPSBzcGVjaWVzLCBzaGFwZSA9IHNwZWNpZXMpKSArIAogIGxhYnMoCiAgICB0aXRsZSA9ICJCb2R5IG1hc3MgYW5kIGZsaXBwZXIgbGVuZ3RoIiwKICAgIHN1YnRpdGxlID0gIkRpbWVuc2lvbnMgZm9yIEFkZWxpZSwgQ2hpbnN0cmFwLCBhbmQgR2VudG9vIFBlbmd1aW5zIiwKICAgIHggPSAiRmxpcHBlciBsZW5ndGggKG1tKSIsIHkgPSAiQm9keSBtYXNzIChnKSIsCiAgICBjb2xvciA9ICJTcGVjaWVzIiwgc2hhcGUgPSAiU3BlY2llcyIKICApICsgZ2VvbV9wb2ludCgpCmBgYAoKU21vb3RoaW5nIG1ldGhvZHMgY2FuIGJlIGltcGxlbWVudGVkIHRvIGluY3JlYXNlIHRoZSBlYXNlIHdpdGggd2hpY2ggYSB1c2VyIGNhbiBpbnRlcnByZXQgdGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkLCBhcyB3ZWxsIGFzIG1vcmUgcGxhaW5seSBpZGVudGlmeSBvdXRsaWVycy4gCgpgYGB7cn0KZ2dwbG90KAogIGRhdGEgPSBwZW5ndWlucywKICBtYXBwaW5nID0gYWVzKHggPSBmbGlwcGVyX2xlbmd0aF9tbSwgeSA9IGJvZHlfbWFzc19nKQopICsKICBnZW9tX3BvaW50KG1hcHBpbmcgPSBhZXMoY29sb3IgPSBzcGVjaWVzLCBzaGFwZSA9IHNwZWNpZXMpKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikgKyAKICBsYWJzKAogICAgdGl0bGUgPSAiQm9keSBtYXNzIGFuZCBmbGlwcGVyIGxlbmd0aCIsCiAgICBzdWJ0aXRsZSA9ICJEaW1lbnNpb25zIGZvciBBZGVsaWUsIENoaW5zdHJhcCwgYW5kIEdlbnRvbyBQZW5ndWlucyIsCiAgICB4ID0gIkZsaXBwZXIgbGVuZ3RoIChtbSkiLCB5ID0gIkJvZHkgbWFzcyAoZykiLAogICAgY29sb3IgPSAiU3BlY2llcyIsIHNoYXBlID0gIlNwZWNpZXMiCiAgKSAKYGBgCgojIyMgQm94cGxvdAoKQSBib3hwbG90IGlzIGFub3RoZXIgbWV0aG9kIHRvIGFwcGx5IHdoZW4gc2VhcmNoaW5nIGZvciBwb3B1bGF0aW9uIG91dGxpZXJzLiBUaGlzIHZpc3VhbCB0b29sIGluZGl2aWR1YWxseSBzcGVjaWZpZXMgYW55IG9ic2VydmF0aW9ucyB0aGF0IGFyZSBvdXRzaWRlIHRoZSBleHBlY3RlZCBkaXN0cmlidXRpb24gcmFuZ2UuIFRoZSBpbWFnZSBiZWxvdyByZXByZXNlbnRzIHRoZSBwb3B1bGF0aW9uIGJvZHkgbWFzcyBieSBzcGVjaWVzIGFuZCBpbmRpY2F0ZXMgdGhlcmUgYXJlIHR3byBvdXRsaWVycyAob25lIGxvd2VyIGFuZCBvbmUgaGlnaGVyKSBub3RlZCBmb3IgdGhlIENoaW5zdHJhcCBwZW5ndWluIHNwZWNpZXMuICAKYGBge3J9CmdncGxvdChwZW5ndWlucywgYWVzKHggPSBzcGVjaWVzLCB5ID0gYm9keV9tYXNzX2cpKSArCiAgZ2VvbV9ib3hwbG90KCkKYGBgCgojIEtleSBUYWtlYXdheSAjMgoKSW4gYWRkaXRpb24gdG8gdmlzdWFsaXphdGlvbiB0b29scywgUlN0dWRpbyBjYW4gYWxzbyBiZSB1c2VkIHRvIGV2YWx1YXRlIGRhdGEgdXNpbmcgdGVjaG5pcXVlcyB0aGF0IGFyZSBzaW1pbGFyIHRvIFBpdm90IFRhYmxlcyBvciBvdGhlciBmdW5jdGlvbnMgaW4gRXhjZWwuCgojIyBEYXRhIEV2YWx1YXRpb24KCkFwcGx5aW5nIHRoZSBkYXRhIHVzZWQgaW4gdGhlIFNhbGVzIFRheCBwcm9qZWN0LCBkaWZmZXJlbnQgc3VtbWFyaXphdGlvbiB0b29scyBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGdyZWF0ZXIgaW5zaWdodCB0byB0aGUgdW5kZXJseWluZyBkYXRhLiBUaGUgZ3JvdXBpbmcgYmVsb3cgZGVtb25zdHJhdGVzIGhvdyB0byBncm91cCB0aGUgZGlmZmVyZW50IHRheCByZXN1bHRzIGFuZCBwcm92aWRlIHRoZSBjb3VudCBvZiBhcHBsaWNhYmxlIHN0YXRlcyBhbmQgYW1vdW50IG9mIHNhbGVzIGluY2x1ZGVkIGluIGVhY2ggY2F0ZWdvcnkuCmBgYHtyfQogbG9hZCgiTWF5YmVfU2FhUy5SRGF0YSIpCgpNYXliZV9TdW0gPC0gTWF5YmUgfD4gCiAgZ3JvdXBfYnkoUmVnaXN0ZXIpIHw+IAogIHN1bW1hcmlzZShTYWxlcyA9IHN1bShTYWxlcyksIFN0YXRlID0gbl9kaXN0aW5jdChTdGF0ZSkpIHw+CiAgYXJyYW5nZShkZXNjKFNhbGVzKSkKCk1heWJlX1N1bQoKYGBgCgpBbm90aGVyIHdheSB0byBsb29rIGF0IHRoZSBkYXRhIHdvdWxkIGJlIHRvIGZpbHRlciB0aGUgc3RhdGVzIGluIHdoaWNoIHRoZSBjb21wYW55IG9wZXJhdGVzIHRoYXQgaGF2ZSBhcHBsaWNhYmxlIHJlcXVpcmVtZW50cyBmb3IgU2FhUyB0YXhlcy4gVGhpcyBzZWxlY3Rpb24gd291bGQgcHJvdmlkZSBvcHBvcnR1bml0eSB0byByZXZpZXcgbG9jYXRpb25zIHRoYXQgbWF5IG5vdCBoYXZlIG1ldCB0aGUgcmVxdWlyZW1lbnRzIGZvciBhIHRheCBpbiB0aGUgY3VycmVudCB5ZWFyLCBidXQgY291bGQgcmlzZSB0byB0aGUgYXBwbGljYWJsZSB0aHJlc2hvbGRzIGluIGZ1dHVyZSB5ZWFycy4KYGBge3J9ClNhYVNfU3RhdGVzIDwtIGZpbHRlcihNYXliZSwgU2FhUyA9PSAiVFJVRSIpfD4gCiAgYXJyYW5nZShkZXNjKFNhbGVzKSkKU2FhU19TdGF0ZXMKYGBgCgoKCiMgQ3VycmVudCBBcHBsaWNhdGlvbnMKCiMjIFZpc3VhbGl6YXRpb24KCkkgaGFkIG5vdCBleHBlY3RlZCBSU3R1ZGlvIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gdmlzdWFsaXplIG51bWVyb3VzIGRpbWVuc2lvbnMgaW4gb25lIGNoYXJ0LiBUaGUgY29kaW5nIHJlcXVpcmVkIGlzIGFsc28gbW9yZSBhY2Nlc3NpYmxlIHRoYW4gSSBoYWQgYW50aWNpcGF0ZWQuIAoKT25lIHdheSB0aGF0IHRoaXMgdG9vbCBtYXkgYmUgaW5jb3Jwb3JhdGVkIGludG8gYXVkaXQgcHJvY2VkdXJlcyB3b3VsZCBiZSB0byBwbG90IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB3YXRlciB1dGlsaXR5IGJpbGxpbmcgcmV2ZW51ZSBhbmQgcmVsYXRlZCBjb3N0cyBvZiBnYWxsb25zIHB1cmNoYXNlZCBieSBtb250aCBkdXJpbmcgdGhlIGZpc2NhbCB5ZWFyLiBBcyBtdWx0aXBsZSBkaW1lbnNpb25zIGFyZSBhYmxlIHRvIGJlIGFwcGxpZWQgaW50byBvbmUgZ3JhcGgsIHRoZSB1c2FnZSBhbW91bnRzIG9mIGJvdGggcHVyY2hhc2VzIGFuZCBiaWxsaW5ncyBjYW4gYWxzbyBhbHNvIGJlIGluY2x1ZGVkLiBUaGlzIHZpc3VhbCB0b29sIHdpbGwgc3VwcG9ydCB0aGUgZ3Jvc3MgcHJvZml0IGFuYWx5c2VzIGFscmVhZHkgaW5jbHVkZWQgaW4gYXVkaXQgcHJvY2VkdXJlcyBhbmQgYXNzaXN0IGluIGlkZW50aWZ5aW5nIHRoZSBlZmZlY3Qgb2YgcmF0ZSBpbmNyZWFzZXMuCgpBbm90aGVyIHBvdGVudGlhbCBhcHBsaWNhdGlvbiBmb3IgdXRpbGl0eSBiaWxsaW5nIHdvdWxkIGJlIHRvIHVzZSBhIGJveHBsb3QgdG8gZGVwaWN0IGN1c3RvbWVyIHVzYWdlIGVhY2ggbW9udGggYW5kIHRoZSBpbnZvaWNlZCBhbW91bnQuIEludmVzdGlnYXRpb24gb2YgYW55IGlkZW50aWZpZWQgb3V0bGllcnMgY291bGQgaW5kaWNhdGUgY3VzdG9tZXJzIG5vdCBpbmNsdWRlZCBpbiB0aGUgYmlsbGluZyBjeWNsZS4gCgojIyBFdmFsdWF0aW9uCgpJbiBjdXJyZW50IGF1ZGl0cywgc2lnbmlmaWNhbnQgZGF0YSBmaWxlcyBhcmUgdXNlZCBpbiBhdWRpdCBwcm9jZWR1cmVzLiBXaGlsZSBFeGNlbCBpcyBtb3N0IGZyZXF1ZW50bHkgdXNlZCwgbGltaXRhdGlvbnMgZXhpc3QgdGhhdCBtYXkgZWZmZWN0IHVzZSBhY3Jvc3MgYWxsIGNsaWVudHMuIEFzIG9mIDIwMjUsIHRoZSBzaXplIHJlc3RyaWN0aW9uIGZvciBhbiBFeGNlbCBzcHJlYWRzaGVldCBpcyAxLDA0OCw1NzYgcm93cyBieSAxNiwzODQgY29sdW1ucy4gV2hpbGUgcmVzdHJpY3Rpb25zIG1heSBub3QgYmUgYSBjb25zaWRlcmF0aW9uIGZvciBhbGwgY2xpZW50cywgdGhlcmUgYXJlIGNldGFpbiBzaXR1YXRpb25zIHdoZXJlIHRoZSBkZXRhaWwgaW5mb3JtYXRpb24gdG9vIGxhcmdlIHRvIGJlIGFwcGxpY2FibGUgdG8gdXNpbmcgRXhjZWwgZm9yIGV2YWx1YXRpb24uCgojIENvbmNsdXNpb24KCkFzIFIgaXMgb3Blbi1zb3VyY2UsIGl0IGlzIGEgY29zdC1lZmZlY3RpdmUgbWV0aG9kIGZvciBwcmVwYXJpbmcgYW5hbHlzZXMgYW5kIHByb3ZpZGVzIGEgbG93IGJhcnJpZXIgb2YgZW50cnkuIFRoZSBzb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXMgYXMgbG9jYWwgZG93bmxvYWQsIGVuYWJsaW5nIHNlY3VyaXR5IHNldHRpbmdzIGZvciBlcXVpcG1lbnQgdG8gcHJvdGVjdCB0aGUgaW5mb3JtYXRpb24gdXNlZCBpbiB0aGUgSURFLiBUaGUgbWFpbiBiYXJyaWVyIG9mIGVudHJ5IGlzIHRyYWluaW5nIG9uIFJTdHVkaW8gaXRzZWxmLCB3aGljaCBjYW4gYmUgYWRkcmVzc2VkIHRocm91Z2ggaW5jb3Jwb3JhdGluZyBSIGZ1bmN0aW9uYWxpdHkgaW4gb25nb2luZyBzdGFmZiB0cmFpbmluZy4K