File Size Overall
  • There are 38 files with 2,666 lines of code.
    • 0 very long files (0 lines of code)
    • 1 long files (604 lines of code)
    • 2 medium size files (501 lines of code)
    • 6 small files (799 lines of code)
    • 29 very small files (762 lines of code)
0% | 22% | 18% | 29% | 28%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: grouped by folders | grouped by size | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
yaml0% | 95% | 0% | 0% | 4%
scala0% | 0% | 24% | 39% | 36%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
ROOT0% | 95% | 0% | 0% | 4%
src0% | 0% | 24% | 39% | 36%
Longest Files (Top 38)
File# lines# units
cfn.yaml
in root
604 -
Impl.scala
in src/main/scala/com/gu/invoicing/preview
276 10
Impl.scala
in src/main/scala/com/gu/invoicing/refund
225 12
Model.scala
in src/main/scala/com/gu/invoicing/refund
182 1
Model.scala
in src/main/scala/com/gu/invoicing/invoice
151 2
Impl.scala
in src/main/scala/com/gu/invoicing/invoice
147 10
Model.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
115 -
Impl.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
102 5
Model.scala
in src/main/scala/com/gu/invoicing/preview
102 1
Program.scala
in src/main/scala/com/gu/invoicing/refund
100 1
Impl.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
56 3
ZuoraAuth.scala
in src/main/scala/com/gu/invoicing/common
47 -
Model.scala
in src/main/scala/com/gu/invoicing/pdf
46 1
Program.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
38 2
JsonSupport.scala
in src/main/scala/com/gu/invoicing/common
35 -
Impl.scala
in src/main/scala/com/gu/invoicing/pdf
33 -
Model.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
31 -
HttpHelper.scala
in src/main/scala/com/gu/invoicing/common
29 4
Program.scala
in src/main/scala/com/gu/invoicing/invoice
29 2
27 -
Program.scala
in src/main/scala/com/gu/invoicing/preview
26 1
Lambda.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
23 1
Lambda.scala
in src/main/scala/com/gu/invoicing/pdf
23 1
Lambda.scala
in src/main/scala/com/gu/invoicing/invoice
20 1
Cli.scala
in src/main/scala/com/gu/invoicing/preview
19 1
Retry.scala
in src/main/scala/com/gu/invoicing/common
18 2
Program.scala
in src/main/scala/com/gu/invoicing/pdf
17 1
Lambda.scala
in src/main/scala/com/gu/invoicing/refund
17 1
Cli.scala
in src/main/scala/com/gu/invoicing/refund
17 1
Lambda.scala
in src/main/scala/com/gu/invoicing/preview
16 1
Lambda.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
16 1
Cli.scala
in src/main/scala/com/gu/invoicing/invoice
16 1
Program.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
15 1
Cli.scala
in src/main/scala/com/gu/invoicing/pdf
12 1
Cli.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
11 1
Http.scala
in src/main/scala/com/gu/invoicing/common
10 -
DateOps.scala
in src/main/scala/com/gu/invoicing/common
9 -
Assert.scala
in src/main/scala/com/gu/invoicing/common
6 -
Large Files That Change Often (Top 3)
To change a file, an AI coding agent (or a person) has to read it: these files are read the most for the changes in the past year (lines × changes).
File# lines≈ tokens
to read
# changes
(1y)
≈ lines edited
per change
lines read per
line changed
Model.scala
in src/main/scala/com/gu/invoicing/refund
182 ~1k–3k 5 ~20 ~10
Model.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
115 ~700–2k 4 ~30 ~5
Program.scala
in src/main/scala/com/gu/invoicing/refund
100 ~700–1.5k 1 ~15 ~7

Tokens are lines × 7 to 14 (analysis.fileReadsForChanges). Lines edited per change are the file's lines added and deleted divided by its commits over the whole history. Agents read about 2,000 lines at a time: when a 17,000-line file was split into modules, the tokens an agent read for the same change fell by 83% (The Economic Benefit of Refactoring, 2026).

