Meet BookBrowse's editors and reviewers


Publisher

  • Nick Stager

    Nick is a technologist and avid reader. He has a wide breadth of experience in ecommerce and startups, and is working to expand BookBrowse's digital presence while continuing the longstanding high quality of its content. He has a degree in the Comparative Study of Religion from Harvard, where he volunteered for the Harvard Review. He lives in Plymouth, MA with his wife Hannah and their chihuahua mix Mia; when he's not working, you'll find him at the beach reading.

Lead Editor

  • Elisabeth Cook

    Elisabeth (she/her) is a published poet, a frequent reader of translated literature and a freelance writer. In addition to reviewing books, she occasionally writes about language learning and indie film. You can follow her latest reads on her blog, Lit All Over, and at BookBrowse.

Editors

  • Lisa Butts

    Lisa (she/her) is a poet and freelance critic living in Cincinnati, Ohio. She studied Creative Writing at The New School and Sarah-Lawrence College. In addition to editing and writing for BookBrowse, she writes regularly for Publishers Weekly and BookRags, among others.

  • Norah Piehl

    Norah is a former bookseller who has also worked for several publishing companies. Currently the literary director for the Bay Area Book Festival and an editor at BookBrowse, Norah reviews books and writes interviews and features for a number of print and online publications including BookBrowse. She lives with her family in Berkeley, California.

  • Chloe Pfeiffer

    Chloe Pfeiffer (she/her) is a freelance writer living in Oakland, California. She has an MFA in creative writing from Oregon State University. You can see her BookBrowse reviews here.


Community Manager

  • Kim Kovacs

    Kim Kovacs is an avid reader in the Pacific Northwest. All those rainy days give her the opportunity to enjoy a wide variety of books that span many genres. You can read her BookBrowse reviews here.

