eps comparison graph ready

This commit is contained in:
Pietro Rodolfo Masera 2023-05-29 15:56:15 +02:00
parent 435ba7450e
commit 043ace9a0e
7 changed files with 528 additions and 4 deletions

View file

@ -0,0 +1,361 @@
,Ticker,quarter,epsDifferential
0,AAPL,2022-06-30,3.448275862068969
1,AAPL,2022-09-30,1.5748031496063006
2,AAPL,2022-12-31,-3.092783505154642
3,AAPL,2023-03-31,6.2937062937062995
4,ABBV,2022-06-30,1.8126888217522674
5,ABBV,2022-09-30,2.5210084033613533
6,ABBV,2022-12-31,1.1235955056179785
7,ABBV,2023-03-31,0.0
8,ABT,2022-06-30,26.54867256637169
9,ABT,2022-09-30,22.34042553191489
10,ABT,2022-12-31,11.956521739130432
11,ABT,2023-03-31,4.040404040404044
12,ACN,2022-05-31,-2.1052631578947385
13,ACN,2022-08-31,1.1673151750972859
14,ACN,2022-11-30,5.841924398625427
15,ACN,2023-02-28,7.599999999999999
16,ADBE,2022-05-31,1.2084592145015116
17,ADBE,2022-08-31,2.1021021021020974
18,ADBE,2022-11-30,2.85714285714286
19,ADBE,2023-02-28,3.2608695652173822
20,AMAT,2022-07-31,8.379888268156419
21,AMAT,2022-10-31,17.341040462427735
22,AMAT,2023-01-31,5.181347150259061
23,AMAT,2023-04-30,8.69565217391304
24,AMGN,2022-06-30,5.681818181818182
25,AMGN,2022-09-30,5.855855855855851
26,AMGN,2022-12-31,0.0
27,AMGN,2023-03-31,3.3766233766233738
28,AMZN,2022-06-30,-242.85714285714283
29,AMZN,2022-09-30,33.33333333333336
30,AMZN,2022-12-31,-82.3529411764706
31,AMZN,2023-03-31,47.61904761904762
32,APD,2022-06-30,0.3831417624521162
33,APD,2022-09-30,4.710144927536245
34,APD,2022-12-31,-2.222222222222224
35,APD,2023-03-31,3.7878787878787907
36,AVGO,2022-04-30,4.252873563218403
37,AVGO,2022-07-31,1.7782426778242668
38,AVGO,2022-10-31,1.653696498054474
39,AVGO,2023-01-31,2.2772277227722815
40,BA,2022-06-30,164.28571428571425
41,BA,2022-09-30,-8928.571428571428
42,BA,2022-12-31,-773.076923076923
43,BA,2023-03-31,18.691588785046722
44,BAC,2022-06-30,-2.6666666666666687
45,BAC,2022-09-30,5.194805194805199
46,BAC,2022-12-31,10.389610389610384
47,BAC,2023-03-31,14.634146341463413
48,BDX,2022-06-30,6.400000000000006
49,BDX,2022-09-30,0.3649635036496272
50,BDX,2022-12-31,11.194029850746261
51,BDX,2023-03-31,4.379562043795607
52,BIDU,2022-06-30,51.38888888888891
53,BIDU,2022-09-30,10.176991150442499
54,BIDU,2022-12-31,12.060301507537687
55,BIDU,2023-03-31,29.213483146067404
56,BMY,2022-06-30,7.8212290502793245
57,BMY,2022-09-30,8.7431693989071
58,BMY,2022-12-31,5.813953488372099
59,BMY,2023-03-31,4.060913705583748
60,CAT,2022-06-30,5.647840531561474
61,CAT,2022-09-30,25.0
62,CAT,2022-12-31,6.218905472636817
63,CAT,2023-03-31,29.894179894179906
64,CCI,2022-06-30,1.0416666666666676
65,CCI,2022-09-30,0.0
66,CCI,2022-12-31,-3.061224489795921
67,CCI,2023-03-31,6.593406593406587
68,CHTR,2022-06-30,27.721335268505097
69,CHTR,2022-09-30,-10.328068043742412
70,CHTR,2022-12-31,-12.514220705346974
71,CHTR,2023-03-31,-11.096256684491978
72,CMCSA,2022-06-30,10.989010989010985
73,CMCSA,2022-09-30,6.66666666666666
74,CMCSA,2022-12-31,6.493506493506485
75,CMCSA,2023-03-31,12.195121951219525
76,CME,2022-06-30,2.072538860103629
77,CME,2022-09-30,2.061855670103095
78,CME,2022-12-31,2.1276595744680873
79,CME,2023-03-31,2.1097046413502034
80,COST,2022-05-31,0.3300330033003377
81,COST,2022-08-31,0.9615384615384623
82,COST,2022-11-30,-1.2861736334405156
83,COST,2023-02-28,2.8037383177570048
84,CRM,2022-04-30,4.255319148936175
85,CRM,2022-07-31,16.66666666666666
86,CRM,2022-10-31,15.70247933884297
87,CRM,2023-01-31,23.52941176470587
88,CSCO,2022-07-31,1.2195121951219523
89,CSCO,2022-10-31,2.380952380952383
90,CSCO,2023-01-31,3.529411764705886
91,CSCO,2023-04-30,3.092783505154642
92,CSX,2022-06-30,6.382978723404261
93,CSX,2022-09-30,4.081632653061228
94,CSX,2022-12-31,2.1739130434782505
95,CSX,2023-03-31,11.627906976744184
96,CVS,2022-06-30,10.599078341013826
97,CVS,2022-09-30,5.025125628140697
98,CVS,2022-12-31,3.645833333333337
99,CVS,2023-03-31,5.263157894736858
100,CVX,2022-06-30,14.117647058823543
101,CVX,2022-09-30,15.592515592515593
102,CVX,2022-12-31,-6.621004566210047
103,CVX,2023-03-31,4.1055718475073215
104,D,2022-06-30,1.3157894736842117
105,D,2022-09-30,2.77777777777778
106,D,2022-12-31,1.9230769230769247
107,D,2023-03-31,2.061855670103095
108,DE,2022-07-31,-7.922272047832589
109,DE,2022-10-31,4.641350210970465
110,DE,2023-01-31,17.80575539568346
111,DE,2023-04-30,12.339930151338772
112,DHR,2022-06-30,17.446808510638284
113,DHR,2022-09-30,13.274336283185853
114,DHR,2022-12-31,12.99212598425197
115,DHR,2023-03-31,4.888888888888884
116,DIS,2022-06-30,13.54166666666668
117,DIS,2022-09-30,-45.45454545454546
118,DIS,2022-12-31,26.923076923076916
119,DIS,2023-03-31,0.0
120,DUK,2022-06-30,6.542056074766339
121,DUK,2022-09-30,-3.260869565217394
122,DUK,2022-12-31,3.738317757009349
123,DUK,2023-03-31,-4.761904761904765
124,EXC,2022-06-30,-4.347826086956525
125,EXC,2022-09-30,7.1428571428571495
126,EXC,2022-12-31,0.0
127,EXC,2023-03-31,6.060606060606049
128,FDX,2022-05-31,0.14577259475218346
129,FDX,2022-08-31,-33.07392996108949
130,FDX,2022-11-30,12.765957446808523
131,FDX,2023-02-28,24.908424908424916
132,FIS,2022-06-30,1.1695906432748548
133,FIS,2022-09-30,-0.571428571428572
134,FIS,2022-12-31,0.5882352941176475
135,FIS,2023-03-31,7.500000000000007
136,GE,2022-06-30,110.8108108108108
137,GE,2022-09-30,-23.913043478260878
138,GE,2022-12-31,9.734513274336292
139,GE,2023-03-31,92.85714285714285
140,GILD,2022-06-30,3.947368421052635
141,GILD,2022-09-30,32.86713286713287
142,GILD,2022-12-31,12.080536912751674
143,GILD,2023-03-31,-11.038961038961034
144,GOOGL,2022-06-30,-5.468750000000004
145,GOOGL,2022-09-30,-15.199999999999998
146,GOOGL,2022-12-31,-11.016949152542365
147,GOOGL,2023-03-31,9.345794392523352
148,GS,2022-06-30,17.47720364741642
149,GS,2022-09-30,7.282184655396613
150,GS,2022-12-31,-39.41605839416059
151,GS,2023-03-31,8.518518518518512
152,HD,2022-07-31,2.2267206477732677
153,HD,2022-10-31,2.9126213592233037
154,HD,2023-01-31,0.6097560975609762
155,HD,2023-04-30,0.5263157894736847
156,HON,2022-06-30,3.44827586206898
157,HON,2022-09-30,4.16666666666666
158,HON,2022-12-31,0.3984063745020013
159,HON,2023-03-31,7.25388601036269
160,IBM,2022-06-30,1.7621145374449354
161,IBM,2022-09-30,2.25988700564972
162,IBM,2022-12-31,0.0
163,IBM,2023-03-31,7.936507936507943
164,INTC,2022-06-30,-58.57142857142858
165,INTC,2022-09-30,84.37499999999999
166,INTC,2022-12-31,-50.0
167,INTC,2023-03-31,-73.33333333333333
168,ISRG,2022-06-30,-4.201680672268911
169,ISRG,2022-09-30,6.249999999999986
170,ISRG,2022-12-31,-1.6000000000000014
171,ISRG,2023-03-31,2.500000000000002
172,JNJ,2022-06-30,2.371541501976287
173,JNJ,2022-09-30,3.2388663967611184
174,JNJ,2022-12-31,5.381165919282516
175,JNJ,2023-03-31,7.200000000000006
176,JPM,2022-06-30,-4.1666666666666705
177,JPM,2022-09-30,8.333333333333341
178,JPM,2022-12-31,16.33986928104575
179,JPM,2023-03-31,20.234604105571833
180,KO,2022-06-30,4.477611940298495
181,KO,2022-09-30,7.812499999999989
182,KO,2022-12-31,0.0
183,KO,2023-03-31,6.250000000000005
184,LIN,2022-06-30,58.163265306122454
185,LIN,2022-09-30,15.476190476190482
186,LIN,2022-12-31,17.91044776119403
187,LIN,2023-03-31,62.051282051282065
188,LLY,2022-06-30,-26.035502958579883
189,LLY,2022-09-30,3.1250000000000027
190,LLY,2022-12-31,17.415730337078642
191,LLY,2023-03-31,-6.3583815028901665
192,LMT,2022-06-30,-32.94797687861272
193,LMT,2022-09-30,0.750750750750748
194,LMT,2022-12-31,0.13531799729364918
195,LMT,2023-03-31,9.075907590759089
196,LOW,2022-04-30,9.00621118012421
197,LOW,2022-07-31,1.9650655021834031
198,LOW,2022-10-31,5.483870967741932
199,LOW,2023-01-31,3.1674208144796308
200,LRCX,2022-06-30,20.628415300546443
201,LRCX,2022-09-30,9.338929695697804
202,LRCX,2022-12-31,7.53012048192771
203,LRCX,2023-03-31,6.880733944954132
204,MA,2022-06-30,8.474576271186448
205,MA,2022-09-30,4.687500000000004
206,MA,2022-12-31,2.713178294573637
207,MA,2023-03-31,2.9411764705882213
208,MCD,2022-06-30,3.2388663967611184
209,MCD,2022-09-30,3.8759689922480653
210,MCD,2022-12-31,5.714285714285701
211,MCD,2023-03-31,12.875536480686685
212,MCO,2022-06-30,-3.4782608695652013
213,MCO,2022-09-30,-10.194174757281552
214,MCO,2022-12-31,11.111111111111121
215,MCO,2023-03-31,35.90909090909091
216,MDT,2022-04-30,-2.5641025641025665
217,MDT,2022-07-31,0.8928571428571237
218,MDT,2022-10-31,1.5625000000000013
219,MDT,2023-01-31,2.362204724409451
220,MMC,2022-06-30,1.612903225806441
221,MMC,2022-09-30,3.5087719298245648
222,MMC,2022-12-31,4.255319148936175
223,MMC,2023-03-31,2.429149797570834
224,MMM,2022-06-30,2.4793388429752086
225,MMM,2022-09-30,3.4615384615384563
226,MMM,2022-12-31,-3.3898305084745797
227,MMM,2023-03-31,24.68354430379746
228,MO,2022-06-30,0.8000000000000007
229,MO,2022-09-30,-1.5384615384615397
230,MO,2022-12-31,0.8547008547008554
231,MO,2023-03-31,0.0
232,MRK,2022-06-30,10.000000000000009
233,MRK,2022-09-30,8.187134502923984
234,MRK,2022-12-31,5.194805194805199
235,MRK,2023-03-31,6.060606060606049
236,MSFT,2022-06-30,-2.6200873362445436
237,MSFT,2022-09-30,2.1739130434782727
238,MSFT,2022-12-31,1.3100436681222623
239,MSFT,2023-03-31,9.865470852017946
240,NEE,2022-06-30,10.958904109589051
241,NEE,2022-09-30,6.249999999999992
242,NEE,2022-12-31,4.081632653061228
243,NEE,2023-03-31,16.666666666666664
244,NFLX,2022-06-30,8.843537414965995
245,NFLX,2022-09-30,45.5399061032864
246,NFLX,2022-12-31,-73.33333333333334
247,NFLX,2023-03-31,0.6993006993007
248,NKE,2022-05-31,12.499999999999996
249,NKE,2022-08-31,1.0869565217391313
250,NKE,2022-11-30,32.81249999999999
251,NKE,2023-02-28,43.636363636363626
252,NSC,2022-06-30,-0.5763688760806921
253,NSC,2022-09-30,12.637362637362623
254,NSC,2022-12-31,-0.5813953488372098
255,NSC,2023-03-31,6.410256410256402
256,NVDA,2022-04-30,5.426356589147292
257,NVDA,2022-07-31,-59.199999999999996
258,NVDA,2022-10-31,-15.942028985507244
259,NVDA,2023-01-31,8.64197530864197
260,ORCL,2022-05-31,12.408759124087585
261,ORCL,2022-08-31,-3.738317757009349
262,ORCL,2022-11-30,2.5423728813559343
263,ORCL,2023-02-28,1.6666666666666683
264,PEP,2022-06-30,6.896551724137938
265,PEP,2022-09-30,7.0652173913043415
266,PEP,2022-12-31,1.2121212121212133
267,PEP,2023-03-31,7.913669064748209
268,PFE,2022-06-30,14.606741573033707
269,PFE,2022-09-30,28.057553956834543
270,PFE,2022-12-31,8.571428571428557
271,PFE,2023-03-31,25.510204081632654
272,PG,2022-06-30,-0.8196721311475417
273,PG,2022-09-30,1.9480519480519498
274,PG,2022-12-31,0.0
275,PG,2023-03-31,3.7878787878787907
276,PM,2022-06-30,4.761904761904765
277,PM,2022-09-30,-2.2058823529411784
278,PM,2022-12-31,12.09677419354838
279,PM,2023-03-31,2.9850746268656576
280,PYPL,2022-06-30,8.139534883720938
281,PYPL,2022-09-30,12.50000000000001
282,PYPL,2022-12-31,3.3333333333333366
283,PYPL,2023-03-31,6.363636363636349
284,SCHW,2022-06-30,6.593406593406587
285,SCHW,2022-09-30,4.761904761904765
286,SCHW,2022-12-31,0.0
287,SCHW,2023-03-31,3.333333333333336
288,SO,2022-06-30,27.380952380952394
289,SO,2022-09-30,-1.5037593984962419
290,SO,2022-12-31,8.333333333333341
291,SO,2023-03-31,11.267605633802827
292,SPG,2022-06-30,5.5944055944056
293,SPG,2022-09-30,14.583333333333332
294,SPG,2022-12-31,21.1764705882353
295,SPG,2023-03-31,-0.7194244604316554
296,SPGI,2022-06-30,-4.095563139931744
297,SPGI,2022-09-30,5.01792114695341
298,SPGI,2022-12-31,2.4193548387096793
299,SPGI,2023-03-31,8.247422680412363
300,T,2022-06-30,6.557377049180333
301,T,2022-09-30,11.475409836065584
302,T,2022-12-31,7.0175438596491295
303,T,2023-03-31,3.448275862068969
304,TGT,2022-07-31,-45.83333333333333
305,TGT,2022-10-31,-27.69953051643192
306,TGT,2023-01-31,35.0
307,TGT,2023-04-30,16.477272727272716
308,TMO,2022-06-30,10.420841683366724
309,TMO,2022-09-30,5.613305613305624
310,TMO,2022-12-31,3.8461538461538494
311,TMO,2023-03-31,0.0
312,TMUS,2022-06-30,-136.0
313,TMUS,2022-09-30,900.0
314,TMUS,2022-12-31,7.272727272727258
315,TMUS,2023-03-31,6.756756756756762
316,TSLA,2022-06-30,26.66666666666667
317,TSLA,2022-09-30,6.060606060606066
318,TSLA,2022-12-31,5.309734513274342
319,TSLA,2023-03-31,0.0
320,TXN,2022-06-30,15.566037735849058
321,TXN,2022-09-30,3.347280334728036
322,TXN,2022-12-31,7.575757575757572
323,TXN,2023-03-31,3.9325842696629247
324,UNH,2022-06-30,7.115384615384618
325,UNH,2022-09-30,6.826568265682659
326,UNH,2022-12-31,3.2882011605415844
327,UNH,2023-03-31,2.1207177814029348
328,UNP,2022-06-30,2.4475524475524577
329,UNP,2022-09-30,4.248366013071892
330,UNP,2022-12-31,-3.610108303249101
331,UNP,2023-03-31,3.48837209302325
332,UPS,2022-06-30,4.113924050632908
333,UPS,2022-09-30,5.281690140845083
334,UPS,2022-12-31,0.8356545961002856
335,UPS,2023-03-31,-0.4524886877827958
336,USB,2022-06-30,1.8691588785046744
337,USB,2022-09-30,0.8547008547008554
338,USB,2022-12-31,2.5641025641025665
339,USB,2023-03-31,3.5714285714285547
340,V,2022-06-30,13.142857142857142
341,V,2022-09-30,3.763440860215045
342,V,2022-12-31,8.45771144278609
343,V,2023-03-31,5.025125628140697
344,VZ,2022-06-30,-0.7575757575757582
345,VZ,2022-09-30,2.325581395348839
346,VZ,2022-12-31,0.0
347,VZ,2023-03-31,0.0
348,WFC,2022-06-30,-7.500000000000007
349,WFC,2022-09-30,-22.018348623853218
350,WFC,2022-12-31,-7.5757575757575815
351,WFC,2023-03-31,8.849557522123902
352,WMT,2022-07-31,9.259259259259252
353,WMT,2022-10-31,13.63636363636363
354,WMT,2023-01-31,13.24503311258278
355,WMT,2023-04-30,11.363636363636356
356,XOM,2022-06-30,10.695187165775385
357,XOM,2022-09-30,17.414248021108182
358,XOM,2022-12-31,3.3434650455927013
359,XOM,2023-03-31,9.266409266409276
1 Ticker quarter epsDifferential
2 0 AAPL 2022-06-30 3.448275862068969
3 1 AAPL 2022-09-30 1.5748031496063006
4 2 AAPL 2022-12-31 -3.092783505154642
5 3 AAPL 2023-03-31 6.2937062937062995
6 4 ABBV 2022-06-30 1.8126888217522674
7 5 ABBV 2022-09-30 2.5210084033613533
8 6 ABBV 2022-12-31 1.1235955056179785
9 7 ABBV 2023-03-31 0.0
10 8 ABT 2022-06-30 26.54867256637169
11 9 ABT 2022-09-30 22.34042553191489
12 10 ABT 2022-12-31 11.956521739130432
13 11 ABT 2023-03-31 4.040404040404044
14 12 ACN 2022-05-31 -2.1052631578947385
15 13 ACN 2022-08-31 1.1673151750972859
16 14 ACN 2022-11-30 5.841924398625427
17 15 ACN 2023-02-28 7.599999999999999
18 16 ADBE 2022-05-31 1.2084592145015116
19 17 ADBE 2022-08-31 2.1021021021020974
20 18 ADBE 2022-11-30 2.85714285714286
21 19 ADBE 2023-02-28 3.2608695652173822
22 20 AMAT 2022-07-31 8.379888268156419
23 21 AMAT 2022-10-31 17.341040462427735
24 22 AMAT 2023-01-31 5.181347150259061
25 23 AMAT 2023-04-30 8.69565217391304
26 24 AMGN 2022-06-30 5.681818181818182
27 25 AMGN 2022-09-30 5.855855855855851
28 26 AMGN 2022-12-31 0.0
29 27 AMGN 2023-03-31 3.3766233766233738
30 28 AMZN 2022-06-30 -242.85714285714283
31 29 AMZN 2022-09-30 33.33333333333336
32 30 AMZN 2022-12-31 -82.3529411764706
33 31 AMZN 2023-03-31 47.61904761904762
34 32 APD 2022-06-30 0.3831417624521162
35 33 APD 2022-09-30 4.710144927536245
36 34 APD 2022-12-31 -2.222222222222224
37 35 APD 2023-03-31 3.7878787878787907
38 36 AVGO 2022-04-30 4.252873563218403
39 37 AVGO 2022-07-31 1.7782426778242668
40 38 AVGO 2022-10-31 1.653696498054474
41 39 AVGO 2023-01-31 2.2772277227722815
42 40 BA 2022-06-30 164.28571428571425
43 41 BA 2022-09-30 -8928.571428571428
44 42 BA 2022-12-31 -773.076923076923
45 43 BA 2023-03-31 18.691588785046722
46 44 BAC 2022-06-30 -2.6666666666666687
47 45 BAC 2022-09-30 5.194805194805199
48 46 BAC 2022-12-31 10.389610389610384
49 47 BAC 2023-03-31 14.634146341463413
50 48 BDX 2022-06-30 6.400000000000006
51 49 BDX 2022-09-30 0.3649635036496272
52 50 BDX 2022-12-31 11.194029850746261
53 51 BDX 2023-03-31 4.379562043795607
54 52 BIDU 2022-06-30 51.38888888888891
55 53 BIDU 2022-09-30 10.176991150442499
56 54 BIDU 2022-12-31 12.060301507537687
57 55 BIDU 2023-03-31 29.213483146067404
58 56 BMY 2022-06-30 7.8212290502793245
59 57 BMY 2022-09-30 8.7431693989071
60 58 BMY 2022-12-31 5.813953488372099
61 59 BMY 2023-03-31 4.060913705583748
62 60 CAT 2022-06-30 5.647840531561474
63 61 CAT 2022-09-30 25.0
64 62 CAT 2022-12-31 6.218905472636817
65 63 CAT 2023-03-31 29.894179894179906
66 64 CCI 2022-06-30 1.0416666666666676
67 65 CCI 2022-09-30 0.0
68 66 CCI 2022-12-31 -3.061224489795921
69 67 CCI 2023-03-31 6.593406593406587
70 68 CHTR 2022-06-30 27.721335268505097
71 69 CHTR 2022-09-30 -10.328068043742412
72 70 CHTR 2022-12-31 -12.514220705346974
73 71 CHTR 2023-03-31 -11.096256684491978
74 72 CMCSA 2022-06-30 10.989010989010985
75 73 CMCSA 2022-09-30 6.66666666666666
76 74 CMCSA 2022-12-31 6.493506493506485
77 75 CMCSA 2023-03-31 12.195121951219525
78 76 CME 2022-06-30 2.072538860103629
79 77 CME 2022-09-30 2.061855670103095
80 78 CME 2022-12-31 2.1276595744680873
81 79 CME 2023-03-31 2.1097046413502034
82 80 COST 2022-05-31 0.3300330033003377
83 81 COST 2022-08-31 0.9615384615384623
84 82 COST 2022-11-30 -1.2861736334405156
85 83 COST 2023-02-28 2.8037383177570048
86 84 CRM 2022-04-30 4.255319148936175
87 85 CRM 2022-07-31 16.66666666666666
88 86 CRM 2022-10-31 15.70247933884297
89 87 CRM 2023-01-31 23.52941176470587
90 88 CSCO 2022-07-31 1.2195121951219523
91 89 CSCO 2022-10-31 2.380952380952383
92 90 CSCO 2023-01-31 3.529411764705886
93 91 CSCO 2023-04-30 3.092783505154642
94 92 CSX 2022-06-30 6.382978723404261
95 93 CSX 2022-09-30 4.081632653061228
96 94 CSX 2022-12-31 2.1739130434782505
97 95 CSX 2023-03-31 11.627906976744184
98 96 CVS 2022-06-30 10.599078341013826
99 97 CVS 2022-09-30 5.025125628140697
100 98 CVS 2022-12-31 3.645833333333337
101 99 CVS 2023-03-31 5.263157894736858
102 100 CVX 2022-06-30 14.117647058823543
103 101 CVX 2022-09-30 15.592515592515593
104 102 CVX 2022-12-31 -6.621004566210047
105 103 CVX 2023-03-31 4.1055718475073215
106 104 D 2022-06-30 1.3157894736842117
107 105 D 2022-09-30 2.77777777777778
108 106 D 2022-12-31 1.9230769230769247
109 107 D 2023-03-31 2.061855670103095
110 108 DE 2022-07-31 -7.922272047832589
111 109 DE 2022-10-31 4.641350210970465
112 110 DE 2023-01-31 17.80575539568346
113 111 DE 2023-04-30 12.339930151338772
114 112 DHR 2022-06-30 17.446808510638284
115 113 DHR 2022-09-30 13.274336283185853
116 114 DHR 2022-12-31 12.99212598425197
117 115 DHR 2023-03-31 4.888888888888884
118 116 DIS 2022-06-30 13.54166666666668
119 117 DIS 2022-09-30 -45.45454545454546
120 118 DIS 2022-12-31 26.923076923076916
121 119 DIS 2023-03-31 0.0
122 120 DUK 2022-06-30 6.542056074766339
123 121 DUK 2022-09-30 -3.260869565217394
124 122 DUK 2022-12-31 3.738317757009349
125 123 DUK 2023-03-31 -4.761904761904765
126 124 EXC 2022-06-30 -4.347826086956525
127 125 EXC 2022-09-30 7.1428571428571495
128 126 EXC 2022-12-31 0.0
129 127 EXC 2023-03-31 6.060606060606049
130 128 FDX 2022-05-31 0.14577259475218346
131 129 FDX 2022-08-31 -33.07392996108949
132 130 FDX 2022-11-30 12.765957446808523
133 131 FDX 2023-02-28 24.908424908424916
134 132 FIS 2022-06-30 1.1695906432748548
135 133 FIS 2022-09-30 -0.571428571428572
136 134 FIS 2022-12-31 0.5882352941176475
137 135 FIS 2023-03-31 7.500000000000007
138 136 GE 2022-06-30 110.8108108108108
139 137 GE 2022-09-30 -23.913043478260878
140 138 GE 2022-12-31 9.734513274336292
141 139 GE 2023-03-31 92.85714285714285
142 140 GILD 2022-06-30 3.947368421052635
143 141 GILD 2022-09-30 32.86713286713287
144 142 GILD 2022-12-31 12.080536912751674
145 143 GILD 2023-03-31 -11.038961038961034
146 144 GOOGL 2022-06-30 -5.468750000000004
147 145 GOOGL 2022-09-30 -15.199999999999998
148 146 GOOGL 2022-12-31 -11.016949152542365
149 147 GOOGL 2023-03-31 9.345794392523352
150 148 GS 2022-06-30 17.47720364741642
151 149 GS 2022-09-30 7.282184655396613
152 150 GS 2022-12-31 -39.41605839416059
153 151 GS 2023-03-31 8.518518518518512
154 152 HD 2022-07-31 2.2267206477732677
155 153 HD 2022-10-31 2.9126213592233037
156 154 HD 2023-01-31 0.6097560975609762
157 155 HD 2023-04-30 0.5263157894736847
158 156 HON 2022-06-30 3.44827586206898
159 157 HON 2022-09-30 4.16666666666666
160 158 HON 2022-12-31 0.3984063745020013
161 159 HON 2023-03-31 7.25388601036269
162 160 IBM 2022-06-30 1.7621145374449354
163 161 IBM 2022-09-30 2.25988700564972
164 162 IBM 2022-12-31 0.0
165 163 IBM 2023-03-31 7.936507936507943
166 164 INTC 2022-06-30 -58.57142857142858
167 165 INTC 2022-09-30 84.37499999999999
168 166 INTC 2022-12-31 -50.0
169 167 INTC 2023-03-31 -73.33333333333333
170 168 ISRG 2022-06-30 -4.201680672268911
171 169 ISRG 2022-09-30 6.249999999999986
172 170 ISRG 2022-12-31 -1.6000000000000014
173 171 ISRG 2023-03-31 2.500000000000002
174 172 JNJ 2022-06-30 2.371541501976287
175 173 JNJ 2022-09-30 3.2388663967611184
176 174 JNJ 2022-12-31 5.381165919282516
177 175 JNJ 2023-03-31 7.200000000000006
178 176 JPM 2022-06-30 -4.1666666666666705
179 177 JPM 2022-09-30 8.333333333333341
180 178 JPM 2022-12-31 16.33986928104575
181 179 JPM 2023-03-31 20.234604105571833
182 180 KO 2022-06-30 4.477611940298495
183 181 KO 2022-09-30 7.812499999999989
184 182 KO 2022-12-31 0.0
185 183 KO 2023-03-31 6.250000000000005
186 184 LIN 2022-06-30 58.163265306122454
187 185 LIN 2022-09-30 15.476190476190482
188 186 LIN 2022-12-31 17.91044776119403
189 187 LIN 2023-03-31 62.051282051282065
190 188 LLY 2022-06-30 -26.035502958579883
191 189 LLY 2022-09-30 3.1250000000000027
192 190 LLY 2022-12-31 17.415730337078642
193 191 LLY 2023-03-31 -6.3583815028901665
194 192 LMT 2022-06-30 -32.94797687861272
195 193 LMT 2022-09-30 0.750750750750748
196 194 LMT 2022-12-31 0.13531799729364918
197 195 LMT 2023-03-31 9.075907590759089
198 196 LOW 2022-04-30 9.00621118012421
199 197 LOW 2022-07-31 1.9650655021834031
200 198 LOW 2022-10-31 5.483870967741932
201 199 LOW 2023-01-31 3.1674208144796308
202 200 LRCX 2022-06-30 20.628415300546443
203 201 LRCX 2022-09-30 9.338929695697804
204 202 LRCX 2022-12-31 7.53012048192771
205 203 LRCX 2023-03-31 6.880733944954132
206 204 MA 2022-06-30 8.474576271186448
207 205 MA 2022-09-30 4.687500000000004
208 206 MA 2022-12-31 2.713178294573637
209 207 MA 2023-03-31 2.9411764705882213
210 208 MCD 2022-06-30 3.2388663967611184
211 209 MCD 2022-09-30 3.8759689922480653
212 210 MCD 2022-12-31 5.714285714285701
213 211 MCD 2023-03-31 12.875536480686685
214 212 MCO 2022-06-30 -3.4782608695652013
215 213 MCO 2022-09-30 -10.194174757281552
216 214 MCO 2022-12-31 11.111111111111121
217 215 MCO 2023-03-31 35.90909090909091
218 216 MDT 2022-04-30 -2.5641025641025665
219 217 MDT 2022-07-31 0.8928571428571237
220 218 MDT 2022-10-31 1.5625000000000013
221 219 MDT 2023-01-31 2.362204724409451
222 220 MMC 2022-06-30 1.612903225806441
223 221 MMC 2022-09-30 3.5087719298245648
224 222 MMC 2022-12-31 4.255319148936175
225 223 MMC 2023-03-31 2.429149797570834
226 224 MMM 2022-06-30 2.4793388429752086
227 225 MMM 2022-09-30 3.4615384615384563
228 226 MMM 2022-12-31 -3.3898305084745797
229 227 MMM 2023-03-31 24.68354430379746
230 228 MO 2022-06-30 0.8000000000000007
231 229 MO 2022-09-30 -1.5384615384615397
232 230 MO 2022-12-31 0.8547008547008554
233 231 MO 2023-03-31 0.0
234 232 MRK 2022-06-30 10.000000000000009
235 233 MRK 2022-09-30 8.187134502923984
236 234 MRK 2022-12-31 5.194805194805199
237 235 MRK 2023-03-31 6.060606060606049
238 236 MSFT 2022-06-30 -2.6200873362445436
239 237 MSFT 2022-09-30 2.1739130434782727
240 238 MSFT 2022-12-31 1.3100436681222623
241 239 MSFT 2023-03-31 9.865470852017946
242 240 NEE 2022-06-30 10.958904109589051
243 241 NEE 2022-09-30 6.249999999999992
244 242 NEE 2022-12-31 4.081632653061228
245 243 NEE 2023-03-31 16.666666666666664
246 244 NFLX 2022-06-30 8.843537414965995
247 245 NFLX 2022-09-30 45.5399061032864
248 246 NFLX 2022-12-31 -73.33333333333334
249 247 NFLX 2023-03-31 0.6993006993007
250 248 NKE 2022-05-31 12.499999999999996
251 249 NKE 2022-08-31 1.0869565217391313
252 250 NKE 2022-11-30 32.81249999999999
253 251 NKE 2023-02-28 43.636363636363626
254 252 NSC 2022-06-30 -0.5763688760806921
255 253 NSC 2022-09-30 12.637362637362623
256 254 NSC 2022-12-31 -0.5813953488372098
257 255 NSC 2023-03-31 6.410256410256402
258 256 NVDA 2022-04-30 5.426356589147292
259 257 NVDA 2022-07-31 -59.199999999999996
260 258 NVDA 2022-10-31 -15.942028985507244
261 259 NVDA 2023-01-31 8.64197530864197
262 260 ORCL 2022-05-31 12.408759124087585
263 261 ORCL 2022-08-31 -3.738317757009349
264 262 ORCL 2022-11-30 2.5423728813559343
265 263 ORCL 2023-02-28 1.6666666666666683
266 264 PEP 2022-06-30 6.896551724137938
267 265 PEP 2022-09-30 7.0652173913043415
268 266 PEP 2022-12-31 1.2121212121212133
269 267 PEP 2023-03-31 7.913669064748209
270 268 PFE 2022-06-30 14.606741573033707
271 269 PFE 2022-09-30 28.057553956834543
272 270 PFE 2022-12-31 8.571428571428557
273 271 PFE 2023-03-31 25.510204081632654
274 272 PG 2022-06-30 -0.8196721311475417
275 273 PG 2022-09-30 1.9480519480519498
276 274 PG 2022-12-31 0.0
277 275 PG 2023-03-31 3.7878787878787907
278 276 PM 2022-06-30 4.761904761904765
279 277 PM 2022-09-30 -2.2058823529411784
280 278 PM 2022-12-31 12.09677419354838
281 279 PM 2023-03-31 2.9850746268656576
282 280 PYPL 2022-06-30 8.139534883720938
283 281 PYPL 2022-09-30 12.50000000000001
284 282 PYPL 2022-12-31 3.3333333333333366
285 283 PYPL 2023-03-31 6.363636363636349
286 284 SCHW 2022-06-30 6.593406593406587
287 285 SCHW 2022-09-30 4.761904761904765
288 286 SCHW 2022-12-31 0.0
289 287 SCHW 2023-03-31 3.333333333333336
290 288 SO 2022-06-30 27.380952380952394
291 289 SO 2022-09-30 -1.5037593984962419
292 290 SO 2022-12-31 8.333333333333341
293 291 SO 2023-03-31 11.267605633802827
294 292 SPG 2022-06-30 5.5944055944056
295 293 SPG 2022-09-30 14.583333333333332
296 294 SPG 2022-12-31 21.1764705882353
297 295 SPG 2023-03-31 -0.7194244604316554
298 296 SPGI 2022-06-30 -4.095563139931744
299 297 SPGI 2022-09-30 5.01792114695341
300 298 SPGI 2022-12-31 2.4193548387096793
301 299 SPGI 2023-03-31 8.247422680412363
302 300 T 2022-06-30 6.557377049180333
303 301 T 2022-09-30 11.475409836065584
304 302 T 2022-12-31 7.0175438596491295
305 303 T 2023-03-31 3.448275862068969
306 304 TGT 2022-07-31 -45.83333333333333
307 305 TGT 2022-10-31 -27.69953051643192
308 306 TGT 2023-01-31 35.0
309 307 TGT 2023-04-30 16.477272727272716
310 308 TMO 2022-06-30 10.420841683366724
311 309 TMO 2022-09-30 5.613305613305624
312 310 TMO 2022-12-31 3.8461538461538494
313 311 TMO 2023-03-31 0.0
314 312 TMUS 2022-06-30 -136.0
315 313 TMUS 2022-09-30 900.0
316 314 TMUS 2022-12-31 7.272727272727258
317 315 TMUS 2023-03-31 6.756756756756762
318 316 TSLA 2022-06-30 26.66666666666667
319 317 TSLA 2022-09-30 6.060606060606066
320 318 TSLA 2022-12-31 5.309734513274342
321 319 TSLA 2023-03-31 0.0
322 320 TXN 2022-06-30 15.566037735849058
323 321 TXN 2022-09-30 3.347280334728036
324 322 TXN 2022-12-31 7.575757575757572
325 323 TXN 2023-03-31 3.9325842696629247
326 324 UNH 2022-06-30 7.115384615384618
327 325 UNH 2022-09-30 6.826568265682659
328 326 UNH 2022-12-31 3.2882011605415844
329 327 UNH 2023-03-31 2.1207177814029348
330 328 UNP 2022-06-30 2.4475524475524577
331 329 UNP 2022-09-30 4.248366013071892
332 330 UNP 2022-12-31 -3.610108303249101
333 331 UNP 2023-03-31 3.48837209302325
334 332 UPS 2022-06-30 4.113924050632908
335 333 UPS 2022-09-30 5.281690140845083
336 334 UPS 2022-12-31 0.8356545961002856
337 335 UPS 2023-03-31 -0.4524886877827958
338 336 USB 2022-06-30 1.8691588785046744
339 337 USB 2022-09-30 0.8547008547008554
340 338 USB 2022-12-31 2.5641025641025665
341 339 USB 2023-03-31 3.5714285714285547
342 340 V 2022-06-30 13.142857142857142
343 341 V 2022-09-30 3.763440860215045
344 342 V 2022-12-31 8.45771144278609
345 343 V 2023-03-31 5.025125628140697
346 344 VZ 2022-06-30 -0.7575757575757582
347 345 VZ 2022-09-30 2.325581395348839
348 346 VZ 2022-12-31 0.0
349 347 VZ 2023-03-31 0.0
350 348 WFC 2022-06-30 -7.500000000000007
351 349 WFC 2022-09-30 -22.018348623853218
352 350 WFC 2022-12-31 -7.5757575757575815
353 351 WFC 2023-03-31 8.849557522123902
354 352 WMT 2022-07-31 9.259259259259252
355 353 WMT 2022-10-31 13.63636363636363
356 354 WMT 2023-01-31 13.24503311258278
357 355 WMT 2023-04-30 11.363636363636356
358 356 XOM 2022-06-30 10.695187165775385
359 357 XOM 2022-09-30 17.414248021108182
360 358 XOM 2022-12-31 3.3434650455927013
361 359 XOM 2023-03-31 9.266409266409276