Files With Most Units (Top 28)
File# lines# units
Impl.scala
in src/main/scala/com/gu/invoicing/refund
225 12
Impl.scala
in src/main/scala/com/gu/invoicing/preview
276 10
Impl.scala
in src/main/scala/com/gu/invoicing/invoice
147 10
Impl.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
102 5
HttpHelper.scala
in src/main/scala/com/gu/invoicing/common
29 4
Impl.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
56 3
Program.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
38 2
Retry.scala
in src/main/scala/com/gu/invoicing/common
18 2
Model.scala
in src/main/scala/com/gu/invoicing/invoice
151 2
Program.scala
in src/main/scala/com/gu/invoicing/invoice
29 2
Lambda.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
23 1
Lambda.scala
in src/main/scala/com/gu/invoicing/pdf
23 1
Model.scala
in src/main/scala/com/gu/invoicing/pdf
46 1
Program.scala
in src/main/scala/com/gu/invoicing/pdf
17 1
Cli.scala
in src/main/scala/com/gu/invoicing/pdf
12 1
Lambda.scala
in src/main/scala/com/gu/invoicing/preview
16 1
Model.scala
in src/main/scala/com/gu/invoicing/preview
102 1
Program.scala
in src/main/scala/com/gu/invoicing/preview
26 1
Cli.scala
in src/main/scala/com/gu/invoicing/preview
19 1
Lambda.scala
in src/main/scala/com/gu/invoicing/refund
17 1
Model.scala
in src/main/scala/com/gu/invoicing/refund
182 1
Program.scala
in src/main/scala/com/gu/invoicing/refund
100 1
Cli.scala
in src/main/scala/com/gu/invoicing/refund
17 1
Lambda.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
16 1
Program.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
15 1
Cli.scala
in src/main/scala/com/gu/invoicing/nextinvoicedate
11 1
Lambda.scala
in src/main/scala/com/gu/invoicing/invoice
20 1
Cli.scala
in src/main/scala/com/gu/invoicing/invoice
16 1
Files With Long Lines (Top 4)

There are 4 files with lines longer than 120 characters. In total, there are 21 long lines.

File# lines# units# long lines
cfn.yaml
in root
604 - 13
Impl.scala
in src/main/scala/com/gu/invoicing/refund
225 12 6
Impl.scala
in src/main/scala/com/gu/invoicing/refundErroneousPayment
102 5 1
Program.scala
in src/main/scala/com/gu/invoicing/refund
100 1 1
Correlations

File Size vs. Commits (all time): 38 points

src/main/scala/com/gu/invoicing/refund/Model.scala x: 31 commits (all time) y: 182 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Model.scala x: 9 commits (all time) y: 115 lines of code src/main/scala/com/gu/invoicing/refund/Program.scala x: 24 commits (all time) y: 100 lines of code src/main/scala/com/gu/invoicing/refund/Impl.scala x: 47 commits (all time) y: 225 lines of code src/main/scala/com/gu/invoicing/common/ZuoraAuth.scala x: 19 commits (all time) y: 47 lines of code src/main/scala/com/gu/invoicing/pdf/Impl.scala x: 12 commits (all time) y: 33 lines of code src/main/scala/com/gu/invoicing/pdf/Model.scala x: 13 commits (all time) y: 46 lines of code src/main/scala/com/gu/invoicing/pdf/Program.scala x: 10 commits (all time) y: 17 lines of code cfn.yaml x: 47 commits (all time) y: 604 lines of code src/main/scala/com/gu/invoicing/refund/Lambda.scala x: 16 commits (all time) y: 17 lines of code riff-raff.yaml x: 15 commits (all time) y: 27 lines of code src/main/scala/com/gu/invoicing/common/Assert.scala x: 4 commits (all time) y: 6 lines of code src/main/scala/com/gu/invoicing/common/Http.scala x: 4 commits (all time) y: 10 lines of code src/main/scala/com/gu/invoicing/common/JsonSupport.scala x: 10 commits (all time) y: 35 lines of code src/main/scala/com/gu/invoicing/common/Retry.scala x: 6 commits (all time) y: 18 lines of code src/main/scala/com/gu/invoicing/invoice/Impl.scala x: 19 commits (all time) y: 147 lines of code src/main/scala/com/gu/invoicing/invoice/Model.scala x: 25 commits (all time) y: 151 lines of code src/main/scala/com/gu/invoicing/invoice/Program.scala x: 11 commits (all time) y: 29 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Impl.scala x: 13 commits (all time) y: 56 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Model.scala x: 10 commits (all time) y: 31 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Program.scala x: 6 commits (all time) y: 15 lines of code src/main/scala/com/gu/invoicing/preview/Impl.scala x: 49 commits (all time) y: 276 lines of code src/main/scala/com/gu/invoicing/refund/Cli.scala x: 9 commits (all time) y: 17 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Impl.scala x: 5 commits (all time) y: 102 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Lambda.scala x: 6 commits (all time) y: 23 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Program.scala x: 3 commits (all time) y: 38 lines of code src/main/scala/com/gu/invoicing/common/HttpHelper.scala x: 3 commits (all time) y: 29 lines of code src/main/scala/com/gu/invoicing/invoice/Lambda.scala x: 11 commits (all time) y: 20 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Lambda.scala x: 8 commits (all time) y: 16 lines of code src/main/scala/com/gu/invoicing/pdf/Lambda.scala x: 10 commits (all time) y: 23 lines of code src/main/scala/com/gu/invoicing/preview/Lambda.scala x: 7 commits (all time) y: 16 lines of code src/main/scala/com/gu/invoicing/preview/Model.scala x: 23 commits (all time) y: 102 lines of code src/main/scala/com/gu/invoicing/pdf/Cli.scala x: 6 commits (all time) y: 12 lines of code src/main/scala/com/gu/invoicing/common/DateOps.scala x: 3 commits (all time) y: 9 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Cli.scala x: 5 commits (all time) y: 11 lines of code src/main/scala/com/gu/invoicing/preview/Program.scala x: 20 commits (all time) y: 26 lines of code
604.0
lines of code
  min: 6.0
  average: 70.16
  25th percentile: 16.75
  median: 28.0
  75th percentile: 100.5
  max: 604.0
