website – What is actually meant by the term ‘stock browser’ in web development?

I’m a Web Developer by profession.

Today I come across the new term ‘stock browser’ which I’ve never heard before in my 10 years of web development experience.

The text around the term ‘stock browser’ is as below :

A shim differs from a polyfill, which implements a new API that is not
supported by the stock browser as shipped.

From the above statement I didn’t get at all the meaning and context of using the term ‘stock browser’.

Can someone experienced from Web Developer community explain the meaning of the term ‘stock browser’ with proper context to me?

Thank You.

Note : If you want I can provide you the link from where I got the quoted text.

website – What does actually mean by the term ‘stock browser’ in web development?

I’m a Web Developer by profession.

Today I come across the new term ‘stock browser’ which I’ve never heard before in my 10 years of web development experience.

The text around the term ‘stock browser’ is as below :

A shim differs from a polyfill, which implements a new API that is not
supported by the stock browser as shipped.

From the above statement I didn’t get at all the meaning and context of using the term ‘stock browser’.

Can someone experienced from Web Developer community explain the meaning of the term ‘stock browser’ with proper context to me?

Thank You.

Note : If you want I can provide you the link from where I got the quoted text.

Ex Stock Ltd – Exstock.io

Start 2020-10-20. PerfectMoney Not verified, 0 Trust Score point(s) (United Kingdom IPB Image), Payeer, Bitcoin, Ethereum, Litecoin

Languages: EN

IPB Image

Description:

QUOTE

EX STOCK Ltd. company was created from the passion of a group of people with similar interests, who have developed a passive income guarantee system for people who are looking for a quick way to multiply their assets. The plan developed by us allows everyone, even basic investors, to achieve a guaranteed profit. Our diversification of funds allows for rational investments in at least 14 industries in which we can invest the investor funds entrusted to us.

Investment plans:

8-10% daily forever

Our deposit:

20.10.20 09:19 Transfer Sent Payment: 150.00 USD to account U25623917 from U1294xxx. Batch: 341741042. Memo: Shopping Cart Payment. Create deposit all-hyips.info.

Details:

Minimal deposit: $10
Maximal deposit: $100000
Referral comission: 8% – 2%
Payments: Instant
Features: SSL,DDOS,Original script

Whois:

Registrar NameCheap, Inc

Dates 5 days old
Created on 2020-10-15
Expires on 2021-10-15
Updated on 2020-10-15

Name Servers
NS1.DDOS-GUARD.NET (has 5,816 domains)
NS2.DDOS-GUARD.NET (has 5,816 domains)
NS3.DDOS-GUARD.NET (has 5,816 domains)
NS4.DDOS-GUARD.NET (has 5,816 domains)
NS5.DDOS-GUARD.NET (has 5,816 domains)

SIGN UP

Ex Stock Ltd – exstock.io – HYIPs


Start 2020-10-20. PerfectMoney Not verified, 0 Trust Score point(s) (United Kingdom GB.GIF), Payeer, Bitcoin, Ethereum, Litecoin 

Languages: EN 

8877.jpg 

Description: 

EX STOCK Ltd. company was created from the passion of a group of people with similar interests, who have developed a passive income guarantee system for people who are looking for a quick way to multiply their assets. The plan developed by us allows everyone, even basic investors, to achieve a guaranteed profit. Our diversification of funds allows for rational investments in at least 14 industries in which we can invest the investor funds entrusted to us.

 

Investment plans: 


8-10% daily forever 


 

Our deposit: 

20.10.20 09:19     Transfer     Sent Payment: 150.00 USD to account U25623917 from U1294xxx. Batch: 341741042. Memo: Shopping Cart Payment. Create deposit all-hyips.info.

Details: 

Minimal deposit: $10
Maximal deposit: $100000
Referral comission: 8% – 2%
Payments: Instant 
Features: SSL,DDOS,Original script

Whois:

Registrar    NameCheap, Inc 

Dates    5 days old
Created on 2020-10-15
Expires on 2021-10-15
Updated on 2020-10-15    
  
Name Servers    
NS1.DDOS-GUARD.NET (has 5,816 domains)
NS2.DDOS-GUARD.NET (has 5,816 domains)
NS3.DDOS-GUARD.NET (has 5,816 domains)
NS4.DDOS-GUARD.NET (has 5,816 domains)
NS5.DDOS-GUARD.NET (has 5,816 domains)

