Publication Submission Response Times

Poetry submission is like ice-skating in a competition on a rink with which you're only vaguely familiar. You never know who the other competitors are until it's too late, and you find out your scores four months after the event. The actual judging criteria are never disclosed. - Whimsy

The table below contains the average time for publications to respond.  These data are compiled from information provided by contributors and represents hundreds of submissions over a couple of years.

All data are in number of weeks.    The "Still Out" ones are the number of weeks since a submission was sent.  It may be assumed that the submissions coded "Never Responded" were out on the order of a year before the poet decided that a response was never forthcoming.

An analysis of the data has shown that some of the larger average response times are skewed by slow response in the summer months -- even when a publication indicates that it accepts in summer.

Publications that are associated with large-ish "Count" values are expected to be more reliable measures of actual response time, though you can expect your mileage to vary.  

An entry such as 15.5 (3) means that the average response time for that category was 15.5 weeks, based upon a sample of 3 submissions.

The average response times are color-coded as follows:

Green Average response was 4 weeks or less
Blue Average response was 8 weeks or less
Black Average response was 16 weeks or less
Red Average response more than 16 weeks


 

 

<%@ Language="VBScript"%> <% '---------------------------------------------------- 'Turn on page buffering Response.Buffer = True ' Set up Constants Const ForWriting = 2 ' Input OutPut mode Const ForAppending = 8 ' Input OutPut mode Const Create = True Dim MyFile Dim FSO ' FileSystemObject Dim TSO ' TextStreamObject ' Use MapPath function to get the Physical Path of file MyFile = Server.MapPath("RptSubTimesLog.txt") Set FSO = Server.CreateObject("Scripting.FileSystemObject") Set TSO = FSO.OpenTextFile(MyFile, ForAppending, Create) 'Turn On Error Handling On Error Resume Next 'TSO.WriteLine("Gotten past error handling " & " at " & Now()) set rd_conn=server.createobject("ADODB.Connection") 'TSO.WriteLine("Connection OK" & " at " & Now()) set rd_rs=server.createobject("ADODB.Recordset") 'TSO.WriteLine("Recordset OK" & " at " & Now()) strMDBpath = Server.MapPath("/SubTimes.mdb") rd_conn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strMDBPath 'TSO.WriteLine("Connect OK" & " at " & Now()) strsql = "select * from SubTimeData ORDER BY SubTimeData.Publication" rd_rs.Open strsql,rd_conn,adopenstatic,adlockoptimistic 'TSO.WriteLine("SQL Open OK" & " at " & Now()) If err.number>0 then response.write "VBScript Errors Occured:" & "

" response.write "Error Number=" & err.number & "

" response.write "Error Descr.=" & err.description & "

" response.write "Help Context=" & err.helpcontext & "

" response.write "Help Path=" & err.helppath & "

" response.write "Native Error=" & err.nativeerror & "

" response.write "Source=" & err.source & "

" response.write "SQLState=" & err.sqlstate & "

" end if IF rd_conn.errors.count> 0 then response.write "Database Errors Occurred" & "
" response.write "" & strsql & "

" for counter= 0 to rd_conn.errors.count response.write "Error #" & rd_conn.errors(counter).number & "

" response.write "Error desc. " & rd_conn.errors(counter).description & "

" next end if 'Generate all the options dynamically Dim NameArray(1000) Pub_Count=0 Do While Not rd_rs.EOF sName = rd_rs.Fields("Publication") Doit = False if(Pub_Count = 0) then Doit=True else if (sName <> NameArray(Pub_Count-1)) then Doit=True end if if (Doit) then 'Response.Write "Adding " & sName & " to table at " & Pub_Count & "
" & vbCrLf NameArray(Pub_Count) = sName Pub_Count = Pub_Count+1 end if rd_rs.MoveNext Loop rd_rs.close rd_conn.close set rd_rs=Nothing set rd_conn=Nothing Col1Size = 250 Col2Size = 150 Col3Size = 90 Col4Size = 90 Col5Size = 90 Col6Size = 90 'TSO.WriteLine("Starting second step" & " at " & Now()) set rd_conn=server.createobject("ADODB.Connection") set rd_rs=server.createobject("ADODB.Recordset") strMDBpath = Server.MapPath("..\SubTimes.mdb") rd_conn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strMDBPath 'TSO.WriteLine("2d Connect OK" & " at " & Now()) strsql = "select * from SubTimeData ORDER BY SubTimeData.Publication DESC" rd_rs.Open strsql,rd_conn,adopenstatic,adlockoptimistic 'TSO.WriteLine("2d Open OK" & " at " & Now()) If err.number>0 then response.write "VBScript Errors Occured:" & "

