Ë
    zWjÑ  ã                  óP   — d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZ d	d„Zd
d„Zy)a"  Warren Buffett-style quality-value scoring.

Buffett buys wonderful businesses at fair prices: durable moats (high,
stable returns on equity and margins), conservative balance sheets (low
debt), owner earnings (strong free cash flow), and a margin of safety
versus a rough intrinsic value.
é    )Úannotationsé   )Ú	StockData)ÚSignalÚStrategyResultÚcombineÚhigher_betterÚlower_betterÚverdict_fromc                ó–  — | j                  d«      }| j                  d«      }| j                  }|r	|r|dk(  s|sy| j                  d«      }|€dnt        dt        d	|«      «      }d
}d}d}|}	d}
t	        d|dz   «      D ]  }|	d|z   z  }	|
|	d|z   |z  z  z  }
Œ |	d|z   z  ||z
  z  }|
|d|z   |z  z  z  }
|
|z  }|r||z
  |z  nd}||fS )zOVery rough owner-earnings DCF. Returns (intrinsic_per_share, margin_of_safety).ÚfreeCashflowÚsharesOutstandingr   )NNÚearningsGrowthNçš™™™™™©?gš™™™™™©¿ç¸…ëQ¸¾?çš™™™™™¹?gš™™™™™™?é
   ç        é   )ÚgetÚpriceÚmaxÚminÚrange)ÚsdÚfcfÚsharesr   ÚgrowthÚgÚdiscountÚ
terminal_gÚyearsÚcashÚpvÚyrÚterminalÚintrinsic_psÚmargins                  ú9/var/www/html/finance-tool/screener/strategies/buffett.pyÚ_intrinsic_dcfr*      s  € à
�&‰&�Ó
 €CØ�V‰VÐ'Ó(€FØ�H‰H€EÙ‘f ¨!¢±5Øà�V‰VÐ$Ó%€Fà�‰¤C¨¬s°4¸Ó/@Ó$A€AØ€HØ€JØ€Eà€DØ	€BÜ�A�u˜q‘yÓ!ò *ˆØ��Q‘‰ˆØ
ˆd�a˜(‘l rÑ)Ñ)Ñ)‰ð*ð ˜˜J™Ñ'¨H°zÑ,AÑB€HØˆ(�a˜(‘l uÑ,Ñ
,Ñ,€Bà˜‘;€LÙ6Bˆl˜UÑ" lÒ2È€FØ˜ÐÐó    c                ó^  — | j                  d«      }| j                  d«      }| j                  d«      }| j                  d«      }| j                  d«      }| j                  }|r|r||z  nd }| j                  d«      }| j                  d«      }	| j                  d«      }
t        | «      \  }}t        d	|t	        |d
d«      dd«      t        d|t        |dd«      dd«      t        d|t	        |dd«      d«      t        d|t	        |d
d«      d«      t        d|t	        |dd
«      dd«      t        d|t	        |dd«      d
«      t        d|	t        |	dd «      dd!«      t        d"|
t	        |
d#d$«      d%«      t        d&|t	        |dd'«      d(d)«      g	}t        |«      }t        d*||t        |«      «      S )+NÚreturnOnEquityÚdebtToEquityÚgrossMarginsÚoperatingMarginsr   ÚrevenueGrowthÚ
trailingPEÚcurrentRatioÚROEg{®Gáz´?g      Ð?g
×£p=
Ç?zreturn on equity, moat proxyzDebt/Equityé   é–   g333333Ã?zconservative balance sheetÚGrossMargingš™™™™™É?gš™™™™™á?r   ÚOpMarginr   Ú	FCF_Yieldg{®Gáz„?zowner earningsÚ	RevGrowthr   zP/Er   é#   z
fair priceÚCurrentRatiog      ð?g       @r   ÚMarginOfSafetygš™™™™™Ù?gìQ¸…ë±?zvs DCF intrinsic valueÚBuffett)	r   Ú
market_capr*   r   r	   r
   r   r   r   )r   ÚroeÚdteÚgrossÚopr   ÚmcapÚ	fcf_yieldÚ
rev_growthÚpeÚcurrent_ratioÚ_Úmargin_of_safetyÚsignalsÚscores                  r)   ÚevaluaterM   +   s³  € Ø
�&‰&Ð!Ó
"€CØ
�&‰&�Ó
 €CØ�F‰F�>Ó"€EØ	�‰Ð"Ó	#€BØ
�&‰&�Ó
 €CØ�=‰=€DÙ!$©��t’°D€IØ—‘˜Ó(€JØ	�‰�Ó	€BØ—F‘F˜>Ó*€Mä(¨Ó,Ñ€AÐô 	ˆu�cœ=¨¨d°DÓ9¸4Ø-ó	/äˆ}˜c¤<°°R¸Ó#=¸tØ+ó	-äˆ}˜e¤]°5¸$ÀÓ%EÀtÓLÜˆz˜2œ}¨R°°tÓ<¸dÓCÜˆ{˜I¤}°YÀÀdÓ'KÈTØó	!äˆ{˜J¬°jÀ#ÀtÓ(LÈdÓSÜˆu�bœ, r¨2¨rÓ2°D¸,ÓGÜˆ~˜}¬m¸MÈ3ÐPSÓ.TÐVZÓ[ÜÐÐ!1ÜÐ-¨s°CÓ8¸$Ð@Xó	Zð€Gô �GÓ€EÜ˜) U¨G´\À%Ó5HÓIÐIr+   N)r   r   Úreturnz!tuple[float | None, float | None])r   r   rN   r   )Ú__doc__Ú
__future__r   Údatar   Úscoringr   r   r   r	   r
   r   r*   rM   © r+   r)   ú<module>rT      s'   ðñõ #å ÷3÷ 3ó ô8Jr+   