To keep track of useful gtr1 field definitions, I use a spreadsheet with 3 columns. My current list of fields is:
type group code
field BBYld BuybackYield: linear(1,1,-1,ratio(SharesQ1,SharesQ5))
field BBYld ShareholderYield: linear(1,Yield,1,BuybackYield)
field BBYld SharesQ1: pref(shraq1.s,cshoq1d.c)
field BBYld SharesQ5: pref(shraq5.s,cshoq5d.c)
field BBYld Yield: max(0,pref(ratio(dpsind.s,sprc),ratio(cdv.a,aprc)))
step BBYld SharesQ1 > 0
step BBYld SharesQ5 > 0
field Beta BETA: if(dspo>800,beta(1,159,5),1)
field Beta BETA: if(dspo>800,beta(1,38,21),1)
field Cash Cash: pref(plus(max(0,cashq1.s),max(0,stinvq1.s)),max(0,cheq1.c))
field Cash CashLessDebt: minus(Cash,Debt)
field Cash CurrentBalance: minus(pref(caq1.s,actq1.c),pref(clq1.s,lctq1.c))
field Cash Debt: pref(plus(max(0,ltdebtq1.s),max(0,stdebtq1.s)),plus(max(0,dlttq1.c),max(0,dlcq1.c)))
field Cash NetDebt: linear(1,max(0,ltdebtq1.s),1,max(0,stdebtq1.s),-1,max(0,cashq1.s),-1,max(0,stinvq1.s))
option command list:*.*
option command list:gto* list:indr.k list:rank.z list:ril.w list:tco12mq1d.s list:tcoq1.s list:sprc list:csoq1d.s
field Debt NetDebt: pref(NetDebts,NetDebtc)
field Debt NetDebtc: linear(1,max(0,dlttq1.c),1,max(0,dlcq1.c),-1,max(0,cheq1.c))
field Debt NetDebts: linear(1,max(0,ltdebtq1.s),1,max(0,stdebtq1.s),-1,max(0,cashq1.s),-1,max(0,stinvq1.s))
field EBIT EBIT: pref(linear(1,gopinc12m.s,1,if(int12m.s=null,0,int12m.s),1,if(uninc12m.s=null,0,uninc12m.s)),EBITold)
field EBIT EBITold: linear(1,gopinc12m.s,1,if(int12m.s=null,0,int12m.s))
field EBIT EBITtoEV: ratio(EBIT,EV)
field EBITDA EBITDA: pref(linear(1,gopinc12m.s,1,if(int12m.s=null,0,int12m.s),1,if(uninc12m.s=null,0,uninc12m.s),1,if(dep12m.s=null,0,dep12m.s)),EBITDAold)
field EBITDA EBITDAold: linear(1,gopinc12m.s,1,if(int12m.s=null,0,int12m.s))
field EBITDA EBITDAtoEV: ratio(EBITDA,EV)
field Fin CO: pref(tco12mq1d.s,tco12mq1d.c)
field Fin ERN: pref(epsdc12mq1d.s,epscon12mq1d.s,epsfx12mq1d.c)
field Fin EV: linear(1,product(sprc,csoq1d.s),1,max(0,prefq1.s),1,max(0,ltdebtq1.s),1,max(0,stdebtq1.s),-1,max(0,cashq1.s),-1,max(0,stinvq1.s))
field Fin FCF: pref(product(fcfps12mq1d.s,shraq1.s),product(fcfps12mq1d.c,cshprq1d.c))
field Fin FCFPS: pref(fcfps12mq1d.s,fcfps12mq1d.c)
field Fin LTD: pref(ltdebtq1.s,dlttq1.c)
field Growth COG: pref(ratio(tco12mq1d.s,tco12mq21d.s),ratio(tco12mq1d.c,tco12mq21d.c))
field Growth EG: linear(100,EGm,-1,100)
field Growth EG5ls: linear(100,Yield,1,pref(epsdcg5ls.s,epscg5f.s,EG))
field Growth EGm: pref(ratio(epsdc12mq1d.s,epsdc12mq21d.s),ratio(epscon12mq1d.s,epscon12mq21d.s),ratio(epsfx12mq1d.c,epsfx12mq21d.c))
field Growth SG: pref(ratio(sales12mq1d.s,sales12mq21d.s),ratio(sale12mq1d.c,sale12mq21d.c))
field Growth SG: pref(ratio(salesq1.s,salesq5.s),ratio(sale3mq1d.c,sale3mq5d.c))
field import lf-1lp-1h1 EY: importf(0,EY,-1)
field Ind IndGroup: pref(trbc7.s,incd.s,fincd49.a)
field Ind Sector: pref(trbc2.s,sector.s,fincd12.a)
field Ind Software: pref(if(trbc7.s=5720101!5720102!5720103,1,0),if(incd.s=1018!1036,1,0),if(fincd49.a=36,1,0))
field Liq MktCap: linear(0.000001,product(aprc,sho.a))
step Liq adv(1,63) top 50%
step Liq dspo(1) >= 252
step Liq pref(if(country.s=1,1,0),if(styp.a=12!30!31!42!72,0,1)) = 1
step Liq styp.a = 10!11!12!18!30!31!48
universe MIbase [https://gtr1.net/2013/?~MIpostsBase:h21f0.4::styp.a:et10!11!...](https://gtr1.net/2013/?~MIpostsBase:h21f0.4::styp.a:et10!11!12!18!30!31!48:dspo%281%29al253:adv%281,63%29gt0:adv%281,63%29tp50)
field Mo Toast: plus(trp(1,63),trp(1,126),trp(1,252))
step Mo PH52c: ratio(gprc(1),hgprc(1,252))
step Mo PH52cLagged: ratio(gprc(3),hgprc(3,252))
step Mo PH52i: ratio(gprc(1),ghigh(1,252))
field Mult PB: pref(ratio(product(sprc,shraq1.s),equityq1.s),ratio(product(cshprq1d.c,cprc),ceqq1.c))
field Mult PCF: pref(ratio(sprc,cfps12mq1d.s),ratio(cprc,cfps12mq1d.c))
field Mult PE: pref(ratio(sprc,epsdc12mq1d.s),ratio(sprc,epscon12mq1d.s),ratio(cprc,epsfx12mq1d.c))
field Mult PFCF: pref(ratio(sprc,fcfps12mq1d.s),ratio(cprc,fcfps12mq1d.c))
field Mult PS: pref(ratio(product(sprc,shraq1.s),sales12m.s),ratio(product(cprc,cshoq1d.c),sale12mq1d.c))
step Mult PE3y: pref(peaeps3y.s,ratio(cprc,linear(0.34,epsfx12mq1d.c,0.33,epsfx12mq5d.c,0.33,epsfx12mq9d.c)))
field Oper RD: pref(rd12m.s,linear(1,xrdq1.c,1,xrdq2.c,1,xrdq3.c,1,xrdq4.c)) DOES NOT WORK
field Owner PIH: pref(shrinst.s,adv(1,63))
field payout EPS: pref(epsdc12mq1d.s,epscon12mq1d.s,epsfx12mq1d.c)
field payout Payout: pref(ratio(dps12mq1d.s,epsdc12mq1d.s),ratio(dps12mq1d.s,epscon12mq1d.s),ratio(dvpsp12mq1d.c,epsfx12mq1d.c))
step payout EPS > 0
field Pct pctMktCap: pcntla(MktCap,1,step6)
field Pct pctMktCap: rank(MktCap,IndGroup,step6)
field Pct ToastInd: tpcut(Toast,IndGroup,step5,50)
field Ratio Assets: pref(assetsq1.s,atq1.c)
field Ratio AssetTO: pref(ratio(sales12mq1d.s,assetsq1.s),ratio(sale12mq1d.c,atq1.c))
field Ratio OperMargin: pref(ratio(gopinc12m.s,sales12m.s),ratio(product(cshprq1d.c,oeps12q1.c),sale12mq1d.c))
field Ratio ROA: pref(ratio(netinc12mq1d.s,assetsq1.s),ratio(ni12mq1d.c,atq1.c))
field rgeary Q1End: pref(if(salesq1.s=null,0,perendq1.s),if(saleq1.c=null,0,ordq1.c))
step rgeary linear(1,Q1End,-252,1,1,dsio(1),-1,ord(1)) >= 0
step rgeary minus(ord(1),Q1End) <= 252
step rgeary Q1End > 0
step rgeary styp.a != 14!15!16!17!23!44!45!73!74!75
field ROE Equity: pref(equityq1.s,ceqq1.c)
field ROE NetInc: pref(netinc12mq1d.s,ni12mq1d.c)
field ROE ROE: if(Equity>0,ratio(NetInc,Equity),NetInc)
step ROE Equity > 0
field SGPS SalesGrowth1: ratio(SalesY1,SalesY2)
field SGPS SalesGrowth5: ratio(SalesY1,SalesY6)
field SGPS SalesPerShareGrowth1: ratio(SalesGrowth1,SharesGrowth1)
field SGPS SalesPerShareGrowth5: ratio(SalesGrowth5,SharesGrowth5)
field SGPS SalesY1: pref(salesy1.s,sale12mq1d.c)
field SGPS SalesY2: pref(salesy2.s,sale12mq5d.c)
field SGPS SalesY6: pref(salesy6.s,sale12mq21d.c)
field SGPS SharesGrowth1: ratio(SharesY1,SharesY2)
field SGPS SharesGrowth5: ratio(SharesY1,SharesY6)
field SGPS SharesY1: pref(shray1.s,cshoq1d.c)
field SGPS SharesY2: pref(shray2.s,cshoq5d.c)
field SGPS SharesY6: pref(shray6.s,cshoq21d.c)
step SGPS SalesPerShareGrowth1 > 1.05
step SGPS SalesPerShareGrowth5 > 1.25
step SGPS SalesY1 > 0
step SGPS SalesY2 > 0
step SGPS SalesY6 > 0
step SGPS SharesY1 > 0
step SGPS SharesY2 > 0
step SGPS SharesY6 > 0
universe VL [http://gtr1.net/2013/?~VL:f0.4::styp.a:et0!10!11!12!18!30!31...](http://gtr1.net/2013/?~VL:f0.4::styp.a:et0!10!11!12!18!30!31!48:dspo%281%29al1265:MktCap:tn1700:MktCap:product%28aprc,sho.a%29)
field volume VolRat: ratio(agv(1,10),agv(1,63))
field volume VolRat: ratio(agv(1,10),agv(1,63))
field volume Voom: product(VolRat,trp(1,126))
field volume Voomd: ratio(Voom,adv(1,63))
field volume Voomp: ratio(Voom,aprc))
field volume Vorp: ratio(VolRat,aprc)
field volume Vvvvv: product(VolRat,trp(1,20))
field Yield BP: pref(ratio(equityq1.s,product(sprc,shraq1.s)),ratio(ceqq1.c,product(cshprq1d.c,cprc)))
field Yield CFP: pref(ratio(cfps12mq1d.s,sprc),ratio(cfps12mq1d.c,cprc))
field Yield COP: pref(ratio(tco12mq1d.s,product(sprc,csoq1d.s)),ratio(tco12mq1d.c,product(cprc,cshoq1d.c)))
field Yield Div: pref(dpsind.s,cdv.a)
field Yield EY: pref(ratio(epsdc12mq1d.s,sprc),ratio(epscon12mq1d.s,sprc),ratio(epsfx12mq1d.c,cprc))
field Yield EY2: pref(ratio(epsdc12mq5d.s,sprc),ratio(epscon12mq5d.s,sprc),ratio(epsfx12mq5d.c,cprc))
field Yield EY3: pref(ratio(epsdc12mq9d.s,sprc),ratio(epscon12mq9d.s,sprc),ratio(epsfx12mq9d.c,cprc))
field Yield EY3y: linear(0.34,EY,0.33,EY2,0.33,EY3)
field Yield EYEG: if(EG>0,product(EY,EG5ls),-999999)
field Yield FCFP: pref(ratio(fcfps12mq1d.s,sprc),ratio(fcfps12mq1d.c,cprc))
field Yield OperYield: pref(ratio(gopinc12m.s,product(sprc,csoq1d.s)),ratio(oeps12q1.c,cprc))
field Yield SP: pref(ratio(sales12mq1d.s,product(shraq1.s,sprc)),ratio(sale12mq1d.c,product(cshprq1d.c,cprc)))
field Yield TotalDiv: pref(product(dpsind.s,csoq1d.s),product(cdv.a,cso.a))
field Yield Yield: max(0,pref(ratio(dpsind.s,sprc),ratio(cdv.a,aprc)))
step Yield CurrentEY: pref(ratio(cepsd.s,sprc),ratio(epsfx12mq1d.c,cprc))