0 49.0
commits (all time)
min: 3.0 | average: 14.11 | 25th percentile: 6.0 | median: 10.0 | 75th percentile: 19.0 | max: 49.0

File Size vs. Contributors (all time): 38 points

src/main/scala/com/gu/invoicing/refund/Model.scala x: 7 contributors (all time) y: 182 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Model.scala x: 5 contributors (all time) y: 115 lines of code src/main/scala/com/gu/invoicing/refund/Program.scala x: 5 contributors (all time) y: 100 lines of code src/main/scala/com/gu/invoicing/refund/Impl.scala x: 8 contributors (all time) y: 225 lines of code src/main/scala/com/gu/invoicing/common/ZuoraAuth.scala x: 7 contributors (all time) y: 47 lines of code src/main/scala/com/gu/invoicing/pdf/Impl.scala x: 4 contributors (all time) y: 33 lines of code src/main/scala/com/gu/invoicing/pdf/Model.scala x: 6 contributors (all time) y: 46 lines of code src/main/scala/com/gu/invoicing/pdf/Program.scala x: 5 contributors (all time) y: 17 lines of code cfn.yaml x: 7 contributors (all time) y: 604 lines of code src/main/scala/com/gu/invoicing/refund/Lambda.scala x: 3 contributors (all time) y: 17 lines of code riff-raff.yaml x: 3 contributors (all time) y: 27 lines of code src/main/scala/com/gu/invoicing/common/Assert.scala x: 3 contributors (all time) y: 6 lines of code src/main/scala/com/gu/invoicing/common/Http.scala x: 3 contributors (all time) y: 10 lines of code src/main/scala/com/gu/invoicing/common/JsonSupport.scala x: 3 contributors (all time) y: 35 lines of code src/main/scala/com/gu/invoicing/invoice/Impl.scala x: 4 contributors (all time) y: 147 lines of code src/main/scala/com/gu/invoicing/invoice/Model.scala x: 5 contributors (all time) y: 151 lines of code src/main/scala/com/gu/invoicing/invoice/Program.scala x: 3 contributors (all time) y: 29 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Impl.scala x: 3 contributors (all time) y: 56 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Program.scala x: 3 contributors (all time) y: 15 lines of code src/main/scala/com/gu/invoicing/preview/Impl.scala x: 3 contributors (all time) y: 276 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Impl.scala x: 3 contributors (all time) y: 102 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Lambda.scala x: 4 contributors (all time) y: 23 lines of code src/main/scala/com/gu/invoicing/refundErroneousPayment/Program.scala x: 2 contributors (all time) y: 38 lines of code src/main/scala/com/gu/invoicing/common/HttpHelper.scala x: 1 contributors (all time) y: 29 lines of code src/main/scala/com/gu/invoicing/invoice/Lambda.scala x: 3 contributors (all time) y: 20 lines of code src/main/scala/com/gu/invoicing/pdf/Lambda.scala x: 3 contributors (all time) y: 23 lines of code src/main/scala/com/gu/invoicing/pdf/Cli.scala x: 3 contributors (all time) y: 12 lines of code src/main/scala/com/gu/invoicing/common/DateOps.scala x: 2 contributors (all time) y: 9 lines of code src/main/scala/com/gu/invoicing/invoice/Cli.scala x: 2 contributors (all time) y: 16 lines of code src/main/scala/com/gu/invoicing/nextinvoicedate/Cli.scala x: 2 contributors (all time) y: 11 lines of code src/main/scala/com/gu/invoicing/preview/Program.scala x: 2 contributors (all time) y: 26 lines of code
604.0
lines of code
  min: 6.0
  average: 70.16
  25th percentile: 16.75
  median: 28.0
  75th percentile: 100.5
  max: 604.0
0 8.0
contributors (all time)
min: 1.0 | average: 3.66 | 25th percentile: 3.0 | median: 3.0 | 75th percentile: 4.25 | max: 8.0

File Size vs. Commits (30 days): 0 points

No data for "commits (30d)" vs. "lines of code".

File Size vs. Contributors (30 days): 0 points

No data for "contributors (30d)" vs. "lines of code".


File Size vs. Commits (90 days): 0 points

No data for "commits (90d)" vs. "lines of code".

File Size vs. Contributors (90 days): 0 points

No data for "contributors (90d)" vs. "lines of code".

About This Analysis
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...