View file

@ -0,0 +1,17 @@
import os
import pandas as pd
import numpy as np
from scraper.top100_extractor import programming_crime_list
from typing import Optional
DF_EPS_PATH: str = os.path.join(os.path.dirname(__file__), '..', '..', 'Elaborated_Data', 'eps_comparison.csv')
def get_eps_comp(tickers: list[str]) -> list[dict]:
df = pd.read_csv(DF_EPS_PATH)
ticker_series = pd.Series(tickers)
df = df.loc[df['Ticker'].isin(ticker_series), :] \
.rename(columns={"epsDifferential": "quarterlyDifferential", "Ticker": "ticker"}) \
.reset_index(drop=True)
df = df.pivot(index='quarter', columns='ticker', values='quarterlyDifferential').reset_index(drop=False)
return df.replace({ np.nan: None }).to_dict('records')

View file

@ -37,6 +37,23 @@ def concatenate_eps():
eps_df.to_csv('Elaborated_Data/eps_quarterly_bar_chart.csv') eps_df.to_csv('Elaborated_Data/eps_quarterly_bar_chart.csv')
def eps_comparison():
# Read earnings csv
eps_comp_df = pd.DataFrame()
for ticker in programming_crime_list:
earnings = pd.read_csv(f'Companies_Data/{ticker}_Data/{ticker}earnings.csv')
earnings = earnings[['symbol', 'epsActual', 'epsEstimate', 'quarter']]
earnings['epsDifferential'] = ((earnings['epsActual'] - earnings['epsEstimate']) / earnings['epsEstimate']) * 100
earnings = earnings.drop(columns=['epsActual', 'epsEstimate'])
earnings = earnings.rename(columns={'symbol': 'Ticker'})
eps_comp_df = pd.concat([eps_comp_df, earnings], ignore_index=True, axis=0)
# Save the earnings df to Elaborated_Data
eps_comp_df.to_csv(f'Elaborated_Data/eps_comparison.csv')
return earnings
if __name__ == '__main__': if __name__ == '__main__':
concatenate_price_history() concatenate_price_history()
concatenate_eps() concatenate_eps()
eps_comparison()