" response.write "Error Number=" & err.number & "

" response.write "Error Descr.=" & err.description & "

" response.write "Help Context=" & err.helpcontext & "

" response.write "Help Path=" & err.helppath & "

" response.write "Native Error=" & err.nativeerror & "

" response.write "Source=" & err.source & "

" response.write "SQLState=" & err.sqlstate & "

" end if IF rd_conn.errors.count> 0 then response.write "Database Errors Occurred" & "
" for counter= 0 to rd_conn.errors.count response.write "Error #" & rd_conn.errors(counter).number & "

" response.write "Error desc. " & rd_conn.errors(counter).description & "

" next end if 'Now do the Still Out's 'TSO.WriteLine("Do still outs" & " at " & Now()) rd_rs.MoveFirst Do While Not rd_rs.EOF Posted = rd_rs.Fields("Posted") SubmitDate = rd_rs.Fields("SubmitDate") RespDate = rd_rs.Fields("ResponseDate") Duration = rd_rs.Fields("Duration") tID = rd_rs.Fields("ID") ResponseType = rd_rs.Fields("ResponseType") PubStr = rd_rs.Fields("Publication") 'if ((rd_rs.Fields("ResponseType")="Still Out") AND (isNull(Duration) OR Duration="")) then ' Always recompute Still Out skiprec = TRUE if ((ResponseType="Still Out") AND (NOT isNull(SubmitDate))) then Duration = DateDiff("d",SubmitDate,Now())/7 else if ((NOT isNull(RespDate)) AND (NOT isNull(SubmitDate))) then Duration = DateDiff("d",SubmitDate,RespDate)/7 else skiprec=FALSE end if end if if(NOT skiprec) then 'if (Duration > 52) then 'rd_rs.Fields("ResponseType")="Never Responded" 'rd_rs.Fields("Comments")="JLB: Changed to NR on " & Now() 'TSO.WriteLine(PubStr & ":Changing Response Type to Never Responded for " & tID & " at " & Now()) 'rd_rs.Update 'else 'Recompute the duration 'Response.Write "JLB: Duration computed on " & Now() & "
" & vbCrLf rd_rs.Fields("Duration")=Duration 'rd_rs.Fields("Comments")="JLB: DC on " & Now() TSO.WriteLine("isNull(RespDate)) = " & isNull(RespDate)) TSO.WriteLine("isNull(SubmitDate)) = " & isNull(SubmitDate)) TSO.WriteLine(PubStr & ":Changing Duration to " & Duration & " for " & tID & " at " & Now()) rd_rs.Update 'end if end if 'Move to the next record! rd_rs.MoveNext Loop TSO.WriteLine("Do Fix Days" & " at " & Now()) 'Fix my days to weeks 'rd_rs.MoveFirst 'Do While Not rd_rs.EOF ' Posted = rd_rs.Fields("Posted") ' SubmitDate = rd_rs.Fields("SubmitDate") ' RespDate = rd_rs.Fields("ResponseDate") ' Duration = rd_rs.Fields("Duration") ' if (rd_rs.Fields("Submitter")="Jeff") then ' if(NOT (IsNull(RespDate) OR IsNull(SubmitDate))) then ' 'Calculate Duration ' Duration = DateDiff("d",SubmitDate,RespDate)/7 ' rd_rs.Fields("Duration")=Duration ' 'Response.Write "Fixing " & rd_rs.Fields("Publication") & " to " & Duration & "
" ' rd_rs.Update ' end if ' end if ' ' 'Move to the next record! ' rd_rs.MoveNext 'Loop rd_rs.close rd_conn.close set rd_rs=Nothing set rd_conn=Nothing '-------------------------------- set rd_conn=server.createobject("ADODB.Connection") set rd_rs=server.createobject("ADODB.Recordset") strMDBpath = Server.MapPath("..\SubTimes.mdb") rd_conn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strMDBPath strsql = "SELECT DISTINCTROW SubTimeData.Publication, SubTimeData.ResponseType, Avg(SubTimeData.Duration) AS [STDavg], Count(*) AS [STDcount] FROM SubTimeData GROUP BY SubTimeData.Publication, SubTimeData.ResponseType ORDER BY SubTimeData.Publication" rd_rs.Open strsql,rd_conn,adopenstatic,adlockoptimistic Dim AcceptAvg(1000), AcceptCnt(1000) Dim RejectAvg(1000), RejectCnt(1000) Dim NotAccAvg(1000), NotAccCnt(1000) Dim StillOAvg(1000), StillOCnt(1000) Dim NeverRAvg(1000), NeverRCnt(1000) Dim OutBizAvg(1000), OutBizCnt(1000) AcceptTtl=0 RejectTtl=0 NotAccTtl=0 StillOTtl=0 NeverRTtl=0 OutBizTtl=0 AcceptNum=0 RejectNum=0 NotAccNum=0 StillONum=0 NeverRNum=0 OutBizNum=0 'StrComp(string1, string2[, compare]) '==================================== 'StrComp compares two string, string1 and string2, and returns the following: 'If string1 is less than string2, StrComp returns -1 'If string1 is equal to string2, StrComp returns 0 'If string1 is greater than string2, StrComp returns 1 'If string1 or string2 is Null, StrComp returns Null 'The compare defaults to a value of 0, but can take either a 1 or 0: '* A 0 means a binary comparison '* A 1 means a textual comparison Function SchIdx(schname) LoIdx = 0 HiIdx = Pub_Count-1 SchIdx=0 MidIdx=0 'Response.Write "SchIdx( " & schname & ")
" for i=0 to Pub_Count-1 MidIdx=Int((LoIdx+HiIdx)/2) MidName = NameArray(MidIdx) 'Response.Write "LoIdx= " & LoIdx & ", Name=" & NameArray(LoIdx) & "
" 'Response.Write "MidIdx= " & MidIdx & ", Name=" & NameArray(MidIdx) & "
" 'Response.Write "HiIdx= " & HiIdx & ", Name=" & NameArray(HiIdx) & "