Founder

  • Davina Morgan-Witts

    Davina started BookBrowse in 1998 while a stay at home mother of two small children who wouldn't stay still long enough for her to visit a bookstore. Davina is a recognized authority on book clubs and a popular speaker and writer on the topic of books and book groups; she has given talks at many library, publisher and bookseller conferences, to the media and to private groups. Davina retired from BookBrowse in 2024.

  • Photo © Rebecca Foster

    Rebecca Foster

    An American transplant to England, Rebecca is a freelance proofreader and writer. She is an associate editor of Bookmarks magazine and reviews books for a myriad of print and online publications in the USA and UK, including the Times Literary Supplement and her blog, Bookish Beck.

  • Photo © Katharine Blatchford

    Katharine Blatchford

    Kate is a freelance writer and livelong lover of literature. The fascination with varying cultures and perspectives that grew from this love led her to pursue an education in the social sciences. Her favorite genres are fantasy, historical fiction, and history. She is also a passionate fiber artist who designs knitting and embroidery patterns. In her free time she can be found experimenting in the kitchen, attempting to teach herself to sew, or enjoying the outdoors.

  • Photo © Callum McLaughlin

    Callum McLaughlin

    Callum McLaughlin (he/him) is a writer of words, a reader of books, and a lover of cats. Based in Scotland, he operates on a freelance basis, producing content for blogs, websites, and magazines. His fiction and poetry have also featured in several literary journals, both online and in print. You can find him on Twitter @Callum_M1, and he chats about all things bookish over on his blog callummclaughlin.wordpress.com

  • Photo © Jordan Lynch

    Jordan Lynch

    Jordan Lynch is a scientist by training, but her true passion is books. She currently lives in St. Louis, MO, where she spends her days caring for her son and reading during naptime. She also works to educate and advocate for phenylketonuria (PKU) research on behalf of her son. You can see what she’s been reading or explore some interesting science at The Literary Laboratory. You can see what she’s been reading or explore some interesting science at her blog The Literary Laboratory.

  • Erin Lyndal Martin

    Erin Lyndal Martin is a writer and artist living in Blacksburg, VA.

  • Jillian Bell

    Jillian Bell is a Toronto-based writer whose work has appeared in several Canadian and international magazines. She is a voracious reader who devours at least 150 books per year.

  • Photo © Pei Chen

    Pei Chen

    Pei reads to immerse herself completely in a fictional world and writes to share that world with other readers. She has a penchant for books that leave her wrecked emotionally afterwards, either from the beauty of the story or the complexity of a character. BookBrowse is the first publication for which she has written. She practices family medicine in her spare hours.

  • Photo © Alex Russell

    Alex Russell

    Alex Russell is a freelance writer from Scotland, now living in France, who holds degrees in English Literature from the University of St Andrews and Charles University in Prague. When he’s not reading, he’s writing for 14 Degrees East, a blog focusing on his travels throughout Europe.

  • Letitia Asare

    Letitia (she/her) is an avid reader living in New York. Book Browse is her first time writing for a publication, but she collaborates with publishers and authors to write honest book reviews on her Instagram (@bookshelfbyla https://www.instagram.com/bookshelfbyla/ ) and Goodreads [https://www.goodreads.com/user/show/56229062-letitia-bookshelfbyla]. Her favorite genres are literary fiction and memoirs, with a soft spot for debut authors. She hopes her reviews can bring more attention to diverse stories and connect them to the right readers. In her free time, she enjoys supporting her favorite sports teams, exploring restaurants in New York, and watching reality TV.

  • Frankie Martinez

    Frankie is a writer and freelancer from California. She has prose in magazines such as The Winnow and Poetically Magazine and reviews in The Daily Drunk, Southern Review of Books, and Soapberry Review.

  • Photo © Peggy Kurkowski

    Peggy Kurkowski

    Peggy is a professional copywriter for a higher education IT nonprofit association by day and major history nerd and book reviewer at night. In addition to BookBrowse, she writes for multiple book review publications, including Publishers Weekly, Library Journal, Historical Novels Review, Shelf Awareness, Foreward, Independent Book Review, and theWashington Independent Review of Books . She hosts her own YouTube channel, The History Shelf, where she features and reviews history books (new and old), as well as a variety of fiction.

  • First Impressions Reviewers

    Each month, BookBrowse members have the opportunity to review books through our First Impressions program. Books that our member-reviewers rate particularly highly are featured as "Top Picks" selections. All books recently reviewed for First Impressions can be seen here, and Top Picks are listed below.

  • Photo © Valerie Morales

    Valerie Morales

    Valerie Morales' non-fiction work has been featured in Huffington Post, The Talented Tenth Review Medium and The Committed Generation. She loves books that inhale the future and exhale the past. James Baldwin’s novel Another Country was her beginning of all things literary, life and truth.

  • Photo © Rachel Hullett

    Rachel Hullett

    Rachel Hullett (she/her) is an avid reader, feminist, and cat enthusiast. A graduate from Tulane University, she currently lives in Vermont and works as the Editor of an indie children's book publisher. You can find her on Twitter @paceamorelibri, and you can read more of her thoughts on books over at her personal blog at paceamorelibri.wordpress.com.

  • Photo © Danielle McClellan

    Danielle McClellan

    Danielle McClellan has been a bookseller, a managing editor of two small presses, and a senior editor for the University of California, Irvine, School of Humanities. She is currently the managing editor of the academic journal Law & Society Review and also runs a small academic editorial business. She divides her time between Granada, Spain, and the US Pacific Northwest. Danielle loves connecting readers with good books and will always be a bookseller at heart. She reads widely and reviews literary fiction, literature in translation, poetry and essays, mysteries, and food writing.

  • Photo © Tasneem Pocketwala

    Tasneem Pocketwala

    Tasneem is a freelance writer and journalist based in Mumbai, India. You can find her documenting the reading-and-writing life on Instagram at @tasneemsworld05, and on her blog.

  • Photo © Alicia Calvo Hernández

    Alicia Calvo Hernández

    Alicia is an editor and book cataloguer from Madrid, Spain, who is now based in Ireland. She holds a bachelor´s in Journalism and Humanities and a master's in Literature and Publishing. She has worked with various media outlets as a freelancer, where she has contributed literary and human interest pieces. Her writing references other artistic and literary works, and aims to uncover and amplify diverse points of view and untold stories.

  • Photo © Rose Rankin

    Rose Rankin

    Rose Rankin (she/her) lives and writes outside of Chicago. A historian by training, she primarily reviews non-fiction with an emphasis on women's studies. She recently completed a comparative study of female-authored poetry in Late-Renaissance Italy titled Cautious if Not Chaste: The Poetry of Tullia D'Aragona and Veronica Franco. In addition to freelancing for various publications, she is also a marketing copywriter with experience in technical writing.

  • Photo © Jo-Anne Blanco

    Jo-Anne Blanco

    Jo-Anne Blanco was born in Brazil to an English mother and Spanish father. Holder of an MA in languages and an MPhil in media and culture, she is the author of the Fata Morgana series of novels, which follow the life and adventures of Morgan le Fay. Book reviewing gives her the chance to discover exciting new authors and share her love of literature with others. Visit her at jo-anneblanco.com.

  • Photo © Sara Fiore

    Sara Fiore

    Sara (she/her) is a writer and reference librarian who lives on the east coast with her husband and two sons. She is a passionate lover of the written word and is rarely seen without at least one book in hand. When not talking loudly and at length about whatever she just read, Sara can be found cuddling her cats, baking something sinful, going down another true crime rabbit hole, looking for the door into Narnia, and spending every second she can with her family.

  • Photo © Kathleen Basi

    Kathleen Basi

    Kathleen Basi is a novelist and musical composer who has been reading and writing for so long, she can’t even remember when she started. Her first novel, A Song for the Road debuted in 2021. Visit her at kathleenbasi.com.

  • Joe Hoeffner

    Joe Hoeffner is a writer and critic who recently earned his MLitt degree from the University of Stirling. He currently lives on Long Island.

  • Photo © Michelle Anya Anjirbag

    Michelle Anya Anjirbag

    Michelle Anya Anjirbag recently completed her PhD at the Centre for Research in Children's Literature at Cambridge, Faculty of Education, University of Cambridge. Work based on her dissertation has appeared and is forthcoming in several academic journals and edited collections. Having earned her MSc at the University of Edinburgh and her BA at the University of Connecticut, her research interests include Disney, adaptations of fairy tales and cross-period approaches to narrative transmission across cultures and societies, deep stories, and fantasy and the library in the fantastic. She has worn a lot of different hats including essayist, local journalist, leadership facilitator, book reviewer, and shopgirl. More information on her academic and other work can be found at michelleanjirbag.com

  • Photo © Isabella Zhou

    Isabella Zhou

    Isabella is a bookworm from the NYC metro area with a degree in English literature from Columbia University. She also writes book reviews for Foreword Reviews and poetry study guides for BookRags. Her interests, in no particular order, include women and paintings (in them, painting them, looking at them, etc.), fairytales and retellings, Impressionism, 19th century tomes, unrequited loved, cats, the persistence of memory over time, the Sisyphean toil of writing a novel, and the language of flowers and gemstones. Between all of that, her favorite hobby is ballroom dancing because she likes pretending she is a spirited young lady who has snuck into a masquerade ball held by the kingdom's nobility. You can check out more of her work at isabellazhouwrites.wordpress.com.

  • Photo © Lisa Ahima

    Lisa Ahima

    "Lisa Ahima is a New Orleans-based, black writer and content creator. She works for a major literary agency, a black-owned bookstore, and judges fiction for a literary magazine. She especially loves lyric essays, fiction, poetry, and creative nonfiction. She owns "The Black Joy Podcast," a visual podcast about breaking out of the idea behind a "black monolith," exploring in a digestible manner the different facets of black media representation while balancing academic sources, accessible language, and meme culture, which you can view here.

  • Photo © Christine Runyon

    Christine Runyon

    Christine is a writer and library assistant from Florida. She's written marketing content on various topics, but books are her true love. Currently she's taking a Discworld deep dive. In addition to BookBrowse, she also reviews at BookTrib. She’s most content outdoors, reading or taking long birding hikes. Find her on Goodreads.

  • Elisabeth Herschbach

    Elisabeth Herschbach is an editor and writer from Maryland.

  • Photo © Maria Katsulos

    Maria Katsulos

    Maria Rosario Katsulos is a lifelong reader and writer. The daughter of a journalist-turned-writer and an editor-turned-librarian, she grew up considering books to be some of her best friends. She is currently a senior at Southern Methodist University, where she is a President's Scholar studying English, history, and more with the goal of becoming a professor of gender and sexuality history. She is the editor-in-chief of Kairos Creative & Literary Magazine and a 2021 winner of the SMU.

  • Photo © Jacob Lenz-Avila

    Jacob Lenz-Avila

    Jacob Lenz-Avila is a writer from Southern California. He is an ardent reader and writer currently studying the arts of short stories, poetry, and criticism.

  • Photo © Jennifer Hon Khalaf

    Jennifer Hon Khalaf

    Jennifer Hon Khalaf (she/her) is a lawyer and writer based in Los Angeles, CA.

  • Photo © Aditi Upadhyaya

    Aditi Upadhyaya

    Aditi is studying Political Science and Sociology at the University of Toronto. She is an avid reader and lover of all books mythological, thriller, political, and feminist. She is especially fond of female Indian authors and narratives. She hopes to introduce you all to some of her favorite books!

  • Photo © Gabriella Harrison

    Gabriella Harrison

    Gabriella is a freelance writer, editor, social media manager, and virtual assistant. She is an avid reader, passionate about sharing her opinion about the books she reads. In addition to writing for BookBrowse, she also reviews books for Foreword Reviews, Pacific Book Review, OnlineBookClub, and a few other platforms.

  • Photo © Grace Graham-Taylor

    Grace Graham-Taylor

    Grace Graham-Taylor is a freelance writer and content creator living in London, UK. She relies on books to refract the absurdity of the present day, so that she can laugh about things she would otherwise find unbearable. An insatiable media-consuming machine, she also loves film and has conducted interviews for an underground music magazine. She is particularly fond of experimental and post-modern fiction.

  • Photo © Jane McCormack

    Jane McCormack

    Jane McCormack is an avid adventurer, whether it be hiking through the woods or traversing through the pages of a good book. She is the mother of two blue heelers, a horse, and a boy. Additionally, she also aspires to influence a hundred or so high schoolers to make friends with literature, pen their dreams, and be curious, on a yearly basis. In addition to teaching ELA at her local high school, she writes book reviews, and teaches riding. She can often be found reading in a grassy paddock, with Gus, her trusty steed, grazing beside her.

  • Photo © Abby Edgecumbe

    Abby Edgecumbe

    Abby Edgecumbe is a writer and reviewer, but mostly a reader. She holds a degree in Literature and Creative Writing, and a minor in French. Known to consider reading as forced meditation, she reads not only to learn about the world and the depth of feeling experienced by others, but she believes reading is a way to find yourself, slow life down, and open your mind both outwards and inwards. Learn more about her from her online portfolio.

  • Photo © Tina Choi

    Tina Choi

    Tina Choi, a graduate of Western Washington University, is a Special Education/English teacher living in the Northwest. Although she's taught in Seattle and surfed the Oregon Coast, she prefers to 'dry out' in northeastern Oregon. She currently writes and lives there with her husband.

  • Photo © Amanda Ellison

    Amanda Ellison

    Amanda Ellison is a writer, teacher and labradoodle owner, hailing from Northumberland in the UK. She writes regularly for various publications, exclusively on subjects she is passionate about – including, of course, books!

BookBrowse Book Club

Book Jacket
The Cover Girl
by Amy Rossi
Find them early enough, and they will always be her girls.

Members Recommend

  • Book Jacket
    The Sister's Curse
    by Nicola Solvinic
  • Book Jacket
    The Lost Story of Eva Fuentes
    by Chanel Cleeton
    A mysterious book links three women across generations in this novel by New York Times bestselling author Chanel Cleeton.
  • Book Jacket
    The Vanishing Place
    by Zoë Rankin
Who Said...

In order to become the master, the politician poses as the servant

Click Here to find out who said this, as well as discovering other famous literary quotes!

Book
Trivia
  • Book Trivia

    Can you name the title?

    Test your book knowledge with our daily trivia challenge!

Wordplay

Solve this clue:

W the C A the M W P

and be entered to win..

Your guide toexceptional          books

BookBrowse seeks out and recommends the best in contemporary fiction and nonfiction—books that not only engage and entertain but also deepen our understanding of ourselves and the world around us.

 


Debugging Information
ColdFusion Server Developer 2021,0,13,330286
Template /reviewers/index.cfm
Time Stamp 31-May-26 07:46 PM
Locale en
User Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Remote IP 127.0.0.1
Host Name 127.0.0.1


Execution Time

Total Time Avg Time Count Template
1780256757068 ms 1.78025675707E+012 ms 1 /root/website/app_server.cfm
3515 ms 3515 ms 1 /root/website/reviewers/index.cfm
3292 ms 3292 ms 1 /root/website/queries/qry_get_reviewers_and_books.cfm
111 ms 111 ms 1 /root/website/app_layout.cfm
91 ms 91 ms 1 /root/website/app_globals.cfm
75 ms 75 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
50 ms 50 ms 1 /root/website/queries/qry_get_active_obc.cfm
46 ms 23 ms 2 /root/website/adsystem/adsystem_mod.cfm
35 ms 35 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
34 ms 34 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
27 ms 27 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
25 ms 25 ms 1 /root/website/adzones/showcase_track.cfm
23 ms 23 ms 1 /root/website/adzones/AdZone6.cfm
19 ms 19 ms 1 /root/website/reviewers/dsp_main.cfm
11 ms 11 ms 1 /root/website/queries/qry_get_current_competition.cfm
11 ms 11 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
7 ms 7 ms 1 /root/website/act_check_login.cfm
7 ms 7 ms 1 /root/website/actions/adstatus.cfm
6 ms 6 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
6 ms 6 ms 1 /root/website/queries/qry_get_member_info.cfm
3 ms 1 ms 3 /root/website/actions/act_spider_tracker.cfm
3 ms 3 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
3 ms 3 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_current_ezine.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/main_menu.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/main_search.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/act_libraryIPLogin.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_header_newsletter.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/informationindex.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/head.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
3516 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 19:45:57.057
SELECT	a.bot_number
        FROM	bots a
        WHERE	charindex(a.bot_name, ?) > 0
		OR a.bot_ip = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Parameter #2(cf_sql_varchar) = 127.0.0.1

get_member_info (Datasource=bookbrowse_com_new, Time=6ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 19:45:57.057
select 	a.*, 
    		b.member_account_type_name, b.member_account_type_charge, b.member_account_type_charge_frequency,  b.member_account_type_months, 
            c.member_chargetype_name, c.member_chargetype_number, a.member_classification_number, a.member_book_format
	
    from members a, member_account_types b, member_chargetype c
	
    where a.member_account_type_number = b.member_account_type_number
	and a.payment_method_id = c.member_chargetype_number
	and a.member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

adactive (Datasource=bookbrowse_com_new, Time=6ms, Records=2) in /root/website/actions/adstatus.cfm @ 19:45:57.057
SELECT	viewby, section
    FROM	adsystem 
    WHERE	active  = 1 
    AND		start_date <= GETDATE()
    AND 	(viewby = ? OR viewby = 'all')
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = non

get_current_ezine (Datasource=bookbrowse_com_new, Time=1ms, Records=1, Cached Query) in /root/website/queries/qry_get_current_ezine.cfm @ 19:45:57.057
select		top 1 ezine_number, ezine_dt, ezine_image, ezine_brief_description, ezine_introduction
from		ezines
where		ezine_active_flag = 1
and 		ezine_type_number = 4
and			ezine_dt < getdate()
order by 	ezine_dt DESC
get_current_wordplay (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 19:45:57.057
SELECT		a.wordplay_number, a.wordplay_dt, a.wordplay_name, a.wordplay_intro_text, b.wordplay_puzzle_number, b.wordplay_puzzle_question
    FROM		wordplays a 
	INNER JOIN	wordplay_puzzle_mapping c on c.wordplay_number = a.wordplay_number
	INNER JOIN	wordplay_puzzles b on b.wordplay_puzzle_number = c.wordplay_puzzle_number
	WHERE		a.wordplay_number = (	select top 1 a.wordplay_number
                                from wordplays a, wordplay_puzzles b, wordplay_puzzle_mapping c
                                where a.wordplay_number = c.wordplay_number
                                and b.wordplay_puzzle_number = c.wordplay_puzzle_number
                                and a.wordplay_dt < getdate()
                                and a.wordplay_expiration_dt > dateadd(day, -1, getdate())
                                order by a.wordplay_dt asc
                                )
get_ComNo (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 19:45:57.057
SELECT 	TOP 1 	x.competition_number, x.bb_briefs_flag
	from			competitions x
	
		WHERE	x.competition_dt <= getdate()
		AND		x.competition_expiration_dt > dateadd(d,-1,getdate())
get_current_competition (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 19:45:57.057
SELECT 	x.competition_number, x.book_number, x.competition_teaser_title, x.competition_teaser_description, x.competition_intro_text, x.competition_expiration_dt, x.bb_briefs_flag, x.competition_full_info_flag, x.competition_type, x.competition_optin,x.competition_optin_text, 
				a.book_title as "title",
				(b.author_first_name + ' ' +  b.author_middle_initial + ' ' + b.author_last_name) as "author",
	            f.edition_publish_dt AS "hardcover_publish_dt", f.edition_jacket_image as "hardcover_jacket_image",
				g.edition_publish_dt AS "paperback_publish_dt", g.edition_jacket_image as "paperback_jacket_image"
	
		FROM 		competitions x
		INNER JOIN	books a on a.book_number = x.book_number
		INNER JOIN	book_author_mapping c on c.book_number = x.book_number
		INNER JOIN	authors b on c.author_number = b.author_number
		LEFT JOIN	editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
		LEFT JOIN	editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1

		WHERE		x.competition_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

get_previous_arcs_for_ad (Datasource=bookbrowse_com_new, Time=0ms, Records=0, Cached Query) in /root/website/queries/qry_get_previous_arcs_for_ad.cfm @ 19:45:57.057
SELECT 	a.arc_number,a.arc_client_url,a.arc_active_dt, a.arc_off_ad_dt,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publisher, 
		b.ezine_preview_publish_dt, b.ezine_preview_jacket_desc, b.ezine_preview_number_of_pages, b.ezine_preview_bb_comments, b.ezine_preview_isbn13,
		c.ezine_preview_category_name AS "ezine_preview_category",
		(select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) as "reviews",
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating,
 			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,1))) AS numeric(12,1)))from arc_allocator where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS "decrating"

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
INNER JOIN ezine_preview_categories c ON b.ezine_preview_category_number = c.ezine_preview_category_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND getdate() < arc_off_ad_dt