View file

@ -44,6 +44,11 @@ export interface Eps {
} }
export interface EpsComp {
[ticker: string]: string | number; // really just number
quarter: string;
}
export const getCompanies = (tickers?: string[]): Promise<Company[]> => export const getCompanies = (tickers?: string[]): Promise<Company[]> =>
fetch(BACKEND_URL + '/companies' + (tickers ? ('/' + tickers.join('/')) : '')) fetch(BACKEND_URL + '/companies' + (tickers ? ('/' + tickers.join('/')) : ''))
.then(r => r.json()) .then(r => r.json())
@ -61,6 +66,8 @@ export const getPriceHistory = (tickers: string[]): Promise<PriceHistory[]> =>
export const getBalanceSheet = (tickers: string[]): Promise<BalanceSheet[]> => export const getBalanceSheet = (tickers: string[]): Promise<BalanceSheet[]> =>
fetch(BACKEND_URL + '/assets_debts/' + tickers.join('/')).then(r=>r.json()) fetch(BACKEND_URL + '/assets_debts/' + tickers.join('/')).then(r=>r.json())
export const getEps = (tickers: string[]): Promise<Eps[]> => export const getEps = (tickers: string[]): Promise<Eps[]> =>
fetch(BACKEND_URL + '/eps/' + tickers.join('/').toUpperCase()).then(r => r.json()) fetch(BACKEND_URL + '/eps/' + tickers.join('/').toUpperCase()).then(r => r.json())
export const getEpsComp = (tickers: string[]): Promise<EpsComp[]> =>
fetch(BACKEND_URL + '/eps_comp/' + tickers.join('/').toUpperCase()).then(r => r.json())