SIGN UP 

Where can I find stock or custom ROMs for my Android device?

While they don’t usually host ROMs directly(exceptions include Samsung), you may find that they have software useful for upgrading stock ROMs, such as Samsung’s tool Kies. If you want to upgrade and stay stock then you should try official methods first.

Google hosts update packages for the flagship Nexus and Pixel devices at

https://android.clients.google.com/packages

You can’t browse that link directly, but web search is your friend here. Search for that link plus the code name of the device and the version you want; for example, searching android.clients.google.com/packages crespo ics results in a lot of pages with (this link)(n1) — the OTA Ice Cream Sandwich update for the T-Mobile Nexus S. Links for various “factory images” for Nexus devices can be found here.

Probably the first place you should look after trying the official route is the XDA Developers’ forums. Stock ROMs are usually posted in the General sub-forum for your device, and custom ROMs in the Android Development sub-forum for your device. No guarantees.

They don’t have dedicated subforums for all devices, so if you have a less-popular device you should use the site search instead of the subforum search.

You may or may not want to check RootzWiki before XDA Forums above. Developers tend to move from forum to forum and RootzWiki provides devices for the best developers so a lot have jumped on board.

They have sections for many devices and for those that don’t there is a General section. The forums tend to be divided into 3 sections per device (not always): General, Development (ROMS and such) and Themes.

Many developers publish their custom ROMs in ROM Manager and even provide OTA-style updates through it. Naturally, these ROMs can be easily flashed through ROM Manager / ClockWorkMod Recovery as well.

This site often has ROMs for more obscure devices, as well as the popular ones.

This site provides a long list (about 800 pages) for all kind of devices, including Android, Blackberry, Symbian, and more. It misses a filtering mechanism, unfortunately…

Grouped by vendor, then device. Seems to be quite up-to-date and quite complete — for sure one of the best resources.

Similar to Android Forums.

This site posts stock Samsung ROMs from all over. It does require you to sign up.

When in doubt, do a web search. Make use of quotes (e.g., "vibrant" "stock 2.2.1") in order to narrow the results and find what you need.

A collection of shipped ROMs. Contains ROMs for 40-odd devices.

Translated from a popular Chinese ROM, MIUI is a highly customized version of Android with a large base of customization and theme options and a strong iOS aesthetic. Available for many devices and in Froyo (2.2), Gingerbread (2.3), Ice Cream Sandwich (4.0), Jelly Bean (4.3) options.

Android Open Kang Project (AOKP) is just like Cyanogen Mod (CM) a Android Open Source Project (AOSP) based ROM. AOKP focuses on providing extensible settings with the disadvantage that less devices are supported in comparison with CM.

If you have a Samsung device and you want to unleash the potential of your device then this is the place to go for information, tutorials, files, firmware and many surprises! Many top devs in the industry and talented people frequent and maintain many useful threads on this forum based site.

Another popular Android forum, similar to XDA and RootzWiki.

Similar to CyanogenMod, OmniROM is a committed open-source project that provides ROMs for a variety of devices.

Similar to OmniROM, Replicant is a committed open-source project that provides ROMs for several devices (mostly Samsung). It is a fully free Android distribution (with a marked aversion to binary blobs), putting the emphasis on freedom and privacy/security.

Lineage OS is the successor to CyanogenMod(in the sense that the numbering scheme matches only). It allows for customization of the buttons at the bottom of the screen and for root access.

Flashtool provides inbuilt tool – “XperiaFirm” that lets you download the stock firmware for Xperia devices. Using flashtool you can even install the downloaded firmware onto your Xperia device.

Is it possible to completely modify a stock ROM, so that the phone company and system apps can’t track me?

I bought a device with a Chinese ROM. Now a while ago just shifted to the global ROM of that device.
Now what I want to do is –

  1. I want to modify the whole ROM, so that the ROM owner/the phone company can’t track me and can’t get any data or anything out of my phone.

  2. Apart from the phone company I also don’t want other system apps like google and others to track me. So either I want to remove them, or want to remove their data collection capability.

  3. To be more specific – I actually want to modify or build my own ROM – that won’t track me, collect any data and I’ll be able to limit the data collection policy of whatever app I install.

If my whole expectation can come true then that’s fantastic but if a portion of what I want is possible still that’s great. So help me out.
And thanks in Advance.

❕NEWS – Zimbabwe may start listing crypto on their stock exchange | Proxies-free