" if(schname = NameArray(HiIdx)) then SchIdx=HiIdx 'Response.Write "Returning " & HiIdx & "
" exit function end if if(StrComp(schname,MidName,1) = 1) then 'Response.Write schname & ">" & MidName & ", LoIdx gets " & MidIdx & "
" LoIdx = MidIdx end if if(StrComp(schname,MidName,1) = -1) then 'Response.Write schname & "<" & MidName & ", HiIdx gets " & MidIdx & "
" HiIdx = MidIdx end if if(schname = MidName) then SchIdx=MidIdx 'Response.Write "Returning " & MidIdx & "
" exit function end if next end function TotalPubTestCount=0 Do While Not rd_rs.EOF PubStr = rd_rs.Fields("Publication") PubRespType = rd_rs.Fields("ResponseType") PubAvg = rd_rs.Fields("STDavg") PubCnt = rd_rs.Fields("STDcount") TotalPubTestCount=TotalPubTestCount+PubCnt Idx = SchIdx(PubStr) 'Response.Write "NameArray(" & cStr(Idx) & ")=" & NameArray(Idx) & "
" if(NameArray(Idx) <> PubStr) then Response.Write "WARNING! BS broken, Found " & PubStr & " at " & cStr(Idx) & "
" Response.Write "NameArray(" & cStr(Idx) & ")<>" & NameArray(Idx) & "
" end if if (PubCnt <> 0) then 'TSO.WriteLine(PubStr & ":Adding cnt= " & PubCnt & " to total, now " & TotalPubTestCount & " at " & Now()) select case PubRespType case "Acceptance" if (NOT IsNull(PubAvg)) then AcceptAvg(Idx) = PubAvg AcceptCnt(Idx) = PubCnt AcceptTtl = AcceptTtl + PubAvg*PubCnt AcceptNum = AcceptNum + PubCnt end if case "Never Responded" 'NeverRAvg(Idx) = PubAvg NeverRCnt(Idx) = PubCnt 'NeverRTtl = NeverRTtl + PubAvg*PubCnt NeverRNum = NeverRNum + PubCnt case "Not Accepting" if (NOT IsNull(PubAvg)) then NotAccAvg(Idx) = PubAvg NotAccCnt(Idx) = PubCnt NotAccTtl = NotAccTtl + PubAvg*PubCnt NotAccNum = NotAccNum + PubCnt end if case "Out of Business" if (NOT IsNull(PubAvg)) then OutBizAvg(Idx) = PubAvg OutBizCnt(Idx) = PubCnt OutBizTtl = OutBizTtl + PubAvg*PubCnt OutBizNum = OutBizNum + PubCnt end if case "Rejection" if (NOT IsNull(PubAvg)) then RejectAvg(Idx) = PubAvg RejectCnt(Idx) = PubCnt RejectTtl = RejectTtl + PubAvg*PubCnt RejectNum = RejectNum + PubCnt end if case "Still Out" if (NOT IsNull(PubAvg)) then StillOAvg(Idx) = PubAvg StillOCnt(Idx) = PubCnt StillOTtl = StillOTtl + PubAvg*PubCnt StillONum = StillONum + PubCnt end if end select else 'TSO.WriteLine(PubStr & ":NOT Adding cnt= " & PubCnt & " to total, now " & TotalPubTestCount & " at " & Now()) end if rd_rs.MoveNext Loop rd_rs.Close set rd_rs=nothing rd_conn.close set rd_conn=nothing '------------------------------ Col1Size = 250 Align1 = "left" Col2Size = 85 Align2 = "right" Col3Size = 85 Align3 = "right" Col4Size = 85 Align4 = "right" Col5Size = 85 Align5 = "right" Col5Size = 85 Align6 = "center" Col5Size = 85 Align7 = "center" Col5Size = 85 Align8 = "center" Response.Write "" & vbCrLf Response.Write "" & vbCrLf Response.Write "" & vbCrLf Response.Write "" & vbCrLf Response.Write "" & vbCrLf Response.Write "" & vbCrLf Response.Write "" & vbCrLf Response.Write "" & vbCrLf 'Response.Write "" & vbCrLf Response.Write "" & vbCrLf Response.Write "" GreenFont="" BlueFont="" RedFont="" BlackFont="" for idx=0 to Pub_Count-1 sAcceptAvg=AcceptAvg(idx) sAcceptCnt=AcceptCnt(idx) sRejectAvg=RejectAvg(idx) sRejectCnt=RejectCnt(idx) sNotAccAvg=NotAccAvg(idx) sNotAccCnt=NotAccCnt(idx) sStillOAvg=StillOAvg(idx) sStillOCnt=StillOCnt(idx) sNeverRAvg=NeverRAvg(idx) sNeverRCnt=NeverRCnt(idx) sOutBizAvg=OutBizAvg(idx) sOutBizCnt=OutBizCnt(idx) TotalCount = sAcceptCnt+sRejectCnt+sNotAccCnt+sStillOCnt+sNeverRCnt if(TotalCount > 0) Then Response.Write "" & vbCrLf ' -- Pub Response.Write "" & vbCrLf ' -- Acceptance if(sAcceptAvg<=4) then fontColor=GreenFont else if(sAcceptAvg<=8) then fontColor=BlueFont else if(sAcceptAvg<=16) then fontColor=BlackFont else fontColor=RedFont end if end if end if Response.Write "" & vbCrLf ' -- Rejection if(sRejectAvg<=4) then fontColor=GreenFont else if(sRejectAvg<=8) then fontColor=BlueFont else if(sRejectAvg<=16) then fontColor=BlackFont else fontColor=RedFont end if end if end if Response.Write "" & vbCrLf ' -- Not Accepting if(sNotAccAvg<=4) then fontColor=GreenFont else if(sNotAccAvg<=8) then fontColor=BlueFont else if(sNotAccAvg<=16) then fontColor=BlackFont else fontColor=RedFont end if end if end if Response.Write "" & vbCrLf ' -- Still Out if(sStillOAvg<=4) then fontColor=GreenFont else if(sStillOAvg<=8) then fontColor=BlueFont else if(sStillOAvg<=16) then fontColor=BlackFont else fontColor=RedFont end if end if end if Response.Write "" & vbCrLf ' -- Never Responded Response.Write "" & vbCrLf ' -- Out of Business 'Response.Write "" & vbCrLf ' -- Totals Response.Write "" & vbCrLf Response.Write "" & vbCrLf End If ' if( NOT IsNull(rd_rs.Fields("STDavg"))) then ' Response.Write "" & vbCrLf ' end if ' if( NOT IsNull(rd_rs.Fields("STDcount"))) then ' Response.Write "" & vbCrLf ' end if next '----------------------------------- AcceptOav=AcceptTtl/AcceptNum RejectOav=RejectTtl/RejectNum NotAccOav=NotAccTtl/NotAccNum StillOOav=StillOTtl/StillONum NeverROav=NeverRTtl/NeverRNum OutBizOav=OutBizTtl/OutBizNum TotalAll = AcceptNum+RejectNum+NotAccNum+StillONum+NeverRNum fontColor=BlackFont Response.Write "" & vbCrLf ' -- Acceptance Response.Write "" & vbCrLf ' -- Rejection Response.Write "" & vbCrLf ' -- Not Accepting Response.Write "" & vbCrLf ' -- Still Out Response.Write "" & vbCrLf ' -- Never Responded Response.Write "" & vbCrLf ' -- Totals Response.Write "" & vbCrLf Response.Write "" & vbCrLf '----------------------------------- Response.Write "
PublicationAcceptanceRejectionNot AcceptingStill OutNever RespondedOut of BusinessTotal Count
" Response.Write NameArray(idx) Response.Write "" if(sAcceptCnt>0 AND (NOT IsNull(sAcceptAvg))) then Response.Write fontColor & FormatNumber(Cdbl(sAcceptAvg),1) & " (" & sAcceptCnt & ")" else Response.Write "  " end if Response.Write "" if(sRejectCnt>0 AND (NOT IsNull(sRejectAvg))) then Response.Write fontColor & FormatNumber(Cdbl(sRejectAvg),1) & " (" & sRejectCnt & ")" else Response.Write "  " end if Response.Write "" if(sNotAccCnt>0 AND (NOT IsNull(sNotAccAvg))) then Response.Write fontColor & FormatNumber(Cdbl(sNotAccAvg),1) & " (" & sNotAccCnt & ")" else Response.Write "  " end if Response.Write "" if(sStillOCnt>0 AND (NOT IsNull(sStillOAvg)) ) then Response.Write fontColor & FormatNumber(Cdbl(sStillOAvg),1) & " (" & sStillOCnt & ")" else Response.Write "  " end if Response.Write "" if(sNeverRCnt>0) then Response.Write "(" & sNeverRCnt & ")" else Response.Write "  " end if Response.Write "" 'if(sOutBizCnt>0) then ' Response.Write " (" & sOutBizCnt & ")" 'else ' Response.Write "  " 'end if 'Response.Write "" Response.Write TotalCount Response.Write "
" ' Response.Write FormatNumber(Cdbl(rd_rs.Fields("STDavg")),2) ' Response.Write "" ' Response.Write FormatNumber(Cdbl(rd_rs.Fields("STDcount")),2) ' Response.Write "" Response.Write "Overall" Response.Write "" if(AcceptNum>0 AND (NOT IsNull(AcceptOav))) then Response.Write fontColor & FormatNumber(Cdbl(AcceptOav),1) & " (" & AcceptNum & ")" else Response.Write "  " end if Response.Write "" if(RejectNum>0 AND (NOT IsNull(RejectOav))) then Response.Write fontColor & FormatNumber(Cdbl(RejectOav),1) & " (" & RejectNum & ")" else Response.Write "  " end if Response.Write "" if(NotAccNum>0 AND (NOT IsNull(NotAccOav))) then Response.Write fontColor & FormatNumber(Cdbl(NotAccOav),1) & " (" & NotAccNum & ")" else Response.Write "  " end if Response.Write "" if(StillONum>0 AND (NOT IsNull(StillOOav))) then Response.Write fontColor & FormatNumber(Cdbl(StillOOav),1) & " (" & StillONum & ")" else 'Response.Write "  " Response.Write StillOTtl & "!   !" & StillONum end if Response.Write "" if(NeverRNum>0) then Response.Write "(" & NeverRNum & ")" else Response.Write "  " end if Response.Write "" Response.Write TotalAll Response.Write "
" & vbCrLf %>