
    ɢi:                        d dl Z d dlZd dlZ ej                  e      Zdddddddd	d
dddddddddddddddddddddddddddd dd!d"ddddd#d$d%dd&d'dddddd	d$d(d)dd*d+dd,d'dd!dd-d-d.dd/Zi d0d1d2d(d3d'd4d5d6d#d7d8d9d'd:d+d;d-d<dd=dd>dd?dd@d-dAd-dBd$dCd$dDd'iZdE ZdFe	dGe
fdHZdIe	dGe	fdJZdKe
dLe
dGe
fdMZdNe
dKe
dGefdOZdFe	dPe
dGe
fdQZy)R    NAffiliate / Referralg           i  333333?   d   <   gffffff?      ?u   Earn commissions referring visitors to partner products. Near-zero fulfillment — you never touch product, handle returns, or manage inventory.)labelfulfillment_cost_pctstartup_cost_lowstartup_cost_high
margin_pctmonthly_overhead_lowmonthly_overhead_hightime_to_first_dollar_daysscalabilityrisk_factordescriptionDigital Products / InfogQ?    g?      -   gq=
ףp?g?u   Sell courses, templates, ebooks, tools, or SaaS subscriptions. Fulfillment is automated — once built, each sale costs virtually nothing to deliver.SaaS / Subscription皙?iP        ?x   gffffff?u   Recurring subscription revenue. Fulfillment means server costs and support — scales well but needs ongoing development and customer success.E-commerce (Dropship)i  i@  333333?g?zSell physical products without holding inventory. Supplier ships direct, but you handle customer service, returns, and quality control. Margins are tight.E-commerce (Own Inventory)      ?g?u   Buy, store, pack, and ship physical products yourself. Highest fulfillment burden — warehousing, shipping labels, returns, damaged goods, and inventory risk.Service Business?i'  333333?u   Trade time for money — consulting, freelancing, agency work. Fulfillment is your labor or hiring others. Hard to scale without hiring.)	affiliatedigitalsaasecommerce_dropshipecommerce_inventoryservices.com      ?z.netz.orgz.ioffffff?z.coz.aig?z.appz.devz.bizz.usz.infoz.xyzz.onlinez.storez.shopz.techz.mez.tvc                 B   | syt        |       j                  dd      j                  dd      j                         } t        j                  d|       }t        |      dk\  rt        |d         t        |d         fS t        |      dk(  rt        |d         }||d	z  fS y)
N)r   i N  , $z(\d+)   r         )strreplacestriprefindalllenint)band_strmatchvs      4/sites/domain-asset-master/app/services/valuation.py_parse_valuation_bandrA   n   s    8}$$S"-55c2>DDFHJJx*E
5zQ58}c%(m++	UqaM!a%x    domainreturnc                 8   | j                  dd      }|r|d   n| }t        |      dkD  rd|d   z   nd}t        |j                  dd            }t        j	                  |d      }|dk  rd	}n"|d
k  rd}n|dk  rd}n|dk  rd}n
|dk  rd}nd}d|v }|rdnd	}t        d |D              }	|	rdnd	}
| xr
 |	 xr |dk  }|rdnd	}||z  |z  |
z  |z  }t        d	|      }d}d}|||z
  |dz  z  z   }| ||||t        |d      ||	t        |d      t        |      d
S )N.r4   r   r,   -r1   r	   r5   r-      r      g?   r$      r%   g333333?r    c              3   <   K   | ]  }|j                           y w)N)isdigit).0cs     r@   	<genexpr>z*_domain_intrinsic_score.<locals>.<genexpr>   s     0aaiik0s   r   
   ?r   iI g      ?r3   )