In any interesting development, there are news reports indicating that Zimbabwe may start to list the prices of crypto on their stock market. This is of course dependent on and subject to a regulatory approval, but the thought process and consideration is definitely there in Zimbabwe.

This is quite a big change in position to cryptocurrency, as in 2018 Zimbabwe, and in specific the country’s central bank, was completely opposed to the idea of crypto and wanted to stay as far away from it as possible. However this now shows a very different stance on crypto, with the mindset changing in the late months of 2019.

Could this be a solution to the possible economic problems that Zimbabwe has experienced in the past?

This in my opinion truly shows the reach of the cryptocurrencies and how mainstream it is becoming.

 

beginner – Stock analysis tool using Python

Stock analysis takes a lot of time to filter and find the right one for a long-term investment. So I thought I could speed up the process by calculating a few basic values and write them all into one report file. Now I’d like to simplify everything as I’m sure there are a lot of redundant and repeating parts in it.
Also I couldn’t get the formatting of the numbers done in the report file (e.g. 10.000 instead of 10000), using the solutions provided here, here and everything else that showed up by looking for “python format thousands separator” but with no luck it gets saved as the normal float in the report.

My code:

#!/usr/bin/python3

from time import strftime
import locale

print("-------------------------")
print("    Stock analysis     ")
print("-------------------------")

# Declare base variables
locale.setlocale(locale.LC_ALL, '')
date = strftime("%Y-%m-%d")
time = strftime(" %H:%M:%S")
partners = "none"
trends = "none"
assets_increase = "y"
liabilities_increase = "n"
receivable_increase = "y"
income_increase = "y"
age = "y"
forecast = "y"
commodity_reliance = "y"

# Start the dialogue
print("Let's start with some basic valuess...")
print("You can get the required information using Onvista or Yahoo Finance")
print("nnPlease note: This program uses the american number writing style. If you want to write decimal numbers, "
      "please use a point instead of a comma to separate the digits (e.g. 1.1 instead of 1,1).nn")

name = input("Name of the company: ")
file = open("%s-report.txt" % name, "a")
wkn = input("WKN: ")
symbol = input("Symbol: ")
isin = input("ISIN: ")
sector = input("Sector: ")

# Check initial numbers
while True:
    try:
        current_price = float(input("Current price: "))


        eps = locale.format_string("%d", float(input("EPS: ")), grouping=True)
        pe = float(input("PE: "))
        market_cap = float(input("Market capitalization: "))
        break
    except ValueError:
        print("please enter only numbers without comma and use . for decimals (e.g. 5.55 instead of 5,55")
        continue


# Check next variables with fail-safe so the program doesn't crash when the user enters wrong values
def check_partners_trends():
    # Check Partners
    global partners, trends

    while True:

        partner_check = input("Does it have big partners? (y/n): ")

        if not partner_check.isalpha():
            print("Please only enter y or n")
            continue

        if partner_check == "y":
            partners = input("Who? ")
            break
        elif partner_check == "n":
            partners = "none"
            break
        else:
            print("Please only enter y or n")
            continue

    # Check Trend
    while True:

        trend_check = input("Is it participating in any current trends? (y/n): ")

        if not trend_check.isalpha():
            print("Please only enter y or n")
            continue

        if trend_check == "y":
            trends = input("Which? ")
            break
        elif trend_check == "n":
            trends = "none"
            break
        else:
            print("Please only enter y or n")
            continue

    return partners, trends


check_partners_trends()

# Write to the report file

file.write("Report for company: " + name)
file.write("nWKN: %stSymbol: %snISIN: %stSector: %s" % (wkn, symbol, isin, sector))
file.write("nnEvaluated: %snAt: %snnn" % (date, time))  # first n for new line, second n for one blank line
file.write(name + " is currently trading at: " + str(current_price) + "€/$")
file.write("nEPS: %snP/E: %s  n  --> The higher the betternMarket capitalization: %s" % (eps, pe, market_cap))
file.write("nIt has the following partners: %snAnd is participating in the trend: %s" % (partners, trends))

print("n__________")
print("Income Statement Analysis")
print("__________n")

