<commit_before># EBOlve

### EDWARDS-BELL-OHLSON aLghorithmic Value Engine (tacky, I know :)

A valuation model based on discounted residual income or abnormal earnings. Similar in nature to EVA (Economic Value Added) developed by <NAME>. Both EVA and EBO rely on the idea of "residual income", defined as earnings in excess of an expected level of performance. Developed initially in the 1930's, it provides an alternative valuation to DCF based on more readily available accounting data and earnings forecasts. Since the theoretical underpinnings are the same as the DDM (and therefore DCF), it  should give similar results to DCF as long as the clear-surplus assumption holds.

### Usage

```ruby
> irb
>> x = {:eps1=>1.24, :eps2=>1.54, :ltg=>0.241, :book_s=>5.11, :FROE=>0.2,\
        :r=>0.0960, :pYOUT=>0.16, :years=>12, :growth_years=>5}
>> y = Ebolve.new(input)
>> puts y.ebo
```

```python
> python
>>> import Ebolve
>>> x =   {'eps1':1.24, 'eps2':1.54, 'ltg':0.241, 'book_s':5.11, 'FROE':0.2,\
           'r':0.0960, 'pYOUT':0.16, 'years':20, 'growth_years':5}
>>> z = Ebolve.Ebolve(x)
>>> z.compute_ebo()
```

### Input Parameters

**eps1, eps2, ltg**: Earnings per share estimates. eps1 and eps2 are the one- and two-year forecasts, respectively. Ltg is the constant growth rate at which earnings per share as forecasted to grow from year 3 till the end of a 'growth period'. For publicly traded firms these values can usually be obtained from online services like finance.yahoo.

**growth_years**: Number of years after Y1 and Y2 at which earnings grow at an specified constant rate. After this period, the earnings are computed according to diminishing ROEs as the annual ROE converges to the FROE value at the end of the time horizon.<commit_msg>experimenting inside c9<commit_after># EBOlve

### EDWARDS-BELL-OHLSON aLghorithmic Value Engine (tacky, I know :)

A valuation model based on discounted residual income or abnormal earnings. Similar in nature to EVA (Economic Value Added) developed by <NAME>. Both EVA and EBO rely on the idea of "residual income", defined as earnings in excess of an expected level of performance. Developed initially in the 1930's, it provides an alternative valuation to DCF based on more readily available accounting data and earnings forecasts. Since the theoretical underpinnings are the same as the DDM (and therefore DCF), it  should give similar results to DCF as long as the clear-surplus assumption holds.

### Usage

```ruby
> irb
>> x = {:eps1=>1.24, :eps2=>1.54, :ltg=>0.241, :book_s=>5.11, :FROE=>0.2,\
        :r=>0.0960, :pYOUT=>0.16, :years=>12, :growth_years=>5}
>> y = Ebolve.new(x)
>> puts y.ebo
```

```python
> python
>>> import Ebolve
>>> x =   {'eps1':1.24, 'eps2':1.54, 'ltg':0.241, 'book_s':5.11, 'FROE':0.2,\
           'r':0.0960, 'pYOUT':0.16, 'years':20, 'growth_years':5}
>>> z = Ebolve.Ebolve(x)
>>> z.compute_ebo()
```

### Input Parameters

**eps1, eps2, ltg**: Earnings per share estimates. eps1 and eps2 are the one- and two-year forecasts, respectively. Ltg is the constant growth rate at which earnings per share as forecasted to grow from year 3 till the end of a 'growth period'. For publicly traded firms these values can usually be obtained from online services like finance.yahoo.

**growth_years**: Number of years after Y1 and Y2 at which earnings grow at an specified constant rate. After this period, the earnings are computed according to diminishing ROEs as the annual ROE converges to the FROE value at the end of the time horizon.
{'fraction_non_alphanumeric': 0.11224489795918367, 'fraction_numerical': 0.03826530612244898, 'mean_word_length': 4.420890937019969, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 63, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6552075', 'n_tokens_mistral': 1197, 'n_tokens_neox': 1076, 'n_words': 479}