domain_name	name_parttldlengthtld_multiplierlength_scorehas_hyphenshas_numbers	raw_scoredomain_only_value)rsplitr;   r7   TLD_MULTIPLIERSgetanyminround)rC   partsnamerU   rV   tld_multrX   rY   hyphen_penaltyrZ   number_penaltyis_dictionary_likedictionary_bonusr[   
base_floorbase_ceilingr\   s                    r@   _domain_intrinsic_scorerl   {   sv   MM#q!E58&DJN#a.Cc2&'F""3-H{	1	1	2	2+K'SSN0400K(TcN(M_M20scx'.8>IL\\IC#IJL"lZ&?IQTDT%UU "lA.""9a("#45 rB   monetization_strc                     | sy| j                         }d|v sd|v ryd|v sd|v sd|v ryd|v sd|v sd|v sd	|v sd
|v sd|v ryd|v sd|v sd|v sd|v ryd|v sd|v sd|v sd|v ryy)Nr&   r(   subscriptionreferral
commissionr'   infocourseebooktemplateproductz
e-commerce	ecommerceshopstorer)   serviceconsultagency	freelancer+   )lower)rm   ms     r@   _classify_monetizationr      s     A{n)a:?la.?A~1AAWX\eij\jqK1,!w!|#A~a8q=K1<LrB   
niche_datadomain_scorec           	         t        | j                  dd            }t        j                  d|      D cg c]#  }|j	                         s|j	                         % }}t        dt        |            }| j                  dg       }t        |t              rt        |      nd}| j                  dd      }|d	k(  rd
}	n
|dk(  rd}	nd}	|d   }
|d   }d}t        dd|dz
  dz  z         }t        dd|dz  z         }||z  |	z  |
z  |z  dz  }||z  |z  |	z  |
z  |z  dz  }t        dt        |            }t        |dz  t        |            }|||	||t        ||z   dz        dS c c}w )Ntarget_audiencer1   z[,;&]r4   affiliate_programsr   time_to_revenuemediumfastrR   slowr.   r-   rW   rX   i   g      @r	   g       @r   r    g      @r   r3   )audience_segmentsaffiliate_countmarket_heatmonthly_visitors_lowmonthly_visitors_highmonthly_visitors_mid)r6   r_   r9   splitr8   maxr;   
isinstancelistra   rb   )r   r   audiencesr   num_segments
affiliatesnum_affiliatestime_to_revr   	tld_trustlength_factorbase_monthly_visitorssegment_multaffiliate_multmonthly_lowmonthly_highs                    r@   _estimate_monthly_trafficr      s   :>>"3R89H,.HHXx,HVqAGGIVVq#/01L 4b9J(2:t(DS_!N..!2H=Kf		-.I 0MsC<!#3t";;<LcNS$889N',6DyPS``cffK(<7.H;VYbberruxxLc5-.K{Ql(;<L *)" +!- %{\'AQ&F G 9 Ws   E#
E#trafficc                 4   g }t        |j                  dd            }|j                  dd      }ddg}|dk(  r|j                  d       |r|j                  d       n|d	v r|j                  d
       ||vr|j                  |       | d   }| d   }|D ]  }t        |   }	||k(  }
|dk(  r
d}d}||z  }nY|dk(  r
d}d}||z  }nJ|dk(  r
d}d}||z  }n;|d
k(  rd}d}||z  |	d   z  }n&|dk(  rd}d}||z  |	d   z  }n|dk(  r
d}d}||z  }nd}||z  }||z  }||	d   z  }||	d   z  }||z
  |	d   z
  }||z
  |	d   z
  }||z   dz  }||z   dz  }t	        |t        d|      z  d z        }|d!z  }|d!z  }|d"v rd#}n|dk(  rd$}n	|d	v rd%}nd&}t	        t        d'|      d!z  |z        }t	        t        d'|      d!z  |z        }|j                  ||	d(   |
|	d)   t	        |	d   d z        |	d*   |	d+   d,|	d-   t	        |	d.   d/z  d      t	        |	d0   d/z  d      t	        |      t	        |      t	        |      t	        |      |	d   |	d   t	        |      t	        |      |d1	t	        |      t	        |      d,||d,| d2d3        |j                  d4 5       |S )6Nmonetization_modelr1   requires_inventoryFr&   r'   r(   r*   )r)   r*   r)   r   r   g{Gz?   gQ?/   gMb?   A   r   g?K   r+   g{Gzt?r   r"   r   r   r   r3   r4   r   rJ   )r&   r'   $   0         r   r
   r   r   r   lowhighr   r   rQ   r   )		gross_low
gross_highfulfillment_cost_lowfulfillment_cost_highoverhead_lowoverhead_highnet_profit_lownet_profit_highprofit_margin_pctzx monthly net)	model_keyr
   is_primary_fitr   r   startup_costr   scalability_score