# Check income numbers
while True:
    try:
        total_revenue = float(input("Total Revenue: "))
        gross_profit = float(input("Gross profit: "))
        operating_expenses = float(input("Operating expenses: "))
        cost_of_revenue = float(input("Cost of revenue: "))
        net_income = float(input("Net income: "))
        ebit = float(input("EBIT: "))
        ebitda = float(input("EBITDA: "))
        break
    except ValueError:
        print("please enter only numbers without comma and use . for decimals (e.g. 5.55 instead of 5,55")
        continue

income_red_flags = 0

### Start writing to the report ###
file.write("nnn_____________nnIncome Statement Analysisn_____________n")
file.write(
    "nTotal revenue: %snGross profit: %snOperating expenses: %snNet income: %snCost of revenue: %snEBIT: %sn    --> analyzes the performance of core operationsnEBITDA: %sn    --> earnings before interest, taxes, depreciation and amortization --> analyzes performance and projects earnings potential" % (
        total_revenue, gross_profit, operating_expenses, net_income, cost_of_revenue, ebit, ebitda))


def analyze_income():
    """Analyze some of the given values and write them to the report"""

    global income_red_flags, gross_profit, total_revenue, operating_expenses, cost_of_revenue

    gross_margin = gross_profit / total_revenue
    operating_income = gross_profit - operating_expenses

    file.write("nn Analyzing income...n")
    file.write(
        "nGross margin: {}n   --> Portion of each dollar of revenue that the company retains as profit (35% = 0,35 cent/dollar)n".format(
            gross_margin))

    if operating_income < 0:
        income_red_flags += 1
        file.write(
            "n(!) Operating expenses are negative: %sn    --> Company is generating a loss." % operating_income)
    # company is generating loss

    if operating_expenses > total_revenue:
        income_red_flags += 1
        file.write(
            "n(!) Operating expenses are higher than the revenue --> The company is spending more money than it is receiving.")
    # company is spending more than it's receiving

    if cost_of_revenue > gross_profit:
        income_red_flags += 1
        file.write("n(!) Cost of revenue is higher than gross profits --> The product costs more than it pays.")
    # the product costs more than it gives you

    file.write("n(!) Income red flags: %s" % income_red_flags)

    return gross_margin, operating_income, income_red_flags


analyze_income()

print("n__________")
print("Balance Sheet Analysis")
print("__________n")

# Check Balance numbers
while True:
    try:
        # Can be liquidated within 1 year
        total_assets = float(input("Total assets: "))
        current_assets = float(input("Current Assets: "))
        cash = float(input("Cash and cash equivalents: "))
        inventory = float(input("Inventory: "))

        # Total non-current assets -> can't be liquidated within 1 year
        net_ppe = float(input("Net PPE: "))

        # Check how that property is divided
        depreciation = float(input("Depreciation: "))
        intangible_assets = float(input("Intangible Assets: "))

        # Liabilities
        total_liabilities = float(input("Total Liabilities: "))
        current_liabilities = float(input("Current Liabilities: "))

        # total non current liabilities
        long_term_debt = float(input("Long term debt: "))

        stockholders_equity = float(input("Stockholders' Equity: "))
        total_debt = float(input("Total Debt: "))
        break
    except ValueError:
        print("please enter only numbers without comma and use . for decimals (e.g. 5.55 instead of 5,55")
        continue


# Check asset increase
def check_assets_liabilities_receivables():
    global assets_increase, liabilities_increase, receivable_increase

    # Check assets
    while True:

        assets_increase_check = input("Have the total assets increased year over year? (y/n): ")

        if not assets_increase_check.isalpha():
            print("Please only enter y or n")
            continue

        if assets_increase_check == "y":
            assets_increase = "y"
            break

        elif assets_increase_check == "n":
            assets_increase = "n"
            break
        else:
            print("Please only enter y or n")
            continue

    # Check liabilities
    while True:
        liabilities_increase_check = input("Have the total liabilities decreased year over year? (y/n): ")

        if not liabilities_increase_check.isalpha():
            print("Please only enter y or n")
            continue

        if liabilities_increase_check == "y":
            liabilities_increase = "y"
            break
        elif liabilities_increase_check == "n":
            liabilities_increase = "n"
            break
        else:
            print("Please only enter y or n")
            continue

    # Check receivables
    while True:

        receivable_increase_check = input("Are the receivables increasing year over year? (y/n): ")

        if not receivable_increase_check.isalpha():
            print("Please only enter y or n")
            continue

        if receivable_increase_check == "y":
            receivable_increase = "y"
            break
        elif receivable_increase_check == "n":
            receivable_increase = "n"
            break
        else:
            print("Please only enter y or n")
            continue

    return assets_increase, liabilities_increase, receivable_increase