View file

@ -0,0 +1,112 @@
<template>
<v-row>
<v-col cols="12">
<v-card>
<v-card-item>
<v-card-title>Past Performance</v-card-title>
</v-card-item>
<v-card-text>
<v-skeleton-loader class="chart-loader" v-if="epsCompData.loading" />
<ag-charts-vue class="chart" v-else :options="options" />
</v-card-text>
</v-card>
</v-col>
</v-row>
</template>
<script setup lang="ts">
import { EpsComp, getEpsComp } from '@/api';
import { defineLoader } from '@/api/loader';
import { DateTime } from 'luxon';
import { AgAxisLabelFormatterParams } from 'ag-charts-community';
import { roundTo } from 'round-to';
import { onMounted, computed } from 'vue';
import { AgChartsVue } from 'ag-charts-vue3';
const renderer = (params: any) => ({
title: params.title,
content: DateTime.fromMillis(params.xValue).toFormat('yyyy-MM') + ': ' + roundTo(params.yValue, 4) + '%',
});
const props = defineProps<{
tickers: string[],
colors: string[]
}>();
const getTickerColor = (ticker: string) => props.colors[props.tickers.indexOf(ticker)];
const epsCompData = defineLoader<EpsComp[]>(() => getEpsComp(props.tickers));
const options = computed(() => {
if (epsCompData.loading) return null;
return {
theme: 'ag-material',
data: epsCompData.data?.map(e => ({ ...e, quarter: Date.parse(e.quarter) })),
series: props.tickers.map((t: string) => ({
xKey: 'quarter',
type: 'line',
yKey: t,
yName: t,
fill: getTickerColor(t),
stroke: getTickerColor(t),
tooltip: { renderer: renderer },
highlightStyle: {
item: { fillOpacity: 0 },
series: { enabled: false }
},
})),
axes: [
{
type: 'category',
position: 'bottom',
label: {
autoRotate: true,
autoRotateAngle: 335,
formatter: (params: any) => {
return DateTime.fromMillis(parseInt(params.value)).toFormat('yyyy-MM');
}
},
gridStyle: [
{
lineDash: [Infinity],
}, {
lineDash: [Infinity],
}
],
},
{
type: 'number',
position: 'left',
label: {
format: '$~s',
formatter: (params: AgAxisLabelFormatterParams) => {
params?.formatter?.(params.value)
return params.value + '%';
}
},
gridStyle: [{
lineDash: [Infinity],
}, {
lineDash: [Infinity],
}],
crossLines:[
{
type: 'range',
value: 0,
lineDash: [6, 3],
stroke: 'black',
}
]
},
],
legend: {
position: 'bottom',
}
};
});
onMounted(() => {
epsCompData.load();
});
</script>