ORDER BY a.arc_on_ad_dt DESC
get_future_obc (Datasource=bookbrowse_com_new, Time=7ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 19:45:57.057
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text, arc_on_ad_dt,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages, ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	
	WHERE 		arc_obc_flag = 1

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=17ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 19:45:57.057
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE 		a.arc_obc_flag = 1
	AND			a.arc_active_flag = 0
	AND 		arc_closed_flag = 1
	AND 		getdate() >= arc_on_ad_dt
	AND 		getdate() < arc_off_ad_dt
	ORDER BY  	NEWID()
get_recent_obc (Datasource=bookbrowse_com_new, Time=25ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 19:45:57.057
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE a.arc_number IN (select top 4 arc_number
							from		arcs
							WHERE 		arc_obc_flag = 1
							AND			arc_active_flag = 0
							AND 		arc_closed_flag = 1
							AND 		getdate() > arc_off_ad_dt
							ORDER BY	arc_on_ad_dt DESC)
	ORDER BY  	NEWID()
get_reviewers_and_books (Datasource=bookbrowse_com_new, Time=3291ms, Records=1586) in /root/website/queries/qry_get_reviewers_and_books.cfm @ 19:46:00.000
SELECT		a.reviewer_number, a.reviewer_title, a.reviewer_first_name, a.reviewer_last_name, a.reviewer_bio, a.reviewer_photo,
			a.reviewer_first_name + ' ' + a.reviewer_last_name AS "reviewer_name",
        	d.book_number, d.book_title,
			e.ezine_dt,
        	
        	(select media_review_rating from media_reviews where book_number = c.book_number and media_review_type_number = 9) as "media_review_rating",
			
			(SELECT		count(*)
			FROM		reviewers a2
			INNER JOIN 	ezine_edition_mapping AS b2 on (b2.reviewer_number = a2.reviewer_number)
			INNER JOIN 	ezines AS e2 on (e2.ezine_number = b2.ezine_number)
			WHERE		reviewer_display_flag = 1
			AND			e2.ezine_dt =	(SELECT		top 1 ezine_dt
										FROM		ezines
										INNER JOIN 	ezine_edition_mapping on (ezine_edition_mapping.ezine_number = ezines.ezine_number)
										INNER JOIN 	reviewers on (reviewers.reviewer_number = ezine_edition_mapping.reviewer_number)
										WHERE 		ezine_active_flag = 1
										AND			reviewers.reviewer_number = a.reviewer_number
										ORDER BY	ezine_dt DESC)
			AND a2.reviewer_number = a.reviewer_number
			group by a2.reviewer_number) as "reviews",
			
			(select COUNT(*)
			from ezine_edition_mapping
			inner join ezines on ezines.ezine_number = ezine_edition_mapping.ezine_number
			where ezine_edition_mapping.reviewer_number = a.reviewer_number) as "totalreviews",
			
			(select top 1 ezine_dt
			from ezines
			inner join ezine_edition_mapping ON ezine_edition_mapping.ezine_number = ezines.ezine_number
			where ezine_edition_mapping.reviewer_number = a.reviewer_number
			and ezine_active_flag = 1
			order by ezine_dt DESC) as "ezine_sort_dt"

FROM		reviewers a
INNER JOIN 	ezine_edition_mapping AS b on (b.reviewer_number = a.reviewer_number)
INNER JOIN 	editions AS c ON (c.edition_number = b.edition_number)
INNER JOIN 	books AS d ON (d.book_number = c.book_number )
INNER JOIN 	ezines AS e on (e.ezine_number = b.ezine_number)

WHERE		a.reviewer_number <> 1

AND			reviewer_display_flag = 1
AND			e.ezine_active_flag = 1

ORDER BY  ezine_sort_dt DESC, reviews DESC, totalreviews DESC, a.reviewer_last_name, a.reviewer_first_name, ezine_dt DESC
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=9ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 19:46:00.000
SELECT 	top 10 a.arc_number,arc_promo_text,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1
and getdate() <= dateadd(day,1,a.arc_off_ad_dt)

ORDER BY NEWID()
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=24ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 19:46:00.000
SELECT 	top 3 a.arc_number,arc_promo_text,
			b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
					(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
					 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
					 ELSE 0
					 END)
				from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

	FROM arcs a
	INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

	WHERE arc_closed_flag = 1
	AND arc_obc_flag = 0
	AND getdate() >= arc_on_ad_dt
	AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1

	ORDER BY a.arc_off_ad_dt DESC
get_ads (Datasource=bookbrowse_com_new, Time=9ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 19:46:00.000
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 19:46:00.000
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6

get_type (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 19:46:00.000
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1112

get_quotes (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 19:46:00.000
select top 1 ezine_number, ezine_quote, ezine_quote_title
	    from ezines
	    where len(ezine_quote_title) > 1
	    order by newid()
get_free_newsletters (Datasource=bookbrowse_com_new, Time=1ms, Records=4) in /root/website/queries/qry_get_free_newsletters.cfm @ 19:46:00.000
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=15ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 19:46:00.000
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
		 	AND a.adid NOT IN (?) 
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112
Parameter #3(CF_SQL_VARCHAR) = 0
Parameter #4(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 19:46:00.000
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        		AND a.adid NOT IN (?) 
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112

get_type (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 19:46:00.000
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 594


Scope Variables

CGI Variables:
AUTH_PASSWORD=
AUTH_TYPE=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CF_TEMPLATE_PATH=/root/website/reviewers/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=
PATH_TRANSLATED=/root/website/reviewers/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/reviewers/index.cfm
SERVER_NAME=dev.bookbrowse.com
SERVER_PORT=8500
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=
WEB_SERVER_API=
Client Variables:
cfid=4072763
cftoken=2bf7076af80f69d3-FBB75525-C7D3-A379-131DBA6DD19FC0A5
hitcount=1
lastvisit={ts '2026-05-31 19:45:57'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-05-31 19:45:57'}
urltoken=CFID=4072763&CFTOKEN=2bf7076af80f69d3-FBB75525-C7D3-A379-131DBA6DD19FC0A5
view=books
Cookie Variables:
CFID=4072763
CFTOKEN=2bf7076af80f69d3-FBB75525-C7D3-A379-131DBA6DD19FC0A5
Session Variables:
cfid=4072763
cftoken=2bf7076af80f69d3-FBB75525-C7D3-A379-131DBA6DD19FC0A5
sessionid=BOOKBROWSE_4072763_2bf7076af80f69d3-FBB75525-C7D3-A379-131DBA6DD19FC0A5
urltoken=CFID=4072763&CFTOKEN=2bf7076af80f69d3-FBB75525-C7D3-A379-131DBA6DD19FC0A5
Debug Rendering Time: 29 ms