check_assets_liabilities_receivables()

balance_red_flags = 0

### Start writing to the report ###

file.write("nnn_____________nnBalance Sheet Analysisn_____________n")

# Liquidatable assets
file.write("nn--- Assets that can be liquidated within 1 year ---n")
file.write("nTotal assets: %snCurrent assets: %s" % (total_assets, current_assets))
if receivable_increase == "y":
    file.write("nReceivables are increasing each year")
else:
    file.write("nReceivables are _not_ increasing each year")
file.write("nCash and cash equivalents: %snInventory value: %s" % (cash, inventory))

# Non-liquidatable assets
file.write("nn--- Non-current assets which can't be liquidated within 1 year ---n")
file.write(
    "nNet PPE (property, plant and equipment): %sn    --> These are long term assets important for business operations.nDepreciation: %s" % (
        net_ppe, depreciation))
file.write("nIntangible Assets: %s  --> Brand recognition, brand names, etc. How well the company is known.")

# Liabilities
file.write("nn--- Liabilities ---n")
file.write("nTotal Liabilities: %snCurrent Liabilities: %snLong term debt: %sn(!) Stockholders Equity: %s" % (
    total_liabilities, current_liabilities, long_term_debt, stockholders_equity))
file.write("nTotal debt: %s" % total_debt)


def analyze_balance():
    """Analyze the Balance sheet and write the results to the report"""

    global balance_red_flags, assets_increase, liabilities_increase, stockholders_equity

    file.write("nnAnalyzing balance...n")

    if assets_increase == "n":
        balance_red_flags += 1
        file.write("n(!) Assets are _not_ increasing.")

    if liabilities_increase == "y":
        balance_red_flags += 1
        file.write("n(!) Liabilities are increasing -> more debt is being accumulated.")

    if stockholders_equity < 0:
        balance_red_flags += 1
        file.write("n(!) Stockholders equity negative. Liabilities are growing faster than assets.")

    file.write("n(!) Balance red flags: %s" % balance_red_flags)

    return balance_red_flags


analyze_balance()

print("n__________")
print("Cash Flow Analysis")
print("__________n")

# Check balance numbers
while True:
    try:
        operating_cash_flow = float(input("Operating Cash Flow: "))
        investing_cash_flow = float(input("Investing Cash Flow: "))
        financing_cash_flow = float(input("Financing Cash Flow: "))
        stock_compensation = float(input("Stock based compensation: "))
        break
    except ValueError:
        print("please enter only numbers without comma and use . for decimals (e.g. 5.55 instead of 5,55")
        continue


# Check income increase
def check_income():
    global income_increase

    while True:
        income_increase_check = input("Is the company's net income increasing year over year? (y/n): ")

        if not income_increase_check.isalpha():
            print("Please only enter y or n")
            continue

        if income_increase_check == "y":
            income_increase = "y"
            break
        elif income_increase_check == "n":
            income_increase = "n"
            break
        else:
            print("Please only enter y or n")
            continue

    return income_increase


check_income()
cash_red_flags = 0

### Start writing the report ###

file.write("nnn_____________nnCash Flow Analysisn_____________n")
file.write(
    "nOperating cash flow: %snInvesting cash flow: %snFinancing cash flow: %snStock based compensation: %s" % (
        operating_cash_flow, investing_cash_flow, financing_cash_flow, stock_compensation))


def analyze_cash():
    global cash_red_flags, current_assets, current_liabilities, operating_cash_flow, investing_cash_flow, financing_cash_flow, income_increase, operating_cash_flow

    file.write("nnAnalyzing Cashflow...n")

    working_capital = current_assets - current_liabilities
    net_change_cash = operating_cash_flow - investing_cash_flow - financing_cash_flow
    if income_increase == "n":
        cash_red_flags += 1
        file.write("n(!) Income is not increasing each year -> take a look at the company's files to figure out why.")

    if working_capital < 0:
        cash_red_flags += 1
        file.write(
            "n(!) Working capital negative: %snt--> Company took on more debt or sold something to generate more money" % working_capital)

    if net_change_cash < 0:
        cash_red_flags += 1
        file.write("n(!) Negative Net cash: %snt--> Find out why and if it was warranted" % net_change_cash)

    if operating_cash_flow < 0:
        cash_red_flags += 1
        file.write(
            "nCash flow from financing activities is negative: %snt--> Why? Where's the company's money coming from if they're not producing income?" % operating_cash_flow)

    return cash_red_flags, working_capital, net_change_cash