View file

@ -36,6 +36,9 @@
<v-col cols="12"> <v-col cols="12">
<eps-chart :colors="colors" :tickers="tickers" /> <eps-chart :colors="colors" :tickers="tickers" />
</v-col> </v-col>
<v-col cols="12">
<eps-comparison-chart :colors="colors" :tickers="tickers" />
</v-col>
</v-row> </v-row>
</v-container> </v-container>
</template> </template>
@ -66,6 +69,7 @@ import EmployeesChart from '@/components/EmployeesChart.vue';
import BalanceSheet from '@/components/BalanceSheet.vue'; import BalanceSheet from '@/components/BalanceSheet.vue';
import EpsChart from '@/components/EpsChart.vue'; import EpsChart from '@/components/EpsChart.vue';
import StockPrice from '@/components/StockPrice.vue'; import StockPrice from '@/components/StockPrice.vue';
import EpsComparisonChart from '@/components/EpsComparisonChart.vue';
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();

View file

@ -10,6 +10,7 @@ import sys
import subprocess import subprocess
from typing import Optional from typing import Optional
from backend.api.eps import get_eps from backend.api.eps import get_eps
from backend.api.past_performance import get_eps_comp
ROOT_DIR: str = os.path.dirname(__file__) ROOT_DIR: str = os.path.dirname(__file__)
@ -63,6 +64,11 @@ def eps(tickers: Optional[str]) -> object:
return jsonify(get_eps(tickers.split('/'))) return jsonify(get_eps(tickers.split('/')))
@app.route('/eps_comp/<path:tickers>', methods=['GET'])
def eps_comp(tickers: Optional[str]) -> object:
return jsonify(get_eps_comp(tickers.split('/')))
if __name__ == '__main__': if __name__ == '__main__':
if len(sys.argv) < 2 or sys.argv[1] != 'no-frontend': if len(sys.argv) < 2 or sys.argv[1] != 'no-frontend':
build_frontend() build_frontend()