risk_scoremonthly_revenue
annual_netdeveloped_valuevaluation_multiplec                      | d    | d   d    fS )Nr   r   r    )xs    r@   <lambda>z+_compute_revenue_by_model.<locals>.<lambda>P  s#    A&6$7 7!<M:NO`:a9ab rB   )key)r   r_   appendBUSINESS_MODELSrb   r   sort) r   r   resultsprimary_modelr   models_to_evalvisitors_lowvisitors_highr   model
is_primary	conv_rateavg_commissionrevenue_per_visitor	avg_priceavg_mrr	avg_orderavg_engagementr   r   fulfillment_lowfulfillment_highnet_lownet_high	avg_grossavg_netr   annual_net_lowannual_net_highvaluation_multdeveloped_value_lowdeveloped_value_highs                                    r@   _compute_revenue_by_modelr      s   G*:>>:NPR+STM#(<eD!9-Nf%34	G	G23N*m,12L34M# S		*-/
#IN"+n"<)#II"+i"7& IG"+g"5..II"+i"7%:M"M//II"+i"7%:M"M*$I N"+n"<"& #66	"%88
#e,B&CC%.D(EEo-6L0MM 0059P3QQ+q0	X%*!'C9,="="CD 2"R-00N& NGGNN#C>$:R$?.$PQ$SO%<r%AN%RS"7^( /$)%0F*G#*M$N$)*<$=uM`Gab)./J)K!&u]';b'@!!Dm 4r 91="9-#J/(-o(>)./?)@ %&< =!&'>!?"'.#(?%6
  #("7AWX':DXY%3$4M"B/
 	wSj LLbLcNrB   analysisc                    t        |       }|j                  dg       }g }d}d}|D ]  }t        |j                  d            \  }}	t        ||      }
t	        |
|      }|r|d   nd }t        d |D        d      }t        d |D        d      }||kD  r|}||kD  r|}|j                  |j                  dd      |j                  d	d
      |j                  dd      ||	d|
||r!|r|d   nd|r|d   d   nd|r|d   d   nddnd d        dgdgdgddgdgd}| ||d   ||t        |      ||t        j                         D ci c]1  \  }}||d   t        |d   dz        t        |d    dz        |d!   d"3 c}}d#	S c c}}w )$Nnichesr   valuation_bandc              3   ,   K   | ]  }|d    d     yw)r   r   Nr   rN   r   s     r@   rP   z!valuate_domain.<locals>.<genexpr>c  s     #YQA&7$8$@#Y   )defaultc              3   ,   K   | ]  }|d    d     yw)r   r   Nr   r   s     r@   rP   z!valuate_domain.<locals>.<genexpr>d  s     !ba!$5"67H"I!br   rd   Unknownr   r1   r   Fr   r
   zN/Ar   r   r   r   )r
   net_monthly_highr   )
niche_namer   r   ai_valuation_bandtraffic_estimaterevenue_by_model
best_modelr   r   r   r   r#   r!   )zero_fulfillment	near_zeromoderateheavymaximumr\   r   r   r   r   )r
   r   r   r   )	rC   domain_intrinsicr\   best_developed_valuebest_monthly_netniches_evaluatedniche_valuationsfulfillment_guidebusiness_models)rl   r_   rA   r   r   r   r   r;   r   itemsrb   )rC   r   r   r   r   best_developed_highbest_monthly_highnicheval_lowval_highr   revenue_modelsr   niche_developed_highniche_monthly_highfulfillment_summarykr?   s                     r@   valuate_domainr  T  sa   *62L\\(B'F 1%))<L2MN+E<@27EB*8^A&d
"#Y.#Ycde !bSa!blmn"55"6 11 2))FI6"')),@""E"')),@%"H)0(!C ' .
  1;G,XbJ/@$ABS$ThiQ[
3D(Ef(Mab "&!
 	< 44/0*+)+=>01 ()*=> 3- 01,0 O^  Od  Od  Of  g  GK  GH  JKA7USTUkSlorSrMs  DI  JK  LX  JY  \_  J_  D`  qr  s@  qA   B  B  g
 
 gs   6F)mathloggingr9   	getLogger__name__loggerr   r^   rA   r6   dictrl   r   r   r   r   r  r   rB   r@   <module>r     s     				8	$ ( #! "!$%' j + $! "!$%' o ' $ " #!%%( h ) $ ! #!$%' t . $ " #!%%' y $ $" #!%%' bEOb
C
D D 
4	
 
4 
4 D D D 
4 T D t d T  T!" 
4#$ 
4%,
0C 0D 0fS S "%$ %d %t %Pjt j j$ jZ73 7$ 74 7rB   