analyze_cash()

print("n__________")
print("Intrinsic value analysis")
print("__________n")


def check_age_forecast_commodity():
    global age, forecast, commodity_reliance

    # Check age
    while True:
        age_check = input("Is the company older than 10 years? (y/n): ")

        if not age_check.isalpha():
            print("Please only enter y or n")
            continue

        if age_check == "y":
            age = "y"
            break
        elif age_check == "n":
            age = "n"
            break
        else:
            print("Please only enter y or n")
            continue

    # Check forecast
    while True:
        forecast_check = input("Do you still see it around in 10 years? (y/n): ")

        if not forecast_check.isalpha():
            print("Please only enter y or n")
            continue

        if forecast_check == "y":
            forecast = "y"
            break
        elif forecast_check == "n":
            forecast = "n"
            break
        else:
            print("Please only enter y or n")
            continue

    # Check commodity reliance
    while True:
        commodity_check = input("Is the company distinguishable from others? (y/n): ")

        if not commodity_check.isalpha():
            print("Please only enter y or n")
            continue

        if commodity_check == "y":
            commodity_reliance = "y"
            break
        elif commodity_check == "n":
            commodity_reliance = "n"
            break
        else:
            print("Please only enter y or n")
            continue

    return age, forecast, commodity_reliance


check_age_forecast_commodity()

intrinsic_score = 0


def intrinsic_value():
    global total_assets, total_liabilities, total_debt, current_price, net_income, stockholders_equity, income_red_flags, balance_red_flags, cash_red_flags, ebit, current_price, intrinsic_score

    file.write(
        "nnn________________________________________nnIntrinsic value analysisnn________________________________________")

    book_value = total_assets - total_liabilities
    pbv = current_price / book_value
    # should be < 1,5
    roe = net_income / stockholders_equity
    # should be > 10%
    debt_to_equity_ratio = total_liabilities / stockholders_equity
    # should be as low as possible
    rcoe = ebit / (total_assets - current_liabilities)
    # Amount of profit a company is generating per 1$ employed -> good for peer comparison
    rcoe_to_price = rcoe * current_price
    # One share generates this much money

    total_red_flags = income_red_flags + balance_red_flags + cash_red_flags

    # Write to the report
    file.write(
        "nBook value: %s  --> Should be > 1. If the business wnet out of business now, how many times could it pay off all its debt.nPrice to book value (P/BV): %s  --> Should be > 1.5.")
    file.write(
        "nDebt to equity ratio: %sn   --> How much the company is financing its operations through debt." % debt_to_equity_ratio)
    file.write(
        "nReturn on Equity (ROE): {}n    --> Should be > 10%. How effectively the management is using a company's assets to create profits.".format(
            roe))
    file.write(
        "nReturn on capital employed (RCOE): %sn    --> Amount of profit a company is generating per 1$ employed -> good for peer comparison." % rcoe)
    file.write(
        "nRCOE in comparison to current price: %sn    --> Amount of money the company is generating per one share." % rcoe_to_price)

    # Calculate Score
    if age == "y" or "Y": intrinsic_score += 1
    if forecast == "y" or "Y": intrinsic_score += 1
    if commodity_reliance == "y" or "Y": intrinsic_score += 1
    if book_value > 0: intrinsic_score += 1
    if pbv < 1.5: intrinsic_score += 1
    if roe > 0.1: intrinsic_score += 1
    if debt_to_equity_ratio < 1: intrinsic_score += 1

    if total_red_flags < 1: intrinsic_score += 1

    file.write(
        "nn_________________________________nFINAL INTRINSIC VALUEn_________________________________nnIntrinsic value score: %s/8" % intrinsic_score)

    return book_value, pbv, roe, debt_to_equity_ratio, rcoe, total_red_flags, intrinsic_score


intrinsic_value()

print("Done.")
print("The intrinsic value score is: " + intrinsic_score + "/8")
print(
    "A report has been generated. Please check the same directory this program is located innThank you for using the Stock analysis tool.")
file.close()

In a next step, I’d like to automate the process even further, so it gets the numbers from a provided webpage so you don’t have to enter them all manually.

Thank you for taking the time to read until here 🙂